SDTimes brings a nice story about not teaching programming languages like LISP anymore. That reminded me about renaissance of programmers knowing ancient languages like COBOL when y2k bug was coming and there were still a lot of working software written in those languages. Suddenly it appeared it’s hard to find a COBOL programmer and being the one can be quite worthy.
It still looks like a good idea for me to know some old-school technologies and become a specialist in that area of knowledge. I consider C/C++ as dying language. Yes, students are still taught C++ and yes, it’s still easy to find software written in C++, but developers generally prefer more modern languages (Java, C#) or those trendy ones (Ruby on Rails, Python). Finding a developer who wants to write in C++ is harder and harder over time, yet market demands significant number of them.
The easy reasoning here is: still much code written in the technology, few people willing to use it, should be worth to be a specialist in the area. I think it’s easier to become highly-paid specialist when you choose less popular technologies than it is with the mainstream ones. Anyway, developers somehow follow the trends and rather rarely take into consideration above point of view.

Subscribe RSS feed
Follow on Twitter
Subscribe by email




{ 6 comments… read them below or add one }
Interesting thoughs… but I think choosing dying techonlogy automatically doom your career to be very short one :).
The rate could be very high but this is not what keeps devs into the area. Knowing people achieve same results 10 times faster and with much cooler technology kills all the motivation you could have.
Regards,
Galin Iliev
http://www.galcho.com
1. 10 times faster doesn’t automatically mean 10 times better. That’s why e.g. C++ is still chosen as a technology for new projects.
2. If you are bonded to a single technology only your career is doomed no matter how trendy the technology is at the moment.
But yes, I agree that finding motivation to be a C programmer is much harder than finding motivation to be a Ruby on Rails programmer. However, for me coolness of the technology is very low on the list of points I consider when I choose one. It won’t be cool anymore, until project enters its maturity phase.
It’s all on the list of pros and cons for choosing the area you want to specialize in. While coolness is almost always on that list, arguments I brought above are rarely considered seriously. Even by those who care mainly for money or their goal is to achieve a guru status.
if you care about your long-lasting career a developer, then:
1. when everyone around debates over magic new languages and technologies and they all jump on the technology bandwagon
you keep your head cool, step back, dig out your old university books that teach you how to think logically, how to design algorithms and systems and take a repetition course on fundamental engineering issues
2. when they jump from one ephemeral technology to another better one
you find your niche, stick to it and collect experience, collect experience, collect experience
collect experience not in things that pass by like super-duper cutting-edge technologies from microsoft or whoever. They will be gone in three years.
Collect experience in system design, various design patterns, idioms etc. Those were valid in 1960. They are valid now and will be as long as humanity knows what ‘thinking’ means.
3. keep your mind in constant learning mode.
Learn and exercise what’s mentioned in points above and see how every new technology reuses the same concepts that were discovered in 1960s and exposes them just in different light and shape.
Robert,
Remember that not everyone wants to have long career as a developer. Usually developers want to change their role in future.
While I generally agree with your point of view I think you go to far in a couple of points.
New doesn’t have to mean ephemeral. Java and C# were new not so long ago yet they’re now one of most important programming languages.
Not everything was invited in sixties. OK, you can argue that OOP was possible with Simuli 67 (yes, in sixties) but was that anything more that one of those ephemeral technologies then? It was popularized 20 years later with C++.
Another thing which we’ll have to face very soon is multicore processor. Yes, old programs will still work (although not all of them), but will they be optimal? Will they exploit available hardware? I don’t think so. And I don’t think 50-year old programming paradigms would help there.
Hi Pawel!
I strongly do not agree on your C/C++ obituary notice! ;) No doubts Java or Ruby on Rails is a good choice for Web applications. Yet, C/C++ suits much better when it comes to embedded software development. Just look around you and tell me how many appliances w/o embedded SW do you use? ;)
Yes, there’s still a lot of software written in C++, but look at typical software companies now. They write web applications. Rather not in C++. In several years it would be probably something different, but it won’t be written in C++ either.
I don’t have any hard statistics but in a number on new lines of codes position of C++ is decreasing.
I think C++ will follow the way of assembler, which you can still find in specific places, but for typical operations – there are better technologies.