As a seasoned software developer, one of the things I most value is mature frameworks. By mature, I don’t necessarily mean old. Rather, I mean a framework that will still be useful tomorrow. Furthermore, that framework should have documentation that will help me today and still be relevant in the future.
Languages like C, C++, and Java provide these frameworks. While Java has had a number of revisions since it was created, code from the 20 years ago will run just as well as modern code. While it may not take advantage of newer features, it is no less viable. Furthermore, books on Java development from 15 years ago can still provide new developers with instruction on programming. In fact, the only part of Java that has really been significantly obsoleted is the windowing frameworks. Likewise, C and C++ code from the 90’s will still run well today, with some minor tweaking.
What makes these changes even more difficult for developers is that the documentation is often poor or non-existent. For example, I attempted to run the newest Firebase API tutorial from Google only to learn that none of the code would compile with the newest libraries. I had to spend an hour looking for a more recent code sample. Try to find a current book on the Angular framework and you will quickly see the challenge.