News for hackers. Stuff that matters.
Re:How To Identify A Lame Programming Job by mahmud on Thursday December 03, 2009 @05:53PM (#975404)
5. Will I be maintaining any ancient system, and what's it written in?

If you don't want to inherit legacy software, go work in a startup and enjoy creating everything from scratch. Legacy software at least leaves you a work culture and a process, not to mention a frame of reference. In a startup, not only there is no much in-house software, there isn't even a division of labor.

Re:How To Identify A Lame Programming Job by petewarden on Thursday December 03, 2009 @08:07PM (#975575)
Call me perverse, but I love the archaeological side of dealing with legacy software too. You start off with code that makes no sense at all, and gradually as you brush away soil from the pot shards, a story emerges. Working on porting Diablo to the PS1, there were tiny bits of inline assembler scattered everywhere. Eventually the light dawned: the original programmers had been struggling to understand C's signed/unsigned integer conversions so they fell back to the x86 instructions they were more familiar with.
Re:How To Identify A Lame Programming Job by DLWormwood on Thursday December 03, 2009 @08:56PM (#975641)

    Working on porting Diablo to the PS1, there were tiny
    bits of inline assembler scattered everywhere.
    Eventually the light dawned: the original programmers
    had been struggling to understand C's signed/unsigned
    integer conversions so they fell back to the x86
    instructions they were more familiar with.
Dang, is that telling. Both shipped Diablo games have been know to be rife with security related bugs, and that kind of coding artifact gives a good indication of the quality of the programmers at Blizzard North it seems...
Re:How To Identify A Lame Programming Job by petewarden on Friday December 04, 2009 @12:04AM (#975839)
As my lead reminded me at the time when I made a snide comment about their quality: "We're sitting here porting it for peanuts, while they're busy counting their royalties"

Much as I prize technical quality, that lesson stuck with me.

Re:How To Identify A Lame Programming Job by Oxryly on Friday December 04, 2009 @08:52PM (#977591)
Blizzard didn't pay out much in royalties in those days. Now Diablo 2 was a different matter...
Re:How To Identify A Lame Programming Job by Zot95 on Thursday December 03, 2009 @06:42PM (#975478)
There's legacy software... and then there are coding artifacts from another era. I'm not necessarily saying it's a deal breaker, but if your development tools consist solely of products that have been End of Lifed, you have right to be concerned how the job would affect your career development.
Re:How To Identify A Lame Programming Job by pwnstigator on Thursday December 03, 2009 @08:45PM (#975623)
Legacy code isn't always bad. All code becomes legacy code.

Poor legacy code is a liability, and legacy code that leads to suboptimal technical situations (e.g. using C++ in 2009) is a pain.

Re:How To Identify A Lame Programming Job by nickelplate on Thursday December 03, 2009 @10:11PM (#975714)
What's wrong with using C++ in 2009?
Re:How To Identify A Lame Programming Job by prodigal_erik on Friday December 04, 2009 @06:06AM (#976145)
It gives up all possible safety for performance gains that haven't mattered on the desktop for years. "volatile" is not enough of a memory model to write portable threaded code for I/O bound multicore machines. And it's missing an awful lot of modern conveniences that are painful or unreliable without language support: AOP, closures, currying, invariants, reflection, serialization, remoting, extensible syntax.
Re:How To Identify A Lame Programming Job by gaius on Friday December 04, 2009 @08:49AM (#976311)
Echoing the commenter above, people writing C++ in 2009 are laughing all the way to the bank.
Re:How To Identify A Lame Programming Job by HeyLaughingBoy on Friday December 04, 2009 @04:03PM (#977198)
I don't know about laughing all the way to the bank, but I would probably have more difficulty writing machinery control code in anything other than C++
Re:How To Identify A Lame Programming Job by blasdel on Friday December 04, 2009 @12:00AM (#975836)
All legacy code is a liability, and all code is legacy.
Re:How To Identify A Lame Programming Job by prodigal_erik on Friday December 04, 2009 @04:41AM (#976070)
To me "legacy" connotes flawed, not merely old. If a rewrite would end up slightly modernized but basically the same, what you have is an investment. If a rewrite would end up completely different because the old version doesn't meet the current requirements, what you have is a legacy problem.
Re:How To Identify A Lame Programming Job by access_denied on Friday December 04, 2009 @02:20PM (#976985)
You are distinguishing between "legacy" and "legacy problem" and thus rendering your own opening 'thesis as moot.
Re:How To Identify A Lame Programming Job by prodigal_erik on Saturday December 05, 2009 @02:05PM (#978428)
Sorry, what I was trying to get across is that I don't expect to hear "legacy" unless there's a problem.