Irrelevant Programming Languages

Mark Hendrickson from O'Reilly has an interesting review of the market for computer books in a four part series. The fourth part examines the programming language book market. I have no doubt that it is a valuable discussion for people who are thinking about what sort of programming language book to write but I'd be careful about extrapolating it too far for other things.

I'm particularly interested in some of the languages that make the list as "Irrelevant Programming Languages". Specifically Ada, Alice, LabView and FORTRAN. Relevance is a relative term in this case. I think there are markets, parts of the computer industry, where Ada, LabView and FORTRAN are still important and highly relevant. Do they have the sort of market share that the .NET languages, Java or C++ have? No, but in the markets where they are important they are critically important.

I suspect that for some military and aerospace contractors having Ada on ones resume is going to open a lot of doors. Likewise, LabView is being used in a lot of embedded and robotics applications. FORTRAN still seems to be the language of choice for a lot of mathematical and scientific programming especially where parallel processors are involved. But no, there is not a huge market for books that teach those languages. National Instruments has a lot of training materials for LabView. And the shelves of companies that use FORTRAN and Ada are no doubt heavily loaded with all the reference and learning materials for those languages that one could possibly want. In fact my own bookshelves in my home office are fairly well equipped with older FORTRAN books.

And Alice (and Squeak which is on the list and Scratch which isn't) are not industry languages as much as they are teaching languages. learning them is not an end in themselves but a tool or stepping stone to other things. Does that make them irrelevant? It depends on your definition of relevant.

In the long run deciding what languages one learns is more complicated than just looking at what programming language books are selling the most copies. All software development is not created equal in the sense that they use the same programming languages. One needs to take a holistic approach. What sort of development do you want to do?

If you want to do systems programming (operating systems, compilers, etc) then C/C++/C# are where you want to focus. Are you a math/science person? You'll want at least some familiarity with FORTRAN even if it isn't your main thing. Likewise if you are thinking that finance/banking/insurance/accounting are your thing you should know COBOL if only to understand existing systems. Are you thinking your life is all about the user interface? Best learn some Visual Basic. I wouldn't avoid Expression either - that is where UI is going in my opinion. I think you get the picture.

And of course one thing you'll really want to do if you hope for a long career is to learn as much about different programming structures and paradigms as possible. I highly recommend a course or two in Programming Languages as a topic. Learn the things you need to learn to learn what ever comes next. because the future is coming quicker than you think.