If you’re familiar with Java here in 2025, the programming language you know is a world away from what Sun Microsystems planned for it in the mid-1990s. Back then it was key to a bright coffee-themed future of write-once-run-anywhere software, and aside from your web browser using it to run applications, your computer would be a diskless workstation running Java bytecode natively on the silicon.
What we got was slow and disappointing Java applets in web pages, and a line of cut-down SPARC-based JavaStations which did nothing to change the world. [FatSquirrel] has one of these machines, and a quarter century later, has it running NetBSD. It’s an interesting journey both into 1990s tech, and some modern-day networking tricks to make it happen.
These machines suffer as might be expected, from exhausted memory backup batteries. Fortunately once the serial port has been figured out they drop you into an OpenBoot prompt, which, in common with Apple machines in the ’90s, gives you a Forth interpreter. There’s enough info online to load the NVRAM with a config, and the machine stuttered into life. To do anything useful takes a network with RARP and NFS to serve an IP address and disk image respectively, which a modern Linux machine is quite happy to do. The resulting NetBSD machine maybe isn’t as useful as it could be, but at risk of angering any Java enthusiasts, perhaps it’s more useful than the original JavaOS.
We remember the promise of a Java-based future too, and tasted the bitter disappointment of stuttering Java applets in our web pages. However, given that so much of what we use now quietly runs Java in the background without our noticing it, perhaps the shade of Sun Microsystems had the last laugh after all. This isn’t the first ’90s machine that’s been taught new tricks here, some of them have received Java for the first time.
“Fortunately once the serial port has been figured out they drop you into an OpenBoot prompt, which, in common with Apple machines in the ’90s, gives you a Forth interpreter.”
I have an old ibook g3 ppc with a broken screen, it could netboot if you press 4 keys, and has OpenBoot if you press “Command (⌘) + Option (⌥) + O + F”.
I remember the hotspot Java browser. It took like 10,000 years to load and 8 million GB of memory. I really didn’t enjoy it. I was happy to see the remove of Java web start from the browser. Webassembly seems to be better though.
“a Forth interpreter”.
fig Forth is both an interpreter INTERPRET and a compiler COMPILE.
c/c++ industries tried to bury forth software technology? But :)
bright forth 8051 internal forth.
AI Overview. :)++
Bright Forth 8051 internal Forth” refers to a version of the Forth programming language specifically designed to run on the internal memory of an 8051 microcontroller, allowing for a compact and efficient implementation directly on the chip without needing external RAM for the Forth dictionary and execution stack.
We had a Bright forth chip at Sandia Labs. Who produced? Intel?
I trained at Forth inc. it is not compiled which means generating machine code. It is fast when running the inner interpreter.
Awful lot of Android devices out there running Java-based apps, to claim it fizzled so completely. Yeah Sun had it way wrong, but “the network is the computer” actually turned out to be quietly prescient all the same.
yeah i think the roadmap to get from here to there is a little twisted but it really came out exactly as envisioned. i still marvel that microsoft at the turn of the century had the clearest vision for how to get there — the ambitions of ms dot net turn out to be almost identical to android imo. microsoft just didn’t have the internal focus necessary to get it done. they squandered ‘getting there first’ into a massive dead end
Java hasn’t fizzled. It just didn’t realize it’s potential when it was introduced. I was at Java One and was very impressed with the goals back then. Build once deploy everywhere. I was motivated and captivated. Back at work, I even started and completed a few projects for web apps as we saw a great opportunity for ‘easy’ deployment of product. Upgrades would be ‘easy’ as just deploy .jar to web-server and then downloaded to client machines. Life was looking good… Until ‘security IT’ got involved. Then customer IT departments wouldn’t allow it on their machines and that blocked us from our plan. :( Hopes dashed, Java projects were dropped. Back to deploying C apps on a CD or our ftp site… I think Java is still used in great many places and taught in schools. I know a high school teacher in Texas that uses Java as programming introduction. So not going away. It just hasn’t been able to live up to the initial goals. At home I dabble with it now and again…
Java is like COBOL, it’s not great but getting rid of it is going to be a pain. It’ll be around a long time but that doesn’t mean it’s any good.
Server side it will be with us for a while. Clients side a bit more hidden and more subject to “oh shiny” trends.
I don’t mind programming in Java although I prefer C. I’m keeping Java skills in my back pocket if my employer is going to make me redo everything in Rust or whatever. Main problem is high paying Java jobs are pretty rare these days.
Java is still widely used and still being introduced for new projects. There’s no industry push to “get rid of it”.
Should have added this above, but in the corporate sector, Java and dotnet are the two games in town. There are cute tiny parts of C or Rust, maybe even Python, but Java and dotnet reign supreme by a massive amount.
Anyone whining about caplets in 2025 didn’t understand what Java became. For better or worse. I’ve been doing it at businesses for 25 years.
I didn’t find any thing on Java caplets. What are they? For my company, when customers stopped allowing Java to run in a browser was the death of Java use for us as a user interface. Went on to write a few utilities in JavaScript (completely different animal) that were used, but our GUI into our SCADA system stayed with ‘C++’.
“Back then it was key to a bright coffee-themed future of write-once-run-anywhere software”
Except it was a lie. They published, promoted, and then abandoned GUI toolkit after GUI toolkit instead of making one complete toolkit that really could work on any system. The result was fragmentation and systems that could not run Java applications without a JVM upgrade. This is especially problematic for embedded platforms which were basically unsupported after the initial release.
The promise of write-once-run-anywhere was never fulfilled because they failed to anticipate the need to include low level primitives that could be used to implement higher-level toolkits. Polyfilling an API is possible… but only if the underlying actions are accessible. Java has and will always be write-once-terrible-everywhere.
Back then there had been different implementations, I vaguely remember.
Microsoft had its own thing, also for Java Script (JScript).
But in the end, everyone had to install Sun’s Java and Java Script anyway.
So much for platform-independence. The official runtime ran only on a handful of platforms. Windows, a few selected commercial Unices, etc.
Javascript is not Java.
Thanks, I know and I didn’t mean to imply it as far as I know.
Yet they appeared about same time and were both being used in web browsers.
The relationship can be compared to Visual Basic, VBA and VB Script, maybe.
Java Script shares conceptual similarities with Action Script used by Flash.
“If you’re familiar with Java here in 2025, the programming language you know is a world away from what Sun Microsystems planned for it in the mid-1990s.”
I remember. IBM proudly advertised OS/2 Warp 4 as having Java..
While simultanously, IBM being IBM, it killed the own Web Explorer.
Which as a browser wasn’t so bad, actually, in the HTML 2 days.
Most browsers were HTML 2, with partial HTML3 compatibility added.
For extra things like frames, tables etc.
It’s at least write once and run in the two places where it counts, Linux and Windows. I can take the same Jar and run it on my local Windows machine and on a Linux server without changes. Same can be said for many modern languages. I still think Java is fine for backend, micro services and such. It’s certainly a mainstay in the corporate world. I think Java gets a little more hate than it deserves.
where can you find a Java Station? It would look neat sitting next tpo my SPARC10
They show up on eBay. That’s where I got my Javastation “Krups”. :-)
There’s 1 on ebay now… for $4000. Yikes.
Having s/used/tried java in its infancy on a 486, it was extremely frustrating how resource heavy it was, and SLOW all applets ran. It usually took my machine down. I never touched it again and was happy to turn down jobs that tried to be java centric since it was the New Best Thing™ in the coming years.
Still have a very bas taste in my mouth from it. And was very saddened to find that Android had been build upon it when I investigated how to develop for it.
It was a language before its time :) . Runs decent now on the new hardware. I have really nothing against the language. I just wished it ‘would’ run everywhere and in browsers starting back when. Java has matured nicely over time with a ton of modules that can be used. At work though it is discouraged to use it for general use as its mostly M$ shop. Do you a lot of Python though which is a better fit for what we do. However our Energy Management System does use it all the database work that we do and a few other things which we don’t have control over.
There was CHIP-8 at the time. And Visual Basic using P-code. ;)
For professional programming, most of us would never touch Basic again. Pascal was good, C was coming on strong and still going. Still have a strong dislike of using VB. At work it was used by some engineers to hack spreadsheets and Access databases and later the apps were ‘hard’ to maintain as quite a few used in places where they should have used a different language for the automated task(s) at hand. I actually rewrote quite a few in Python which are now maintenance free — call-outs are non-existent.
It must have been nice to have the luxury of arbitrarily turning down jobs on the basis of programming languages. These days, you can’t afford to be picky and it takes a minimum of 5 years to get a job in software development (if you’re INCREDIBLY lucky).
Nowadays, employers turn you down on the basis of languages.
Indeed, the requirements by the employers have risen. I have this idea about it:
They want to have programmers with an experience of 15 years for a certain programming language that is merely 10 years old.
They also want social skills, like teamwork ability, meaning that you may finish the work of your lazy co-workers without complaining.
As compensation, they offer you cold coffe, a fruit basket with mushy fruits and unpaid overtime (and a sleeping back).
You can also park your bike in the damp basement for free.
Yeah, todays employers are generous. Being a programmer in the 2020s is fun. :D
Back in the 80s, ‘C’ is what helped get me my first job in real-time programming for SCADA systems (both ends master and RTU) for power plants, substations, and communication sites. My schooling was all Pascal for all CS classes, but I was learning ‘C’ on the side. Also being applied CS helped to as I had the Physics and Electronics courses as well. They kept me on… so must have done something right. Now it is C++, Python, Perl which are needed in my current position in Energy Management Systems Operations.
I wish Java had actually been good. Then the web could have remained a set of hyperlinked static documents, and anything app-like could have been Java.
Or Flash.
If it was up to Oracle, we’d be pay 80 gillion dollars to run java apps.
They keep trying to extort the industry.
Yep. Glad we have Open Java to carry the load now.
Make it ‘standalone’ by shoehorning in an old 100MBps router and a Raspberry PI!
Java is still preferred platform for business cash transactions. Most ATM and cash recyclers are still using it.
For anyone who has one of these, you can replace that battery backed NVRAM with a m48t08-150pc1 from TI. You’ll get 7-8 years out of it before you need to replace it again. Alternatively dremel at the centre of the pin 1 end about 2mm deep and you can get to the battery contacts to wire your own in.
A history of Java without mentioning oak?