5 ms·
Inferno was a Plan9 derivative kinda research OS, not necessarily what people wanted. Squeak/Smalltalk had the issue of programs and runtime images being confl
by mike_hearn 4y ago
Inferno was a Plan9 derivative kinda research OS, not necessarily what people wanted.
Squeak/Smalltalk had the issue of programs and runtime images being conflated, making version control awkward (at the time at least).
Erlang is a functional language.
All the above had relatively small and poorly documented libraries.
Java combined an imperative C-like and relatively simple language, with an evolvable bytecode-oriented VM, garbage collector, large and well documented libraries + lots of tutorials, and really intense VM engineering. Easy to forget but Cliff Click and colleagues were the first to show that a JIT compiler could produce code competitive with gcc, Sun also bought/implemented stuff like deoptimization which is still relatively advanced, and then gave that tech away for free. From the end user POV all these things mattered a lot.
- einpoklum 4y agoJava is really not simple, and not at all C-like, except in some of the syntax.
- Nokinside 4y agoYou express beautifully the Worse is Better philosophy. Worse is a preferable option to better in terms of practicality and usability. Innovation loses to taking small steps to improve the worse alternative. Community is built around tinkering and fixing errors, getting around design failures.
- mike_hearn 4y agoTo some extent yeah. I definitely became way less radical and more incremental in my own design approach over time. Still, "better" does contain usability, performance, docs and other aspects of practicality. Like, those aspects do genuinely make things better. Innovation doesn't always improve things, it can be a dead end of bad ideas too. Java was a pretty major clean break when it came out. It was probably right at the limit of what could be done innovation-wise whilst still being targeted at the mainstream.
- eternalban 4y agoWith the possible exception of Erlang/BEAM, none of the candidates for "better" of OP cited ever (ever) actually got tested in the field -at scale- to see if it actually delivers the goods. So it is merely an elitist opinion of a niche subset that apparently thinks its take on these matters is beyond question. Gabriel wrote his essay about two actually deployed alternatives, with the "worse" option (UNIX) coming on top. LISP was in fact the incumbent and UNIX the scrappy upstart. None of the OPs cites were incumbents. They are just simply exceptionally safe bets to high horse on. Also agreed: Java and JVM are were not the "worse is better" options at the time of adoption. Hype alone did not create the massive shift to Java that occurred in late 90s. It was a genuinely positive development for the practice and people were getting results. It was Java's 2nd act of moving into "enterprise" (and Sun's mismanagement of that effort) that created its current sense of 'heaviness' of language.
- Nokinside 4y agoPeople who designed Java are on the record expressing elitist reasons for Java's success and design goals. It boils down to: Java classes allow code monkeys to write spaghetti code that is forced to stay inside classes designed by others. The reason I always hated Java was because it was designed by good programmers for bad programmers in a looking down at them way, not a good programmers for themselves to use. btw. Java design team licensed the Oberon compiler sources years before to study it.
- funny_falcon 4y agoSun bought whole team of Self [1] language to make its HotSpot JIT. [1] https://en.wikipedia.org/wiki/Self_(programming_language) https://en.wikipedia.org/wiki/Self_(programming_language)