4 ms·
It is weird to me that as of the 2010s every major programming language (Python, Javascript, Java, C# and C/C++ has settled in to a regular release cadence of .
by roenxi 3y ago
It is weird to me that as of the 2010s every major programming language (Python, Javascript, Java, C# and C/C++ has settled in to a regular release cadence of ... I think C++ is the conservative representative at one new version released per 3 years.
It'd be fascinating to know if this is helping or hindering programmer productivity. None of these new capabilities seem to be step changes (all the oomph for programmer productivity that I've seen have been IDE tooling, LLMs and GPUs). I'd be impressed if they even managed to be incremental changes - in this case a vector API sounds nice enough gor example but the projects that need this must be on the margins.
These changes come with costs - tutorials obsoleted, version fragmentation introduced, huge new surface areas for bugs and security problems. Most of these languages became popular without fast release cadences (or in spite of them, Python 3 looking at you). It is quite amazing that none of them have decided to leave well enough alone. Is it the classic of programmers not being able to defend that position against people with ants in their pants, or is there a genuine community will to keep revising this stuff?
Surely there has to be some popular language where the custodian would think it is good enough to set in stone bar hardware-forced updates.
- ativzzz 3y ago> where the custodian would think it is good enough to set in stone While it's nice to be able to have a "complete" language, a language that receives no updates or changes is a dead language. When people use the language, are interested in making it "better" (in their mind at least), they are building community, holding discussions and overall generating interest and keeping the language alive and useful. If you don't allow people to make any changes, then these people will lose interest and abandon the project, and slowly over time it will die. There are some exceptions, like C that are so embedded in everything that it doesn't matter (it still gets updates sometimes), but languages like python or java or ruby where there is no clear "best" have to be competing with one another for people to choose that language
- roenxi 3y agoHas the buzz for Java ever come from Hot New Features? As I recall that buzz was 80% marketing budget from Sun then Oracle, the stability of the platform and the ready availability of programmers. If anyone ever picked Java for its features, their judgement should be questioned. The thinking might well withstand that questioning, but it isn't an obvious choice on the basis of features. I mean, Java itself is an obvious choice - but not because of its features. You can show me languages with much better feature-sets and I'll nod, agree then recommend Java for production use. The features just aren't the selling point.
- TheCoelacanth 3y agoNo, but new features have staved off competitors from taking over Java's buzz. If Java still had the feature set of Java 8, it would have lost a lot more market share to other JVM languages like Kotlin, Scala, Groovy, Clojure, etc.
- mason55 3y agoJava was in real danger in the seven years that it took to go from 5 to 7. Very little of substance was added and it didn't appear like there was a path forward to get any real new features added to the language. Yes, Java is not the language to use if you want the hot new PL ideas in your language. But languages need to continue to move forward because it's not like PL research is dead either. I think Java does a really good job now at being conservative with what they add while still keeping things modern enough that people aren't abandoning the language. Once features have proved themselves in other, less conservative languages, the Java team can add them, with the benefit of seeing what sorts of problems might arise.
- ndiddy 3y agoCommon Lisp hasn't seen any language updates since 1994 and yet people here keep talking about it.
- lispm 3y agoThe standard hasn't been updated. But progress happens in implementations and libraries.
- kazinator 3y agoSustained standardization mostly harms/ruins programming languages. That said, it would be good to see a Common Lisp standard which cleans up outstanding issues (like whether, when an exit point for a dynamic control transfer is chosen, are the inner exit points below it torn down before the transfer takes place, or tear-down-as-you-go?) And also standardize some common practices. A standard way to include special characters in strings would be nice. The C-like escapes perhaps: \n newline, \u123F for unicode and whatever.
- lispm 3y agoI totally agree.
- ativzzz 3y agoCommon Lisp is mostly an esoteric hacker's toy (unpopular statement here) and it falls into a unique niche that isn't used by many
- barumrho 3y agoWith Java, they are executing it pretty well these days. Old code pretty much works out of the box, so you get the improvements for free. Some language-level improvements are significant enough to get people excited (e.g. virtual threads). And standard library improvements are pretty low-risk as well.
- gizmo686 3y agoThe only breaking changes I have run into are: 1) The "new" module system. (Which is, IMO, way to hard to disable for legacy code) 2) Removing some old crypto support from the default provider. And removing even mire support when a "secure valudation" flag was set. Probably for the best, but still broke stuff. Other than that, the only Java code that really feels legacy is: A) Pre generic collections. B) an overuse of design patterns (normally not a language issue, although there are still a few bad APIs in the standard library) C) Long form classes where a lambda would suffice. Given how much the language has changed, that's a pretty impressive list. And a day with a linter can modernize most of a codebase without much effort.