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.
The nuclear industry thrives on FORTRAN. It would seem unwise to dismiss FORTRAN as dead or irrelevant. Until another language can catch up in terms of raw performance for science and mathematics programming (mostly with matrices), you really have no better choice than FORTRAN.
FORTRAN 90 and later have many object oriented features and provide for a much more modern programming interface than FORTRAN 66 and 77. FORTRAN 66 is probably irrelevant these days, save for a few lingering legacy applications on VAX or VMS, but 77 is still thriving.
Learn FORTRAN 77 to appreciate where programming came from, and learn FORTRAN 90 to appreciate easy mathematical programming. You won't regret it.
It is not difficult to get good books about Ada or Fortran. In fact it is easier to find the good ones than among the gazillion "webservices width J2EE" kind of books, that often is of terrible low quality, that seems to have been written in a hurry to get to the market before another thing get cooler.
BTW, many of those places that used to program in fortran for numerics seems to not jump to java, but systems like matlab and it's like.
Alfred, your posting started out well, but you really seem to be pushing MS products at the end.
C# is fine and all, but I would honestly not consider it as a systems programming language.
Visual Basic to me, has the antithesis of a good GUI design environment. One can quickly bang out GUIs, but I don't think they're good.
Expression, well, is just one of many new architectures and you really should mention the others.
BTW, I studied an MS in Applied Mathematics and never used Fortran. I used Python, C and Matlab (if I were to do it now, I would use Common Lisp and Ocaml).
It's great to see that there is a Lisp revival taking place and a renewed interest in functional programming languages.
Every programmer would do well to get to grips with Common Lisp, Haskell, Ocaml and Erlang.
"The nuclear industry thrives on FORTRAN. It would seem unwise to dismiss FORTRAN as dead or irrelevant. Until another language can catch up in terms of raw performance for science and mathematics programming (mostly with matrices), you really have no better choice than FORTRAN."
There are two very separate claims here, which seem to have been confused as the same claim:
(1) FORTRAN is often used (especially in nuclear).
(2) FORTRAN is a good choice of language to use (especially for science, math, nuclear).
I am a Nuclear Engineering graduate student, so I know that (1) is true. I have also done enough FORTRAN programming to know that (2) is false. The language is poorly designed, poorly implemented in each compiler that I have tried so far, and is far from catching up in features with modern languages. This statement applies to both FORTRAN 90 and 2003.
So how could it be possible that so many programmers for science/math/nuclear applications would be using the wrong language? Because they just aren't aware of the alternatives. When asked about their choice of language, they will either indicate that it is the only one they know, or they will compare it to C++ or Java. FORTRAN equations look better than C++ equations, and Java applications are just too slow.
For anyone who thinks FORTRAN is actually a good choice for numerical applications, try comparing with a better language: OCaml.
You won't regret ditching the obsolete, but unfortunately not dead yet, FORTRAN.
Well it seems as though programming languages are the politics or religion of the computer science world. A lot more disgreement than agreement but a lot of polite display of information. I really appreciate all of the comments. A lot to think about here and that is a good thing.