7 ms·
The word "hype" is being used in 2 different ways. definition #1 is about Java features : The original "Java is criminally underhyped" essay by Jackson Robert
by jasode 1y ago
The word "hype" is being used in 2 different ways.
definition #1 is about Java features : The original "Java is criminally underhyped" essay by Jackson Roberts is talking about "not over-hyped" in terms of Java's technical capabilities ... such as types and package manager, etc. E.g. Java has types which Javascript/Python do not and typing is a positive thing to help prevent errors -- therefore -- Java is "underhyped". The particular language capability not being used as much as the author thinks it should is the basis for defining what "hype" is.
definition #2 is about Java's marketplace effect: The "overhype" of Java in the 1990s was extrapolating and predicting Java's effect on the whole computing landscape. This type of "hype" is overestimating the benefits of Java and making bold proclamations. Examples:
- Java and JVM's WORA "Write Once Run Anywhere" will kill Microsoft's Evil Empire because it will render Windows irrelevant. (This didn't happen and MS Windows still has 70+% desktop market share today. 30 years later and Microsoft is one of the top 3 tech companies with a $3+ trillion dollar market cap while Sun Microsystems was acquired at a discount by Oracle.)
- Java will make lower level languages with manual memory allocation like C/C++ obsolete because CPUs are getting faster. Let the extra "unused" cpu cycles do automatic garbage collection in Java instead of C programmers manually managing memory with malloc()/free(). (C/C++ is still used today for games, and tight loops of machine learning libs underneath Python.)
- Java plugins will enable "rich" web experiences. (It turns out that Javascript and not Java plugins won the web. Java also didn't win on desktop apps. Javascript+Electron is more prevalent.)
That's the type of overhype that Java failed to deliver.
Same situation with today's AI. Some aspects of AI will absolutely be useful but some are making extravagant extrapolations (i.e. "AI LLM hype") that will not come true.
- zozbot234 1y ago> Java will make lower level languages with manual memory allocation like C/C++ obsolete because CPUs are getting faster. Except that this actually happened wrt. a whole lot of application code. Sure, Java was slow and clunky but at least it was free of the memory unsafety that plagued C/C++. What was the mainstream "safe" alternative? There was no Rust back then, even Cyclone (the first memory-safe C style language) was only released in the mid-2000s.
- gompertz 1y agoInteresting! I never heard of Cyclone before. Looks like another Bell Labs contribution.
- jasode 1y ago>Sure, Java was slow and clunky but at least it was free of the memory unsafety that plagued C/C++. What was the mainstream "safe" alternative? There was no Rust back then, Before Sun Java in 1995, companies built enterprise CRUD apps with "safe" memory languages using MS Visual Basic, PowerBuilder, and xBase languages like dBASE and FoxPro. This allowed them to develop line-of-business apps without manually managing memory in C/C++.
- hedora 1y agoOn top of that, when I last had the misfortune of using Java, (17, maybe?) the GC still was a top cause of production outages and a massive productivity drag. They claimed they fixed it a dozen times, starting with JDK 1.4, and continued to claim that with every major release since.
- holowoodman 1y agoJava might be memory-safe. But it is "performance-unsafe".
- Tostino 1y agoFor certain problems. I'm looking forward to Project Valhalla finally landing, and the subsequent improvements that come later. Getting the performance benefits of data oriented programming patterns is very exciting to me for allowing Java to run totally different classes of applications than haven't been practical until now.
- estebank 1y agoValhalla is indeed the one effort that could close the biggest gap with native languages. Java Vs C or Rust for networked applications have comparable CPU utilisation with comparable throughput, but memory consumption can be >100x. Project Valhalla is the only thing that could potentially change that. The problem I do see is that even after the language and JVM have value types, the vast extense of libraries that people use are unlikely to change to leverage them. But for projects that control most of their own dependencies, it will be a clear win.
- le-mark 1y ago> Java and JVM's WORA "Write Once Run Anywhere" will kill Microsoft's Evil Empire because it will render Windows irrelevant. There was the sentiment but this doesn’t fully capture what the hype was about. Java out of the gate had Suns network vision built in via jndi, rmi and object serialization. The hype was about moving applications onto the network and off of windows or any particular vendors OS. And this did come to pass, just not how Sun was selling it with Java. For example; Office, Microsoft’s crown jewel and anchor into a lot organizations is now almost entirely web based.
- zozbot234 1y ago> Java out of the gate had Suns network vision built in via jndi, rmi and object serialization. It's kind of obvious since having a standard, platform-neutral virtual machine doesn't just enable WORA; it enables sending binary code and program state over the network, which is quite handy for all sorts of distributed computing flows. We'll probably do the same things using Wasm components once that tech stack becomes established.
- ndiddy 1y agoI think the "move applications onto the network" idea basically killed Java on the desktop and relegated it to a backend only language. It wasn't a bad idea, but it was too early. Because of the focus on network distribution, the two main ways to distribute desktop Java software were Java WebStart (lengthy start-up times on early 2000s internet speeds, integrated poorly with your OS) and applets (only viable for corporate environments where the IT department had control over the whole network and all the clients on it due to security problems, no integration with your OS). If you had to distribute software that ran locally, you had to roll your own solution or buy some third-party tool since Sun didn't have anything that made this easy.
- hedora 1y agoIt didn’t really come to pass. Office web is comically slow, even when I have $5K of machines a 100ish GB of DRAM laying around my house. In the java vision, it’d transparently offload to that network of machines. Also, the user could decide not to offload to untrusted hardware (e.g., I don’t want to trust Microsoft’s cloud compute).
- pyuser583 1y agoJava massacred COBOL and Ada. It was “the” web programming language for a while.