6 ms·
The End of Applets
- k__ 6y agoWhy not reimplement it in WebAssembly?
- flohofwoe 6y agoCheerp has a solution for this, don't know how well it works though: https://leaningtech.com/cheerpj/ https://leaningtech.com/cheerpj/
- iso1631 6y agoSomethings have value in existence but not enough value to re-implement.
- pjmlp 6y agoPeople even pay for it. https://leaningtech.com/cheerpj/ https://leaningtech.com/cheerpj/
- DonHopkins 6y agoHow is this sad?
- noobermin 6y agoFor people old enough to remember the late 90s and early 00s it does feel like the end of an era.
- corty 6y agoThere is a whole heap of applets for educational content, e.g. interactive simulations of experiments and such. Those are still useful but unlikely to be ported to Javascript, similar to lots of Flash content. If the Java VM weren't as botched and insecure as it is, applets would still be with us, at least as an important part of internet history and retained tools and knowledge.
- toyg 6y agoThe Java VM is not particularly insecure, its browsers interfaces are (or rather were).
- corty 6y agoThe JVM itself shipped with a ton of vulnerabilities, e.g. in vendored ancient versions of libjpeg and similar stuff. Those didn't only affect applets but all Java client and server side applications that presented e.g. image processing as an attack surface. Also, vendoring the JVM itself by virtually all java applications lead to those vulnerabilities being exploitable for ages, even after they were publicised and fixed in the latest version. In that regard, the JVMs were usually in worse shape than the browsers' applet interface which was updated far more regularly.
- 2sk21 6y agoAgree - almost every week, new exploits were being discovered, even back in the 1990s!
- cesarb 6y agoNo, other than the bytecode validation bugs, IIRC the security issues were mostly in the JVM's sandbox. It used a blacklist model in which each "dangerous" operation was supposed to call the security manager, which would check if the calling code had permission to do the operation; but there were often holes in these checks, usually chaining several innocent operations and making use of Java's powerful reflection, which allowed an applet to trick "trusted" code in the JVM into doing the supposedly forbidden operations.
- DonHopkins 6y ago
- ketzu 6y agoThe word sad doesn't appear on the linked article right now, so maybe it got changed or it is an editorilized submission title? Maybe it was inteded as sarcastic? It's hard to tell.
- flohofwoe 6y agoConfusing title, because Java Applets are already dead since around 2015 when Google and Microsoft removed NPAPI support from their browsers (and Firefox followed in 2018). This news is just about the removal of some leftover applet-related APIs in the JDK, hardly news-worthy IMHO because you couldn't do anything useful with those APIs anyway for quite a while.
- 2OEH8eoCRo0 6y agoThe user interface of my current (still in development) project uses Java Applets and Internet Explorer. It blows my mind they're still full speed ahead on this stuff when it's been deprecated for over 5 years.
- maxerickson 6y agoIE is still available as an Edge add on, it will never die.
- commandlinefan 6y agoMy first thought when I read the title was that it will be 20 years before even 80% of Java users upgrade to the version of Java that doesn't support Applets.
- kevin_thibedeau 6y agoPretty clear indication you're on a sinking ship with a blind captain.
- panzagl 6y agoIf I had to guess I'd say your project is either a control panel for some sort of network-attached device (e.g. a NAS or UPS) or else the configuration manager for a server blade chassis. I could paper a wall with the number of IA waivers I've had to get to keep some ancient browser/java/flash version around so I could access some config thingy to hardware we bought years ago...
- Angostura 6y agoSo farewell, then, Tumbling Duke
- helsinkiandrew 6y agoIf only the conversations between Sun and Netscape had gone a little differently back in the day, and we'd had a single language/system in the browser – 'java' integrated with HTML and decent JVM sandbox shipped in every browser. Things would have looked very different today. I think better, perhaps a few less web frameworks and paradigms atleast. https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html https://web.archive.org/web/20070916144913/http://wp.netscap...
- raverbashing 6y ago> and decent JVM sandbox shipped in every browser Javascript deserves a lot of criticism but one thing it did right from the start was being lightweight enough for a browser Java seems like it "weighed a ton" since its inception
- helsinkiandrew 6y agoThe JVM or the libraries? - I guess both are large. But the advantage of browsers shipping with all or parts of a standard Java library would be that most webapps wouldn't need to ship a huge number of node dependencies, fewer leftpad Node debarcles and reinvention of the wheel.
- arethuza 6y agoI don't remember the earlies versions of Java (back in 1995 or so) being that heavyweight. It did rapidly acquire baggage though.
- le-mark 6y agoThe most fun I had with applets was the java4k gamescompetition that for a few years required the entries to be applets. At the time I thought there was something really cool about deploying a game on a static html page that anyone could click on and play. Of course actually getting the java plugin installed was usually the challenge. Obviously the entire plugin api turned out to be a “bridge to far”; security was terrible, complexity and inter-op, and useability were all atrocious. Not just applets but flash and silver light as well
- mavelikara 6y agoFor me, the most memorable use of Applets was Fabio Ciucci's visual effects ones.
- als0 6y agoJust a random thought. Are there any obstacles to running Java applets in a browser's WASM environment using API emulation and static recompilation?
- duskwuff 6y agoDepends on the complexity of the applet. The Javascript security model is a bit different from the Java model, so some complicated applets won't work right.
- njacobs5074 6y agoI will not miss them one bit. I worked at Sun back in the mid-90s evangelizing and building customer solutions with applets. They were terrible then and quite frankly I'm surprised that they lasted as long as they did.
- jerf 6y agoA lot of 1990s web technology is only comprehensible through the lens of absolutely enormous amounts of money being poured into it because some people saw a chance to displace Microsoft by getting a runtime onto everyone's system that didn't depend on them. This money ran way ahead of engineering's understanding of how to build a system like this, so we got stuck with some deeply suboptimal decisions because some suits needed this tech now now now if not yesterday to compete with Microsoft. Even Javascript itself is the product of that, because Brendan Eich was given like a week to produce the counterproposal to having Java as the main runtime in the browser. Certainly no matter how you slice it after decades of experience we were going to have some opinions about how to fix it, but how many of the JS "WTF"s could have been avoided if he'd been given so much as, let's say, two weeks? Reading anything about Netscape in those days shows that A: the engineers were smart and experienced and worked miracles with what they were given (IMHO, far beyond anything the suits had a right to expect from them) but B: ultimately they simply didn't have anywhere near enough time to do the sort of work the suits were demanding. Ye olde "can't make a baby with 9 women in one month" struck them hard... no matter how many people they could throw at the problem, you just can't bring up an entire tech stack like that in an all-fired tearing hurry and expect good business results. I'm deeply unconvinced that if Java itself had not been lifted by this tide that it would be the #1 programming language today. It certainly has some neat advantages over C++, but it has a lot of massive deficiencies too, and I can assure you that some of them are so obvious that I could see them in the language as a computer science senior with already a couple languages under my belt in 1999. The amount of tooling around Java to overcome those deficiencies remains quite staggering. I find it amusing that ultimately, Sun was correct. The browser could be used to lever Microsoft out of its desktop dominance. Just not without about another 15-20 years of development. And when that development finally occurred... it was ultimately Microsoft that produced the web-based office suite anyhow.... yup, desktop Office dominance successfully displaced! By Microsoft.
- EamonnMR 6y agoBefore flash came to dominate browser games, there where Applets. The tooling wasn't there in the same way it was for flash, so it wasn't the same explosion of creativity. But there was some fun stuff out there, arcade clones, etc. I did a writeup of how to go and relive some of that fun: http://blog.eamonnmr.com/2020/03/playing-a-90s-web-game-in-the-20s/ http://blog.eamonnmr.com/2020/03/playing-a-90s-web-game-in-t...
- aimor 6y agoThanks for this writeup. I remember fondly a handful of applet games. Most vivid was Urbanoids, another one of Karl Hornell's applets: http://www.javaonthebrain.com/java/warp15/ http://www.javaonthebrain.com/java/warp15/ There was a fun collection at the Applet Arcade: https://web.archive.org/web/20020604024000/http://theshadowlands.net/arcade.htm https://web.archive.org/web/20020604024000/http://theshadowl...
- layer8 6y agoJava Web Start/JNLP/IcedTea is a good replacement if you don’t need direct integration of a Java UI into a web page. Integration with web applications is still possible by having the Java application run a service on localhost that the web app can communicate with. That can be used for web apps that require access to OS services that browsers don’t provide but the JVM does.
- simonh 6y agoWhat's the status of J2ME? It still seems to exist although I can't find any evidence of it being updated in the last 10 years. When it came out, I was expecting it or a close derivative to end up being pushed as a browser technology as well. It seems like it would have been much better suited to it than Applets ever were.
- anta40 6y agoI always think that J2ME is practically stuck since most of BlackBerry users (which are J2ME-powered devices) switch to Android. Turns out I'm wrong. It seems that Java ME is still being updated: https://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/me-e-otn-faq-1852008.pdf https://www.oracle.com/technetwork/java/embedded/javame/embe...
- anthk 6y agoMost J2ME people learnt Android's "Java" seamlessly.
- recursivedoubts 6y agoAnd the rebirth of hypertalk: https://hyperscript.org https://hyperscript.org I live, I die, I live again
- duskwuff 6y agoplay "click.wav" visual effect dissolve slow to grey visual effect barn door open to page go to page "https://example.com/"
- AndrewStephens 6y agoI could write a book on the missteps that killed applets. The idea of applets was great and very forward-thinking - self-contained pieces of functionality to provide UI that HTML couldn't. Web Components are a similar idea 20 years later. And Java was a good bedrock to build applets on - a safe language that runs everywhere in a VM. But the implementation was terrible - let me count the ways: * Performance was awful. Java applets performed OK (and sometimes excellently if you put the work in) once they got started but the initial start-up cost of standing the VM was just woeful. Your browser would freeze for 10-20 seconds while MBs of JVM were slowly loaded and JIT'ed. People started to avoid sites with applets for this reason. Sun never even tried to fix it, and in fact told people it was for their own good because your CPU might have changed since last time the Applet was loaded. * The GUIs were ugly. People back then complained endlessly about the Applets looking non-standard, which was true. Big a far bigger problem was that they were just hideous. Poor default fonts (and bad font rendering), bad default colors, bad fit-and-finish. Sure you could spend time making everything look nice, but it was a huge effort. Sun did try to fix this but with limited success. * Security. The original idea was good - perfectly sandboxed executables. But Sun fell to the pressure from people who should have known better to provide ways of calling out to native DLLs. This was a terrible idea and was the source of many, many security problems. Browsers were wise to disable applets entirely. * Failure to respond to competition. People wanted video on the web and tried to use Java, but the Java graphics stack was pretty slow for that kind of thing. Flash came along with its bad but usable codec built in and everyone jumped ship. A missed opportunity. If Sun had fixed these problems I might be typing this comment into a Java Applet text control with formatting and spell-checking right now.
- cogman10 6y agoI don't think security was approached correctly at all, even from the beginning. The problem is they ran in an environment where only "dangerous" APIs were blacklisted but otherwise you had pretty much full access to all JVM features and capabilities. A blacklist approach does not work for security. It only takes one hole. With an expansive API like the JDK, that ended up being a horrible game of whack-a-mole to try and patch holes as they come up. Applet security would have been much better done as a completely separate runtime from the standard JDK with only the APIs that make sense for applets. That, however, is a lot harder to pull off (at least initially). Agree about everything else, though. Applets were in the right place at the right time but poorly executed. So poorly that techs like flash ate their lunch. (And I don't believe flash was particularly well executed, just better than Applets).
- elwell 6y agoI have fond memories creating Java applets in high school; mostly games, physics sims... and later, a multi-calendar Google Calendar interface (one of the first times I got paid to write code).
- micro_cam 6y agoFor a second I thought this was going to be about the 101 year old maker of Aplets and Cotlets candy that also just announced they are shutting down https://www.king5.com/article/news/aplets-and-cotlets-closes-101-years-liberty-orchards/281-2df48343-3cd8-40ca-8122-ac427c5e0896 https://www.king5.com/article/news/aplets-and-cotlets-closes...
- anthony88 6y agoEven if Applets are no longer used in the browser, they are a good candidate for a plugin system. That's what I did in some of my software: just provide a file or url and you have another software running in my software. Searching for "extends JApplet" returns more than 50,000 results on github.com. SwingSet2 for example is also using the class JApplet. Removing the 6 classes will break some stuff, including all my desktop apps.
- pjmlp 6y agoThey are quite alive, https://leaningtech.com/cheerpj/ https://leaningtech.com/cheerpj/ http://teavm.org/ http://teavm.org/
- apignotti 6y agohttps://chrome.google.com/webstore/detail/cheerpj-applet-runner/bbmolahhldcbngedljfadjlognfaaein https://chrome.google.com/webstore/detail/cheerpj-applet-run... This tool allows to safely run applets in Chrome purely in HTML5/WebAssembly/JavaScript. No plugins needed. Over 50k users are using it, and over the years we have been shocked by how many people and businesses are dependent on this kind of legacy content. The extension is only intended for non-commercial use, we offer business an even better/faster solution by converting Java bytecode Ahead-of-time. Disclosure: I am CTO of Leaning Technologies, the company developing this extension and the underlying CheerpJ technology.