You probably already heard that Java topped the TIOBE index in 2015, with an impressive growth spurt of 6% that put it close to 2006 levels and clearly outdistanced stagnant C (21.5% vs 16%). The rest of the field remained fairly unchanged, except for rapidly declining Objective-C, suggesting that Java drew renewed interest from across the industry. Perhaps Oracle’s continuing modernization of Java, comprising existing features (lambda expressions, streams) as well as planned ones (modules, generics for primitives, user-defined value types), has finally stopped developers from looking for better options.
Oli Moser’s Google Trends comparison of “learn java” versus “learn python” in 2005 through 2015 shows another slight but steady rise for Java since bottoming out around 2010, but also a simultaneous and faster rise for Python which actually surpassed Java in 2015. While not the top language in any other survey I’ve seen, Python has certainly established itself as the de facto “quick & dirty” language for scripting and scribbling, a status that was once held by BASIC and which was later contested by various ghastly shell languages as well as Perl and Ruby, both now in relative decline.
Moser also identified the primary source of new Python recruits. The Google Trends timeline for “java developer” almost precisely matches “learn java” whereas “python developer” is nearly nonexistent. Instead, the big increase in “learn python” matches an entirely different search term: “data scientist.” And that’s indeed who is avidly using Python these days, according to every report I’ve seen on scientific programming languages. Evidently, those who aren’t professional software developers most appreciate Python’s relative terseness and lack of mandatory boilerplate code.
Uku Pattak has built a nifty real-time analysis of GitHub repositories for tabs versus spaces, ordered by language. Representing tab haters worldwide, I’m happy to say that hard tabs are now in the minority in almost all programming languages, excepting only a few oddballs I’ve never heard of (Autohotkey, Autoit, Haxe!?) and more notably Go. As Daniel Lemire informed me on Twitter, Go comes with a formatting tool that enforces tab indentation on source code. This clearly proves that Go is the work of the devil.
Finally, two slick websites that visualize the operation of various algorithms have come to my attention. Carlo Zapponi’s Sorting simultaneously runs your selection from 17 sorting algorithms. Mike Bostock’s Visualizing Algorithms is an almost book-length page covering a great variety of algorithms, with references to further algorithmic and mathematical visualizations.