Edsger Dijkstra once said that "the use of COBOL cripples the mind...". How about working on legacy software? Do you, as a developer, get crippled by that?
As an employed programmer, I have spent most of my time maintaining and fixing legacy systems. In my free time I constantly try to learn new techniques, languages or frameworks, but 8+ hours a day, 5 days a week I work on someone’s OLD crap application (I have, for example, worked with COBOL or EJB 1 or apps written in ASP).
I see a lot of questions on SO about technologies I have never heard of, and there is also a lot of people answering them. So, I am now wondering what effect working on old apps has on my skills.
A good thing that resulted from it is that I’ve picked up books like Code Complete or Refactoring, trying to ease my job, and I have learned a lot (i.e. even a bad example is a very useful example), but I am sure that there are also negative aspects of this (e.g. if I am out of a job, some years of COBOL don’t mean s**t if Web2.0 skills are demanded).
So, my question is: what do you gain and what do you lose, as a developer, when working mostly on legacy software?
Thank you.