4 ms·
There were many: 1. Java, 2. Inferno, 3. Oberon System (Niklaus Wirth, ETH Zurich), 4. Squeak (Apple, Walt Disney Imagineering) 5. Erlang (Ericsson, Joe Ar
by Nokinside 3y ago
There were many:
1. Java,
2. Inferno,
3. Oberon System (Niklaus Wirth, ETH Zurich),
4. Squeak (Apple, Walt Disney Imagineering)
5. Erlang (Ericsson, Joe Armstrong) still going strong.
IMHO, Technologically Java was the worst and least innovative. Platform adaption is "Worse is Better" so Java won.
Oberon, Erlang and Squeak were are all amazing in their own way.
- mike_hearn 3y agoInferno 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 3y agoJava is really not simple, and not at all C-like, except in some of the syntax.
- Nokinside 3y 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 3y 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 3y 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 3y 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 3y 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)
- deleted 3y ago[deleted]
- throw0101a 3y ago> IMHO, Technologically Java was the worst and least innovative. Platform adaption is "Worse is Better" so Java won. In the words of Guy Steele: And you're right: we were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp. Aren't you happy? * https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg04045.html https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/...
- abraxas 3y agoJava was perceived (quite rightfully) as a C++ with the rough edges filed off. It gained a ton of mindshare by making it trivial for C++ developers to jump on the bandwagon. This was critical because in terms of desktop development (that's how all apps were built in the 90s) and even on the server side C++ was the undisputed king of app development.
- Nokinside 3y ago> Java was perceived (quite rightfully) as a C++ with the rough edges filed off. Java has only familiar surface syntax. Semantics has almost nothing common with C++. Different object model, memory model, execution model, ... That's the genius of both Java and Javascript. Make it look familiar without being one at all.
- pjmlp 3y agoIndeed, it is based on Objective-C semantics.
- hdjjhhvvhga 3y agoIt was a great time! There were some interesting developments also in the open source space: https://argante.sourceforge.net/concept.html https://argante.sourceforge.net/concept.html