5 ms·
Java consistently introduces lots of exciting functionality into the language. That's a big part of my dislike and active avoidance of it.
by liampulles 11d ago
Java consistently introduces lots of exciting functionality into the language. That's a big part of my dislike and active avoidance of it.
- deleted 11d ago[deleted]
- tpoacher 11d agoIn the absence of a sarcasm tag, would you care to explain your reasoning?
- liampulles 11d agoI have a strong belief (mostly borne out by my years as Java dev) that the larger the possibility space of a language (and its ecosystem) the more room there is for inappropriate use and unclear code. Add time and an assortment of rolling devs of mixed ability level, and crap mounts faster then a "simpler" language. Let me be clear: Do I think it is possible to write good, clear, performant code in Java? Of course - Java can be used to write great software. The problem is that in Java there exist an extraordinary set of variations of a sufficient implementation, many of which are package protected abstract static horrors shows. And that will manifest over time if you add different individual developers. Else the project must engage in bureaucracy and control, where you have meetings over style conventions or hardline architects who come to constrain the joy of programming in the devs. Its much better when the language itself constrains you, then everyone can just move on. I feel Go, though certainly not perfect, meets this niche.
- liampulles 11d agoAlso - and this is very subjective - I find developers who have similarly low view of software development and high view of simple languages, to be very good team mates. We can laugh at the realities and move on pragmatically.
- tpoacher 11d agoI see. I tend to agree in principle. I felt this with julia for example and it put me off a bit even though I was very keen on it at first In the specific case of java however I don't think this applies much; the vast majority of improvements are aimed at under the hood optimisations rather than syntax. And I feel that any changes in syntax have been quite incremental, intuitive, and reasonable. AND they stay around as preview features forever, so this may inflate the perception of features entering the language, when in fact it's the same one feature being mildly iterated on. E.g. the main syntactical change in this version seems to be the use of primitives in switch statements, which was already discussed for a while, and is itself a meaningful change brought about by the introduction of switch expressions.
- liampulles 11d agoFair.
- za3faran 11d agoGolang tried to be simple, but reality hit and they started adding features (generics, and now generics on method, iterators, fixed loop variable scoping). Yet when you program in it, you can feel so much resistance because it took a naive approach to simplicity.
- liampulles 11d agoI agree with you, generics reduced the simplicity. Still, better than many alternatives.
- gf000 11d agoJava is a very small language, all things considered. Compare to kotlin, c#, rust it's absolutely tiny