Ok, so you have be over 40 to know what the song is or who this guy is…

But anyway… deprecation gets me down. What is deprecation?

http://en.wikipedia.org/wiki/Deprecation

“In the process of authoring computer software, its standards or documentation, deprecation is a status applied to software features to indicate that they should be avoided, typically because they have been superseded”

Sounds reasonable enough but it’s a real pain. I discover today that directinput is ‘deprecated’. presumably Microsoft declared it thus, whilst also being the people who wrote it, and also writing a ton of other stuff that I’m probably not supposed to use anymore, despite the fact that when they released it, they tell everyone it’s the best thing EVER, and we are all luddites for not switching to it.

I really cannot keep up with what is right, and modern and usable and standards-compliant etc, and what is old, unsupported and unhip.

Is C# still cool? what about GDI+ did that even happen? What about DirectX Graphics? or maybe .NET? do people use Java still? and is it OK to use flash? or is it now HTML 5? and is Ruby On Rails new or old now?

I reckon a game developer needs to write at least three whole games using a technology before they really are on top of it. I’m on top of directx9 now, and feel quite confident about it, but I’m pretty sure some genius at Microsoft reckons I should be shot for not using directx 10, or is it 11 or 12 now? or is directx not even used now? How are programmers supposed to keep up? It’s fine if your job is something cushy like ‘engine architect’ where you just go to Microsoft conferences and read technical papers all day, but for people who have to ‘ship an actual product’, we actually have other stuff to do too.

Is it just me? what technology have you finally sat down to use, or ordered a book for, only to discover that all the cool hip kids (ones who never tend to ship anything) already think it’s out of date? I reckon the lifecycle of programming technology goes like this:

Bah…

12 Responses to “Deprecations all ya need lalalalalalala”

  1. Keith LaMothe says:

    I think the window of usefulness is wider for products that the author doesn’t realize contains major mistakes and that they want safely swept under the rug at the earliest convenience (deprecation is probably easier PR than “um, sorry, don’t use that”). From what I remember, DirectInput wasn’t that bad but it was closer that end of the spectrum than the other.

  2. Lysle says:

    I hear ya. I work in embedded systems programming and we do a lot of low level hardware design. Every time we hire a new person, I have to explain why we still use C and not C++ or Java. Even now, it feels like C++ has been deprecated for C#, yet, finally, the embedded industry is starting to move into C++ more.

  3. Grim says:

    As someone who programs for network and light data processing in enterprise – I have no idea what you’re talking about (well I do, but not in practice). I’ve been using C/C++/Java consistently. The only change in standards has been IPv6 being put into use, which of course has not deprecated the earlier IPv4 version.

    DirectX is an extreme case IMHO. It’s moving at breakneck speed to keep up with all the bells and whistles hardware manufacturers can cram in and games programmers presumably want. The embedded example above is probably on the other end. The used assembly originally (and probably still do on occasion), moved to C and are now gradually shifting to C++. I guess I’m saying deprecation is a function of velocity.

  4. Stropp says:

    It’s interesting you mention Ruby on Rails. I do a bit of web development work on that platform, and while the framework itself isn’t deprecated, they have a fast ‘deprecation cycle’ where some features are implemented in one major release and deprecated in the next. Or at least it seems that way.

    But like DirectX as Grim says above, Rails is moving at a breakneck pace and that definitely influences the rate of mutation.

    Deprecation while annoying is useful in the sense that obsolete or poorly thought out features can be removed from a language or framework within a couple of generations.

    It’s frustrating though since it makes upgrading an application not as easy as it should be. Especially in the case of an indie who has developed a game engine over a few games and where reuse saves a lot of time and money, I imagine this is even more annoying.

  5. Ulnari says:

    If you are a sole developer it’s probably not possible to keep up with all technological advances. Though it’s also not necessary, e.g. Vic Davis, developer of Armageddon Empires and Solium Inferium, used Shockwave Director to create those games.
    If you want to use the latest everything in your games, you can build a team, where members specialize in their given fields.

  6. Kemp says:

    In reality, ignoring marketing, there’s nothing wrong with using C++ and DirectX 9. Definitely don’t use ones earlier than that though :P

    To answer your examples though (a little tongue-in-cheek):

    – C# was never cool for games.
    – GDI+… now that’s a name I’ve not heard for a long time… a long time…
    – DirectX is what you want to be using if you don’t need to port the game.
    – .NET languages are not a good idea in my opinion.
    – Java is the Language of the Beast.
    – Flash isn’t bad for simple 2D browser-based games games.
    – HTML5 looks promising, but see Flash and add early-release-cycle bugs.
    – Ruby? Really?

  7. Arowx says:

    OK but hasn’t the 2D/3D game engine tech problem been solved already, lots of times.

    Why waste more time and money working on lower end tech when you can leverage existing solutions, and build your game on top of them?

    And use an easier to develop with language or tool-set to build it with. I think were getting to the point where the game development tech is going to get so easy to play with and use that the games themselves are becoming game development sand boxes.

    As for language what tokens would a true game creation language use e.g: shoot, pick up, jump, turn, run walk, forward, left, right.

  8. cliffski says:

    Definitely not. Show me the game engine that is set up to make Gratuitous Tank Battles. I assure you there isn’t one.
    And show me the dozen Gratuitous Space Battles clones, using the off-the-shelf engine that can do all that too. There aren’t any.

    Generic engines are great if you don’t want to do anything different or new. For making an identikit FPS, they are awesome, but where is the business sense in doing that?

  9. Kemp says:

    I agree with Cliffski. If there is a kit out there for making the game you’re planning, then it has already been made. Probably multiple times. If it’s an FPS or sports game then probably multiple times per year.

    The highest level you can go really is to pick up an existing graphics engine or such, which (for generic ones) is still a fairly low level thing that you’ll need to put work into building on. Personally, I’m ok with that idea, but I know there are a lot of people who don’t like it. And for the truly cutting edge concepts, you may have to put a lot of effort into extending it for your needs.

  10. troy says:

    C+ and assembly . is all a programmer needs (or maybe a team of programers).

    get rid off all this .net Microsoft visual C++ runtime library 2005 – 20XX

    Jesus .. and its getting worse .

    i dont know what happened to pleasant self contained code but i sure do miss it.

  11. It’s kind of sad, really, that Microsoft have given up on DirectInput. It smacks of “we don’t care about PC gamers”. See its Xbox-controller-only replacement, XInput :(

    Of course, this is Microsoft we’re talking about: just because it’s deprecated doesn’t mean your code is going to stop working any time soon.

    On the other hand, you do have to choose wisely as to what technology will be actively supported into the future. Examples: Flash, once highly-available, got shut out of iOS. DirectX 9 won’t be supported in the new “Metro” interface in Win8.

    I think that’s why people are jumping on HTML5 now. It’s horrendous right now, but people are expecting it to be well supported into the future.

    And, yes, C# is still cool :)

  12. Andy Brice says:

    The endless churn of development platforms is pretty dispriting for those of us that are actually shipping products. I blame it (at least partly) on ‘CV driven development’. I wrote a bit about it here:
    http://successfulsoftware.net/2007/04/20/programming-in-flares/

    I’ve managed to stay with C++ and Qt for over 10 years now. But it’s future is looking less secure now that Nokia has changed direction.