34 Comments
Mar 2, 2022Liked by Steve Hannah

I was pretty heavy into Java back in the day but I have never heard of JWT, and if I did then I completely ignored it. Swing was and is amazing. Intellij IDEA is built in Swing.

I kept downloading and playing with Netbeans up until 3.5.1. As soon as I tried that version I started building an app with it and never stopped. It was definitely a killer app moment. Nearly twenty years later I'm refreshing the app for a new release. I kept trying to use eclipse over the years but never understood why it was even a thing compared to Netbeans.

Expand full comment
Mar 6, 2022Liked by Steve Hannah

The desktop is not dead - for serious computing it is sill essential.

Python and Qt provides write-once-run-anywhaer and a tottally native user experiance. If you want to make native binary executables, try C++ and Qt or for completely free, there is Lazarus.

Expand full comment
Mar 5, 2022·edited Mar 5, 2022Liked by Steve Hannah

I agree that Java did not make much inroad on the desktop, probably because we did not see any killer app. However, I did see and use one that demonstrated Java prowess. It is the flagship desktop trading app from tdAmeritrade (orginally, thinkOrSwim) - No, I have no financial tie with them. I started with the app in ~2008 on a Linux desktop, because that was what I had. Other than using a web browser, most trading houses only offered Windows or Mac versions. In any case, this thing is impressive. If I didn't tell you, no one would think it's a Java app running on Linux. It may not be cruise missile real-time, but I am not sure what else one would want from a trading app. It's got all the charts and prices on multiple panels and screens. And, I just looked. It is running on OpenJDK 11, on all 3 major platforms today. Have a look, if you are a Java fan: https://www.tdameritrade.com/tools-and-platforms/thinkorswim/desktop/download.html

Expand full comment
Mar 4, 2022Liked by Steve Hannah

So, I was doing C/C++ development w/ an OODB when JDK 1.0.0 was released. At the time was using Borland's C++ Builder and Metrowerks' CodeWarrior tools. First JDK on classic MacOS (8 I think) I used was JDK 1.0.2. Eventually Borland released JBuilder and CodeWarrior included Java tools. I remember Borland created something close to their OWL for Java which I think was a precursor to Swing because AWT (also known as Awful Windows Toolkit) was not fun. I think there's a few reasons for the desktop failure:

- Don't do work on the event thread. Doing multithreading back then wasn't easy and most programmers didn't get it. You couldn't do anything that took too much time on the event thread or the app looked frozen.

- The last 15%. Most developers could get their app up and running pretty quick and get the functionality they needed working and have their app at 85% done. It was that last 15% where you had to do platform specific things to make the app look native that most folks just didn't want to do and the apps looked bad. It's possible to get things to look really close to native but it's the last little bit that trips up folks.

- Too much boilerplate code. Look at how event listeners are setup and you see the wasted code that's everywhere in Swing. Plus there was no app framework until way too late and was never released.

At one point I had an Applet using CORBA to talk to a biological database (POET Object Database) that I showed in the UK with the DB back in Virginia. I eventually had a few apps in Java for in-house usage but nothing ever commercial. Eventually I moved to backend development w/ JEE but I still think about trying to spin up a Swing app.

Expand full comment
Mar 3, 2022Liked by Steve Hannah

Loved this article. It's very relatable to my own experience around 2006, back when I was in college. I too felt like the Java programs we wrote for schoolwork were somewhat contrived and the non-nativeness bothered me a lot more than it bothered my peers. I mean who ships downloadable apps as .class files? It's not classy. Meanwhile I looked in envy at professional developers who shipped .EXEs that started right up with no delay, no memory hoarding, and no performance loss, and wondered how learning Java in college was really preparing us to write desktop applications in the real world. As you rightly pointed out, many Java-trained engineers went into backend development (so did I *sigh*), but I too still retain a fascination with writing native apps that don't depend on some bloated middleware. Anyway, great article again and thanks for bringing me a smile as I enjoyed my morning coffee.

Expand full comment
Mar 2, 2022Liked by Steve Hannah

Enjoyed the article, saw a typo in 2nd last para. "instalment"

Expand full comment
Mar 2, 2022Liked by Steve Hannah

High school AP Computer Science classes are still teaching Java today. I suppose many of the skills it develops are applicable to other languages, but this still needs to change.

Expand full comment

Flutter today is doing what Java was trying to do 20 years ago. Maybe it will succeed.

Expand full comment

Very interesting. As a mac user as well, I was use to the very consistent and 'snappy' classic macOS feel/look/function. The performance difference was probably more noticeable to mac users. I would like to know the java experience from a windows users prospective. Windows was more fragmented and less consistent due to more development environments and frameworks. I remember many more windows apps feeling like Kais Photo Goo instead of icons, menus, buttons.

Expand full comment

Apps on the desktop are dead.

Expand full comment

Hi Steve Hannahn, nice to meet you. I come from China as an editor of CSDN, one the largest IT communities serving Chinese software engineers (https://www.csdn.net).

This article is so great, and your analysis of Java's evolution is amazing. Could you please authorize us to translate it into Chinese? The translation will definitely be free for all people, and we will state clearly your personal introduction and original link in a prominent position.

Expand full comment

Anyway, now the desktop is dead... war is on web

Expand full comment