12 ms·
The decline and fall of Java on the desktop
- tus666 5y agoEh Java never made it to the desktop. Weird.
- TacticalCoder 5y agoI don't know why you're downvoted: there is some truth to that. Java has never been a big player on the Desktop space. There's been a few successful Java desktop apps but not that many. I kinda liked developing Java Swing app but I never saw Swing apps as something very common. On the other hand Java and the JVM "not on the desktop" kinda made it everywhere.
- jahlove 5y agoSome of the new LookAndFeels for Swing are really slick. Take a look, for instance, at FlatLaf: https://github.com/JFormDesigner/FlatLaf https://github.com/JFormDesigner/FlatLaf
- gordaco 5y agoThe ability to switch LookAndFeels is one of my favourite features of Swing. Lately I've found myself using the Motif one a lot for my tiny personal projects, although copy&paste doesn't seem to work on its text boxes and that's very annoying. I usually make it so I can configure it an change it on the fly. Trying all the possibilities is kind of satisfying. Java gets a lot of hate but it's a language I really like. The only real issue I had with it is its memory consumption. As a developer, it still has some warts like the absence of actual generics (autoboxing is an ugly hack), but when I compare it with other languages' warts, they are usually uglier. Although my preferred usage of Java is mostly reduced to mathematical or algorithmic stuff, with little to no external libraries, and it certainly doesn't include Spring or any other annotation-heavy framework. As a user I also definitely prefer Java to Electron and most modern frameworks. Then again I hate most modern design trends...
- kactus 5y agoI still run across Java apps pretty often, but they've all been third-party tools for Eve Online. I begrudgingly installed the Eclipse JRE for them.
- wanderer_ 5y agoHigh 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. However... Minecraft, anyone?
- spogbiper 5y agoWhy should it change? Java is one of the most popular languages used today
- wanderer_ 5y agoAs discussed in the article, it's slow and has compatability/portability issues. And I don't really want to play the log4j card, but...
- shubhamkrm 5y agoOther than startup times, modern Java is not slow at all. In fact, it's way faster than many other popular languages today such as Python and Ruby.
- wanderer_ 5y agoThat's true. Python is no speed demon. However, languages like C are (for the most part) faster, and they need no emulation layer. I just think it's kinda strange to teach a language that is part-compiled-part-interpreted to kids as a first language. Maybe we should teach them both a compiled language and a language like Python to show them that each one has its place and specific uses.
- peterashford 5y agoIt's not as fast as C/C++, but its faster than most languages in heavy use these days
- spogbiper 5y agoif we assume the purpose of an entry level class is to introduce students to what they are likely to encounter in the "real world", Java seems like an excellent choice.
- UltraViolence 5y agoJava's only claim to fame is that's the granddaddy of C#, a far superior language and IMHO one of the greatest computer languages ever created. In addition, Java was ahead of its time, with mid-1990's computing power not up to the job of letting it run smoothly on lower and mid-tier PC's. It also required, for that time, an egregious amount of RAM memory.
- karamanolev 5y agoI've spent 3 years with C# professionally and greatly enjoyed them. That being said "one of the greatest computer languages ever created" is a bit of a stretch. Yes, it has a lot of nice features, relatively good ergonomy and in recent years, its openness has increased its viability a lot, but still. It's neither particularly innovative, nor does it allow you to do things you otherwise couldn't. It's no Erlang, Haskell, Assembly or something like that. It didn't pave the way for something like PHP did for the web backend or JS for the web frontend. Also, I really apologize for nitpicking, but "RAM memory" is a tautology.
- Cthulhu_ 5y agoC# is a "standing on the shoulders of giants" kinda language IMO; they learned a lot from Java and evolved on it, mainly in terms of developer ergonomics and features that makes their life easier and less tedious. They had less of a design-by-committee team behind it as well, making development a LOT faster than Java, which feels like it's run by ancient, slow moving behemoth companies like Oracle and IBM. I mean I get it, they have tens if not hundreds of millions of LOC and thousands of developers working with it, they had to be conservative, but it didn't do the language much good, and after a few years, IMO C# raced past Java in terms of 'fun to work with'. The downside is that until .NET Core, C# was a closed shop; by Microsoft, for Windows, and everything needs to be licensed. Whereas Java embraced more of the open source and freedom of choice mentality.
- kaba0 5y ago> C# raced past Java in terms of 'fun to work with'. I agree that language-wise, C# is definitely ahead. But just a heads up that I think it is also dangerously going towards the fate of C++ (or even already there) where no one person can hold the whole language in their head, and new but not learnt features might introduce problems down the line. For a language, what gets implemented is an important question but perhaps what doesn’t get is even more important, and Java (after the stagnation at the end of Sun) is a slow-mover but when they do, it is usually the best direction/approach. For an example, C# chose (even created afaik) async which is a good feature, but arguably a runtime language could have got away without any new feature and implement it in the runtime alone, a la project loom in java.
- nitwit005 5y agoI'd disagree on the "faith in the power of Moore’s law" part. It was closer to faith in Sun. There were big performance jumps each version from Java 1.3 to 1.6. Some apps became suddenly not terrible.
- silver-arrow 5y agoMoneyDance was and is a very good Swing desktop application. I have used it for years and love it.
- numlock86 5y ago> The decline and fall of Java on the desktop What is this even referring too? Java is everywhere, especially on the desktop. I wouldn't completely contradict and claim "more than ever", but it sure is not on a decline and/or fall. Applets are gone for good, but that's about it.
- eschaton 5y agoThe headline presumes Java ever actually went anywhere on the desktop in the first place.
- avereveard 5y agoimagine an article about the decline of desktop java not mentioning the role of the microsoft bundled jre that basically broke most applications by default. the java ecosystem took a couple years to get out of that issue properly in ways that non techie coulod follow, but the bad experience stuck in the collective user minds up till this day.
- phplovesong 5y agoJava on desktop in 2022 seems like a lost cause. It's always slow and hogs resources like crazy. A good example is all the Jetbrains IDE's. Try running any of them on a low powered laptop and you end up having a bad time. Luckily there seems to be a push for fully native.
- jabbany 5y ago> Luckily there seems to be a push for fully native. Really? I thought there was a push for Electron/Chromium everywhere (which seems comparable or worse than desktop Java...)
- danuker 5y agoI think Electron is neither here nor there. It is the "stroad" of software distribution: the sluggishness and poor performance of a web interface, coupled with the difficulty to upgrade of a desktop package. Personally I push for either native apps or web apps, to regain at least one of the benefits lost by packaging web apps.
- ihateolives 5y ago> coupled with the difficulty to upgrade of a desktop package Huh? Two Electron apps that I use are Github Desktop and VSC. Neither is sluggish and both have streamlined automatic updates.
- danuker 5y ago> streamlined automatic updates Sure, from the user's perspective. But from the provider's perspective, there is a lot of infrastructure needed to reliably and automatically update on various platforms. Compiling files per-platform, hosting them securely, checking checksums, binary self-replacement, settings migration for many possible settings... Compare with deploying the server code, migration only for one data set (the one on the server), and then hitting refresh in a web browser.
- 5y ago
- Naac 5y ago>> This history is neither meant to be comprehensive, nor necessarily chronological. I’m recounting my own journey through the Java desktop landscape, and it will be biased towards Mac This paragraph should really be right in the beginning of the post, instead of in the conclusion.
- qiskit 5y agoSo that must be why he didn't mention microsft, windows, C# and .Net. Hard to take the article seriously when he ignored 95% of the actual desktop market. Not to mention Sun's failure with their java based OS and its own eventual collapse. https://www.wsj.com/articles/SB891383840659892000 https://www.wsj.com/articles/SB891383840659892000 Java is still a major language worth learning, but yeah, it never lived up to its hype. When I was young, I remember asking in one of the forums whether I should learn Java or C#, perl or python. The answers were overwhelmingly java and perl. So java and perl were the first two languages I learned on my own. No regrets, but man the internet at the turn of the century/millenia really got that spectacularly wrong.
- loudtieblahblah 5y agoI just wish it'd go away entirely. I'm not a dev. But an admin. And I despise supporting or troubleshooting Java applications. Unfortunately that's my life these days. From an admin perspective, python, php, hell.. Even ruby. All fine. But Java is a nightmare.
- manuelabeledo 5y agoWorking on a successful Java shop with thousands of deployments per month. Curious about what's so hard about Java.
- wiz21c 5y agohaving to run several Java runtime versions on the same computer. I developped some years ago and that was an issue: some applications require 1.7, others 1.8, with some funny security specifics (I think it was not possible to set the security level for certificate on a per-version basis)
- manuelabeledo 5y agoWhat’s so hard about that? I genuinely don’t understand. I run applications on different JREs concurrently, and I yet have to find any issues with it.
- Supermancho 5y agoCurious why you dont recognize the obvious. The different runtimes each have their own behavioral/configuration quirks, library incompatibilities, and workarounds. This leaves stack traces as being less than helpful without full context.
- cosmotic 5y agoCan you explain why it's so hard? I've had a lot better luck running Java apps than Python.
- geodel 5y ago
- cosmotic 5y agoJava Swing still lets you make native-looking-and-feeling apps (with some care). I don't know of any new GUI frameworks that let you do the same. I consider this a killer-feature of the framework. It's also very fast, backed by OpenGL and DirectX. It also ships with source code and isn't declarative, so it's trivial to step into as a means to debug why your code isn't working.
- jcranmer 5y agoI will freely admit that Java Swing remains the only GUI toolkit I've used that I actually felt comfortable using to write a GUI, rather than something that feels like having to pull out teeth to get things working in a somewhat coherent manner.
- bitwize 5y agoYou haven't tried AppKit, WinForms, or WPF.
- datavirtue 5y agoWinforms is dead, as in not cross platform and WPF...the same. WPF is declarative XML as is Xamarin Forms (both slightly different XML oddly). Not fun.
- mike_hearn 5y agoXML is actually pretty good at declaring UI. It's the sort of thing the language was designed for - a UI is a tree of attributed nodes, and that's also what XML gives you.
- jeroenhd 5y agoMicrosoft's refusal to port WinForms is truly the most disappointing part of its cross-platform efforts, in my opinion. They have Mono, they can get it working, they just choose not to. I wouldn't build a production application in WinForms, WPF and friends are much better for that. But, for quick&dirty or even moderately complex tools for experts, VS + WinForms simply has no equal. Some Python-based designers come close, but they definitely suffer when it comes to distribution. With modern dotnet tech, Microsoft could allow us to build a (rather sizable) single, statically linked binary for any architecture, with the impressive performance of the dotnet JIT and native controls. After working on Android designs, I've got to say, XML is fine for UI design. You need previews and visual inspectors to get an accurate idea of what you're doing, but describing what control lives where and what properties it has is a perfectly sensible use case for XML.
- jcranmer 5y ago> As new versions of Java were released, and Internet Explorer entered the scene, the HTML code required to embed your applet became increasingly complex, with different tags used for different browsers and versions or Java. The <applet> tag was advertised as the correct way to embed an applet in a “multi-browser” environment, but Internet Explorer used the <object> tag and Mozilla used the <embed> tag. In the time I was playing around with applets (largely after the dates mentioned in this article, mind you), I don't think I came across any site using applets that didn't stick with <applet>. Using <object>/<embed> might have been more "correct," but this is also fervently an era where trying to enforce "correct" HTML usage was at best an attempt to whip the tide into submission.
- shannah78 5y agoI always found this very confusing. I still do. At one point in time I think I could have explained why there were three tags. But I don't remember the specifics anymore.
- sebazzz 5y agoAs a C# developer I remember the first time I developed a GUI java application. In C# you have a code-behind file with your own code and event handlers, and a "designer file" with the generated code to set-up the GUI itself. Then I used Netbeans for a Java app, and the code file contained weird sections of artificially not editable code, and event handlers were so much more complex and cumbersome - with inner classes etc. Felt really like a step back.
- panzagl 5y agoThat's more NetBeans than Java- the GUI builder really didn't want you messing with it's generated code directly.
- TacticalCoder 5y agoSure but for those who remember history C# was Microsoft's answer to the incredible success that Java was clearly becoming. Being years late to the party and basically creating a (back then) Windows-only copy of Java, it's quite normal that they managed to do a few things better. Regarding UI editors: back in the days IntelliJ was already amazing and allowed to hide all that boilerplate Java code. This boilerplate code was still there, but hidden by the IDE.
- saurik 5y agoI mean, C# only got created because Microsoft wasn't allowed to add native GUI features to Java. I feel like you might have missed all the critical history with J++ and the lawsuit from Sun.
- mdasen 5y agoYea, it's kinda hard to say how things would have shaken out. I think Sun was reasonably wary about J++. Microsoft's way of operating at the time was "embrace, extend, extinguish." Microsoft brought out Internet Explore (embrace), added ActiveX (extend), and pretty much extinguished Netscape. All websites could run in IE, but not Netscape - and users are going to use the browser that works for all sites. Sun's lawsuit against Microsoft wasn't quite about adding native GUI features to Java as much as Microsoft breaking Java compatibility. Microsoft removed JNI (Java Native Interface) and replaced it with J/Direct. Microsoft wanted Java programs to be platform-specific with Java being "just the latest, best way to write Windows applications" (according to documents from the trial). It's not like Microsoft was trying to create MAUI back in 2000 (the new C#/.NET multi-platform app UI). Microsoft was trying to make it so that Java apps wouldn't be cross-platform by both breaking Java programs that used JNI and making sure that new programs would be made with J/Direct and their Windows-only GUI. Today, we see a much friendlier Microsoft. It's wonderful. They're happy to coexist with lots of people and ecosystems, lots of Microsoft employees use MacBooks, and Azure is one of the largest operator of Linux servers in the world - and they've made a wonderful business out of this coexistence. Back then, Microsoft would kill everything it could find to keep its dominance. There was no friendly help. There was no "oh, we're just trying to make the GUI better." It was "if we make the UX better via a proprietary native UI, we can get developers using our UI toolkit from Java which means that users are still locked into Windows, it means that the Mac will still be starved for applications, and it means that new operating systems like BeOS won't get a library of applications to bootstrap from if they just add Java support." It can be hard to remember how much Microsoft tried to break your toys - especially when today they seem like the company that's trying to make cool toys for me and make my current toys better. Proprietary Microsoft Office formats to keep people locked in, telling PC makers that if they offered alternative operating systems as an option they'd lose access to Windows, and taking anything that showed promise and adding something to it to break compatibility with cross-platform implementations (Java, the web, etc) C# got created because Microsoft got locked out of their embrace, extend, extinguish strategy with Java. Their Java license mandated that they maintain compatibility and they didn't - and to be frank, it seems that they didn't break compatibility with good intentions.
- alex_suzuki 5y agoSuccessfully using JavaFX (or OpenJFX as it is now called) in a mission-critical cross-platform app with 50k+ installs. It’s not that bad really. Package size and RAM usage is a bit of an issue, as we bundle it with a jlink’ed (stripped down to what is needed, thanks to Java 9 modules) JDK. Other options like Electron or native Windows/macOS wrappers around a shared core written in C++ were discussed but ultimately discarded. Still happy with the choice, although it feels a bit dated and IDE support (IntelliJ) is so so.
- TheRealSteel 5y agoI'm working on a personal project at the moment that uses a shared C++ core across Android and iOS. (It's an image processing plugin for Unity, no GUI, so cross platform frameworks aren't suitable). It was complicated to setup, but I'm glad I did. Only having to write 99% of the code once is a life saver.
- alex_suzuki 5y agoJust to elaborate, we make heavy use of JNA to interface with platform-specific facilities such as Keychain, Notifications, etc. JNA is an awesome piece of technology.
- tombert 5y agoI had to use OpenJFX for school recently, and while I still hate the Java language, I had to begrudgingly admit that JavaFX really wasn't that bad at all. It more or less did what I wanted it to do, the resulting GUI didn't look too bad, and it performed well enough. I ended up using it for a Clojure app a bit later. It's good enough to where I think that if JavaFX had come out around the same time as Swing, the Java GUI would substantially more popular. As it stands, when I tell people I'm using JavaFX, they either don't know what I'm talking about, or they'll say "isn't that just Swing? Yuck!"
- Tsarbomb 5y agoI hate the old school way of writing Java more than any other language. I love writing in "modern" Java more than any other language. Lombok, RxJava/Reactor where possible, and monads everywhere. It is beautiful and succinct, though I totally appreciate it may not always be easy to introduce on older frameworks or legacy projects.
- gedy 5y agoFor its time, Java Swing was a really nice toolkit, and really impressive in its cross platform capabilities. That you could develop a UI directly with code without having to rely on a design file, IDE, or separate tool was very impressive to me.
- cgrealy 5y agoFrom a dev perspective, absolutely. From a user perspective, no. Every Swing app I've ever used has been ugly, slow and painful. Now, that might be the fault of the developer, but at some point, you have to wonder if either all Swing devs are terrible or Java UIs are just very difficult to get right.
- shannah78 5y agoMy experience with many Swing apps is the same. I think a large part of the problem lay with the development tools. When you create a new Cococa project in Xcode, it generates a full app with all the necessary parts to feel native. You build it, you have a functioning hello world app with your "File" menu, etc... In Java, when you create a new Swing app, the IDE (by default) just creates an empty main() method for you. You're expected to create your own menus and windows. Trying to make the app "native" requires a significant amount of work.
- bartread 5y agoI still rate the layout managers in Swing above anything I've ever experienced with .NET: made it super-easy to build resizeable GUIs compared to, for example, the absolute positioning dumbassery of something like Windows Forms. Flexbox nailed it for the web but it was something like 18 years later before it was consistently implemented across all browsers.
- shiado 5y agoOn the other hand Minecraft is the best-selling PC video game of all time and it was originally written in Java and the Java client is the definitive experience of the game.
- cgrealy 5y agonot really a desktop app though, is it? And Minecraft is also a notable outlier. Outside of mobile, there are very few games written in java on PC or consoles.
- DaiPlusPlus 5y agoLimewire tho
- bruce343434 5y agoMinecraft is an application which runs on the desktop... I don't see what you mean.
- cgrealy 5y agoIt's a game. It's UI is full screen and completely divorced from "standard" UI elements (WIMP, etc). You can call it a desktop app, and you'd be correct in the most pedantic sense, but then every web app is also a desktop app since you run it on a desktop.
- mellinoe 5y agoChrome the browser is a desktop application, websites you visit in it are not.
- RhodesianHunter 5y agoHow is it not a desktop app? Millions play it on their desktop.
- commandlinefan 5y ago
- mjevans 5y agoIMO the real decline was Oracle. Java used to be a slowly rising language and set of platforms with benevolent oversight from SUN and at least the outlook that it was one of a few things you might want to add after Microsoft's Windows or Apple's OS (Macintosh or later OSX). Then Oracle bought SUN and everyone knew all of the good would eventually be strangled out by the lawyers and models that sought to dominate and extract for revenue control.
- tmp_anon_22 5y agoReally it was the Chrome v8 engine paving the way for electron and Single Page Applications.
- tonyedgecombe 5y agoThe rot set in way before Electron came along.
- DaiPlusPlus 5y agoIt's not because of V8. It's because HTML+CSS (without even any JavaScript) is still the fastest, most effective way to build a compelling and coherent UX/UI for any platform right now. WPF (nee Avalon) was a contender in the mid-2000s, but for some reason Microsoft put it on ice by 2007 leaving the community stuck with incredibly verbose and bloated XAML markup which only made development more tedious than WinForms, which WPF was slated to replace. Microsoft's effective abandonment of *their own desktop developer story* is what enabled Electron to come along and even prompt Microsoft to use Electron for Skype, Teams, Azure Storage, and VS Code - it's utterly bizzaro-land now: almost as if the Microsoft of the mid-1990s made their own website only work in Netscape. I was at MSFT from 2012 through 2015, my observation was that the C-suite unintentionally kept OSG (Windows, etc) separate from DevDiv (Visual Studio, WPF, and all those nice cushy libraries), which led to OSG and DevDiv having to recreate each other's work and ending up with complete messes like "XAML Windows Store Apps" which turned into UWP, which no-one is took seriously because it was too limited, while Win32 is still the only real way to use Windows' "real" UI widgets. I can't explain the situation: things were dysfunctional like this long before the great layoff of 2014.
- makach 5y agoI used to love Java. Although I think they ruined it with the concept of "Enterprise Java" which only complicating how they were delivering the software. Many good things came out of this work that has been ported to many other frameworks (although, not with the enterprise branding) Java is not slow, I use a couple of high quality desktop applications and these will most likely have a future as long as the language is developed. These are not slow apps. Bad developers make bad software regardless of language. One of the main things that I always struggled with was the IDE of java. Buggy, slow and overly complicated. I saddens me profoundly that java lost its "je ne sais quoi"
- kaba0 5y agoWhich IDE do you mean? Also, fortunately java really doesn’t have to be written in EnterpriseTM way, hell, the language designers actually agree on this one not making properties and the like native, but instead choosing records.
- cableshaft 5y agoYeah, I used to make some simple games for Java, like for J2ME, and for that it was a pretty good experience. But then I had to use enterprise Java for work and while I could use it, it was such an overcomplicated mess I stopped wanting to use it. I much prefer C#/.Net.
- mikro2nd 5y agoEnterprise Java was almost entirely an IBM creation. IBM had a whole bunch of code that had no real path to money (San Francisco framework with roots back to Taligent). Sun was headed into a firefight with MS; they knew it and knew that they didn't have the resources to go it alone: Sun needed a Gorilla partner. And so a deal was struck and the world was lumbered with the dumpster-fire that was J2EE, against which Spring Framework was a logical (maybe even sensible at the time) reaction but which ended up becoming it's very own brand of behemothic monster.
- sosodev 5y agoLately I've been working on improving the performance of an open-source HD graphics plugin for the 21 year old Java game oldschool runescape. I have to say it's completely amazing what this ancient Java code has achieved. Reflection allowed the community to build the client they wanted without needing the company to open source the vanilla client and it runs natively on Windows, Linux, and Mac (Intel and M1). It's also ridiculously fast considering how many layers of abstraction we have piled on top of one another. The only thing that sucks is the way parallelism/concurrency works. It's clunky, race conditions are common and hard to manage, there's a ton of overhead, etc.
- geophile 5y agoThis article seems quite off. First, it conflates browser and desktop. Yes, applets died an early and deserved death. That is different from what happened with desktop apps. A univeral GUI (e.g. Swing) was wrong-headed. I don't actually know what happened after people moved away from Swing. But even in the time range TFA discusses, Intellij IDEA, an IDE written in Java, was a success. It has always been multi-platform, and never had worse than acceptable performance in my experience. It has grown into a large suite of products, and I think it is widely considered to be the best IDE, for pretty much any language you can name, by a wide margin. Java has become the new COBOL -- the language for business applications, which means backend development. But the continuing success and improvement, and broadening of the JetBrains products pretty much demolishes the argument that Java has declined and fallen on the desktop. JetBrains is an existence proof that it is a very capable platform for anyone who chooses to use it there.
- shannah78 5y agoI can't disagree with anything you say here, except the thing about "the article seems quite off". lol. This piece covers the state of the technology at that time. In the early 2000's Java was slow. I wasn't familiar with IntelliJ at that time, so can't comment on their performance then. I wouldn't expect it to be dramatically better than other Java apps on the market at that time. Moore's law has steadily changed the landscape. So have improvements in JIT technology.
- jasode 5y ago> the JetBrains products pretty much demolishes the argument that Java has declined and fallen on the desktop. JetBrains is an existence proof that it is a very capable platform Your counterpoint doesn't apply to the article because the author's use of "decline & fall" is about market share and dev mindshare and not about any declining technical capabilities. (Notice that the author already agreed with you about Java's capable platform when he wrote: "Despite the ominous tone of this article’s title, I believe that Java is a compelling platform for modern desktop applications.") Jetbrains releasing new products doesn't change the fact Java lost popularity as a tool for desktop apps in comparison to its 1995 hype. Even during Java's late 1990s peak hype cycle, its usage for desktop apps was never adopted by programmers to the same degree as Electron/Javascript is today.
- Tommabeeng 5y agoI've made a few desktop apps in https://github.com/cljfx/cljfx https://github.com/cljfx/cljfx (e.g., https://www.chronos-desk.com/ https://www.chronos-desk.com/), and cljfx (JavaFX + Clojure) is amazing and makes for rapid development, not to mention fun. I'm keeping an eye on https://github.com/HumbleUI/HumbleUI https://github.com/HumbleUI/HumbleUI, which promises to be a step up.
- shannah78 5y agoNeat. I hadn't heard of either of those before (though I'm not a Clojure developer). Thanks for sharing.
- thrashh 5y agoIMO the real reason why Java never took off on the desktop is because making a cross platform Java app is pretty easy but distributing a cross Java platform app is super hard. There’s all these situations that you have to account for, there’s no de facto way of doing anything, and you’re basically on your own finding a solution that fits your app. On top of that, you have to distribute the JVM and licensing for that used to not be that clear cut. Literally the only obstacle to any language being on the desktop is the lack of someone creating a reliable, well-supported, cross platform, and easily licensed distribution method for that language.
- shannah78 5y ago100% agree. The "distribution" step has always taken way more time than I expected. And, I almost always had to compromise on certain platforms just because it couldn't get the square peg in to the round hole. The goal of jDeploy is to sand off as many of these rough edges as possible to make cross-platform distribution as easy as cross-platform development.
- leftbit 5y agoNow we've got jlink to bundle your application with the neccessary runtime modules into one custom runtime image... a bit late to the game, but still...
- antihero 5y agoI think Java had a bad reputation on desktop for a long time. Every application I remember using back in the day was extremely sluggish, felt like a skinwalker with regards to UI, and hogged memory.
- perbu 5y agoFWIW; I use the Jetbrains suite every day and I don't have a problem with it at all. Compared to, say, VS Code, I think it is pretty snappy stuff.
- antihero 5y agoI do love their IDEs though would point to them as being the exception not the rule.
- jasonfarnon 5y agoWasn't that bittorrent client early mid-2000s with the blue frog logo written in Java? I think I remember the author back then saying something like, "it's just a project I started to try out [some new java gui library]". I don't seem to remember speed issues using it.
- TN1ck 5y agoYou mean Vuze (back then it was called Azureus). https://en.m.wikipedia.org/wiki/Vuze https://en.m.wikipedia.org/wiki/Vuze
- janaagaard 5y ago> That said, we’re roughly circling around the year 2005, which, arguably was a turning point for Java on the desktop. Before 2005, there are lots of questions and answers in online forums about Java desktop technologies like Swing, Cocoa bridge, etc…. After 2005, there really isn’t much. What happened in the years leading up to 2005, or perhaps in 2005 specifically that caused this blackout? Where did all of the Java desktop developers go? Likely many of them moved to the server-side, and the ones who stayed on the client likely shifted their attention to the web, or to native development. Could it be the release of Gmail (2004) and Google Maps (2005) showing that you could actually make really great apps written in HTML and JavaScript? For me, these two webapps were turning points in how the web was looked at. As I remember it, things didn't really take off until frameworks like AngularJS were released around 2010.
- danans 5y ago> Could it be the release of Gmail (2004) and Google Maps (2005) showing that you could actually make really great apps written in HTML and JavaScript? For the mass consumer market, these apps definitely demonstrated what was possible with web-technologies. Ironically, Google Maps' dataset is curated in no small part by a powerful Java-based desktop app called Atlas, which was presented at Google I/O 2013: https://youtu.be/FsbLEtS0uls?t=443 https://youtu.be/FsbLEtS0uls?t=443 Perhaps today it would be created with web based technologies, but at this point, it's so powerful that it's doubtful it will ever be ported. I suspect there are a lot of powerful internal tools like that across many industries.
- grandinj 5y agoThe company I work for is happily delivering Java Swing desktop apps every day. Works great, easy to debug, tons of open-source components to plug in when we need, sufficiently performant, thoroughly battle tested. And these are medium update rate apps, not games, but not static forms either.
- toolslive 5y agoA Steve Jobs quote: "We want to bring Java back to the desktop in a really big way. I'm here today to personally tell you we are working hard to make Mac the best Java delivery vehicle on the planet. The biggest thing we are doing is we are going to bundle Java 2 SE into every single copy of Mac OS X the upcoming Macintosh operating system that we ship later on this year." Apparently, he changed his mind around OSX 10.5 and just removed it.
- thought_alarm 5y agoApple went all in on Java, but the developers didn't follow. The unusual syntax of Objective-C was always seen as a hinderance to OpenStep/Cocoa adoption, and Java was seen as the solution to that problem. But Java wasn't a perfect fit for AppKit development, and once developers wrapped their heads around Objective-C most of them stuck with it rather than deal with Java/Cocoa idiosyncrasies. With few developers, the Java/Cocoa bridge died.
- shannah78 5y agoI never really understood why, but I can guess. Could have been political/strategic, to try to force developers onto Objective-C. Or his keen attention to detail might have just bristled at some of the performance an UI issues that many of the Java apps had at the time.
- lacker 5y agoWhat happened in the years leading up to 2005, or perhaps in 2005 specifically that caused this blackout? Where did all of the Java desktop developers go? Before 2004, there was a much wider perception that web applications were fundamentally limited by their latency, and if you wanted a really rich, interactive user experience, like Winamp or Outlook, you had to make a desktop application. Then Gmail launched in 2004 and Google Maps launched in 2005. At that point, if you wanted to make a web-enabled experience with a high-quality user interface, it became more and more clear that you should build the client side in HTML + JavaScript and the server side in whatever you wanted, possibly Java.
- shannah78 5y agoThat sounds about right to me. AJAX - or more broadly, what we call HTML5 could have been the gamechanger.
- jaywalk 5y agoWith the entire concept of AJAX, ironically enough, being developed by Microsoft to power Outlook Web Access.
- thrower123 5y agoMy recollection is that nobody really had wifi or cable internet before about 2005. Webapps over dialup was a complete non-starter, so you had to have desktop apps.
- dreamcompiler 5y agoGoogle Maps was the first widespread use of Ajax outside Microsoft, and its near-realtime interactivity blew people away. Prior to that, few developers believed this level of interactivity was possible. After Google Maps, everybody learned Ajax and a thousand interactive flowers bloomed.
- throw7 5y agoThe issue with java was users don't care about write once/run anywhere. They care about the program running perfectly on their OS of choice i.e. the java program better look and perform just like a native program (and who can blame them?!). I run tuxguitar once in awhile and it still gets multiple monitors wrong which makes reading music sheets awful by default. (the "fix" is to hard code a resolution in a startup config file which is awful ux).
- panick21_ 5y agoI don't think so. In reality people don't care about native feel, they care about it looking good, working well and doing what they want.
- ihateolives 5y agoYep, I have loads of stuff running atm and most native looking thing on my Windows desktop are Notepad++ and FreeCommander. VScode - no, Intellij IDEA - no, any of the chat apps - no, Firefox - no, Lightroom - no. Does it bother me - also no. Native look has lost its meaning long time ago.
- pkolaczk 5y agoSure, the problem is - Java apps did neither. Looking good? The default Swing metal theme was truly awful. It was possible to switch to Windows-like theme, but it was even more awful - it had plenty of visual glitches and things misplaced by a few pixels it couldn't even use the native file selector window. Working well? Startup times and performance was terrible compared to native apps, and memory usage is still abysmal. And you got occasional GC pauses even in well optimised apps. I still sometimes run into occasional lags in Idea, even though Jetbrains did a lot of great work to polish the user experience. Doing what they want? That depends on the programmer, but, besides developer utilities like IDEs, I can't think of a Java app that didn't have a better looking and more polished native competition.
- panick21_ 5y agoI didn't claim they did ...
- bullen 5y agoMany things you don't know are Java are and they are VERY widely used. Java simply wont go away because it works. For serverside it's a nobrainer, but also for client if you have a niche consumer base. Average joes don't understand the overhead of writing native applications and they are paying for it without knowing. Here is my only contribution to the "desktop" Java eco system: http://move.rupy.se/file/logic.html http://move.rupy.se/file/logic.html It has worked flawlessly on Windows, Linux and Macs for over 15 years.
- armchairhacker 5y agoJava is an amazing platform and language. If not Java itself then Kotlin and the JVM. I think it’s underrated and I wish people would bring back web and mobile support so it can be truly cross-platform.
- Cthulhu_ 5y agoWeb support... I think there may be WASM compilers for Java, but there's still going to be a lot of overhead. Mobile, there's Android... or did you not realize that's Java?
- kaba0 5y agoThere is TeaVM which runs java byte code as efficient javascript or wasm. But Google also has j2cl which can compile java to very efficient javascript code. As for android, well, let’s just say that android java is not real java.
- favorited 5y ago> I recall a quote from Steve Jobs around that time that "Java is a giant ball and chain" The story I've heard from people who were in the room is slightly different. Jobs acknowledged that Java had its place on the server, but on the client-side: "Java is a big fat pig."
- leftbit 5y agoI've been coding Java since 1.2, mainly UI. 20 years we built a really complex control system visualizing thousands of graphical states on six monitors on a Pentium, quietly ticking away at 20% CPU usage... all in Swing. Which I still find very impressive. Swing suffered from two central weaknesses: the tutorials provided by Oracle were... often insufficient. And you could pick up some bad habits by following them. And then there were the UI builders where anybody could draw up something mediocre. Real strength were the lightweight components where you could about change everything in your Look&Feel. Hexagonal radiobuttons? No problem. Want the drop down button of that combobox a bit larger? There you go. SWT... wouldn't really categorize that as an UI toolkit. SWT is mainly driven by eclipse, not developed independently. All controls commonly used by eclipse run reasonably well. Using anything else, especially cross platform is risky. 2D graphics is especially slow. So it's only a reasonable choice if you want to build something that looks and behaves like eclipse. There's some styling of components via CSS, but it's not complete...
- shannah78 5y ago"Swing suffered from two central weaknesses: the tutorials provided by Oracle were... often insufficient. And you could pick up some bad habits by following them. And then there were the UI builders where anybody could draw up something mediocre." Agreed. Also, the IDEs would typically give you too much rope - enough for a novice to hang himself. When you create a new project with Xcode, you get a default project with all of the essentials for a native app. The menus, a window, an "About" window. Etc. In most java IDEs you get an empty main() method. Making an app that feels like a first-class citizen requires a lot of work and attention to detail.
- leftbit 5y agoOh, yes, the details are critical. Once inherited a 2D graphic editor... so slow it was totally useless. After tinkering a bit I noticed coordinates were sometimes 'long', sometimes 'Long'... gazillions of automatic boxing and unboxing operations resulted in a severe performance penalty. But the original developer didn't figure this out, tried to fix the problem by adding some multithreading on top... and of course botching it. Introduced some sensible data types, got rid of the multithreading and it really got smooth...
- jlward4th 5y agoI'm definitely biased but I think Kotlin for Desktop apps (https://www.jetbrains.com/lp/compose-desktop/ https://www.jetbrains.com/lp/compose-desktop/) will take a lot of the energy in this space.
- IYasha 5y agoIn 2020: Admin: Wow, just look at our new 4 CPU server with 1TB super-fast DDR4 RAM! Its capacity is almost infini- Java: Pf-f-f-f! (9_9) Jokes aside, the only thing I remember about java on desktop is constantly downloading and installing frmeworks. And lags, lots of lags. Terrible lags. And flickering windows.
- hedora 5y agoJava's so efficient, it makes my laptop battery meter run backwards! Sadly, it only does that when the machine is trying to charge.
- rr808 5y agoBasically everything on the desktop is dying. We still have a heavy C# gui and everyone thinks we're weird. We're due to be replaced with an SPA - good luck with that.
- marcodiego 5y agoIIRC, Java had difficulties during the late 90's and early 2000's for advanced desktop applications mostly because of performance. As time passed, although jvm implementation's performance improved, so did C++, multi-platform frameworks and other programming languages. Other phenomenons also occurred: Linux continued with a very small fraction and the desktop effectively turned into a duopoly of windows and mac and new developers shifted to web and mobile. You can clearly see that there are very few examples of new desktop packages that thrived recently, specially compared to mobile and web equivalents. The development of the described scenario strongly devalued java's most advertised advantage, which was portability.
- rileymat2 5y agoI am not sure that was the problem, The way I recall it: The apps were typically pretty ugly and Windows had a near monopoly at the time. If either of those were not true, it might have fared better.
- marcodiego 5y agoSwing default appearance may look alien on windows, but I remember a demonstration from a friend of mine where he turned it to native appearance with a few clicks. You can see some successful java desktop apps with native UI, one I remember is utorrent. Also, windows users are very used, specially at the time, to inconsistent appearance. So, I don't think default appearance on windows had anything to do with java's decline there.
- kaba0 5y agoHell, windows has like 6 actually native looks at the same time still running next to each other, often with duplicated functionality..
- userbinator 5y agouTorrent is definitely NOT Java --- the binary itself is a few orders of magnitude smaller than a JVM! You might be thinking of Azureus (since renamed Vuze)?
- rowls66 5y agoAs I see it, Java succeeded where it was needed, and in the mid-late 90's, that was on the server. When the web emerged, there was no well established development environment for server based applications. The tools for doing much beyond static web pages were pretty limited. Java and a whole bunch of Java based tools emerged to fill this need, and satisfy the needs of corporate customer for intranet solutions. On the desktop, Microsoft and C++ were already well established. In the browser, Sun did not offer a browser of their own, so Java depended on support from Netscape, Microsoft and eventually Google. Those companies all had their own technologies for browser development tools, and never tried very hard to support Java. Also Java was a little too much for many 90's era PC's connecting to the internet over dial-up connections, so it was slow.
- pavlov 5y agoThe main problems with Java on the desktop were: - Obviously non-native look and feel. For many years Java apps didn't even use the system font. At a time when everything was on Windows and its UI was actually reasonably coherent, Java apps stood out as out of place and clunky. - Deployment. Each user needed to first install the Java runtime from Sun. This was a deliberate strategy by Sun to get the runtime in place on as many desktops as possible, but it failed colossally. It would have been better to just bundle the whole thing with each app, as Electron does today.
- marcodiego 5y ago> At a time when everything was on Windows and its UI was actually reasonably coherent Hmm... no. Even ms software on windows had different appearance and behavior. Actually, being a mostly proprietary ecosystem, apps tried to be different from one another to get attention. An xp machine running winamp, corel draw, ms office, windows messenger and internet explorer had 5 different themed apps at the same time and it was common at the time; it was the rule. Consistency on windows was always a problem.
- digisign 5y agoThe article ends right where my knowledge drops off, so I'm waiting for part two. The piece did remind me of the poor Java performance at the turn of the century. If you thought it was bad on a Sun or Wintel, you would have really enjoyed the SGI Irix port I tried to make use of at the time. It was even more unoptimized than the common platforms. :D I remember typing into a Swing? text field and the keystrokes not registering for a second or three, basically unusable. Made me stick with AWT for a chat client/server I'd created for learning purposes, which was not quite so bad. Shortly after that I found Python, which was a breath of fresh air at the time and didn't write another line of Java for about 15 years, never again for Perl.
- ramesh31 5y agoJava is a great language. But it failed to become the universal "write-once" VM that everyone dreamed of in the 90's. Instead, the web browser did that. So there's really no reason to bother with native Java development anymore when browsers can do everything.
- Supermancho 5y agoJava is a great idea, but the language is miserable. From the nullable concerns to the failed object model to the horrific runtime on runtime Spring (DI) monstrosity. Testing in Java is painful enough to signal that Java has a kong way to go. Statics ensure you can have pure functions but Java testing all but eschews their usage without complex setups. Booting up Spring in tests just to run methods that depend on opaque interactions is considered cursory. A generix UI/UX (OS) model is the most complex and difficult type of software that exists. Games are hard, but not in the sane league. There is no Java OS because the language is insufficient, which is to say, it is suitable enoigh for other things, but I wouldnt say its great.
- ldargin 5y agoJava's demise on Windows was sealed in 1997 when Sun sued Microsoft. Java remained cross-platform in a technical sense, but couldn't achieve much success on the desktop afterwards.
- anthony88 5y agoI've been developing Java desktop app for more than 25 years. I think the problem of the early days was the start up time of Java and the fact that reflection and (de)serialization was causing too much security problems for Applets. Once the applications started, I don't remember them being slow. Hotjava (1995), JDK applets (1996) or Forte (2001). The fact that it doesn't look exactly like the OS is not I think a big problem for users. Applications like Google Chrome, Discord and Electron apps don't look native and nobody complains about it.
- lildata 5y agoBottom line today if you can't deliver your app on the web only, you will most likely end up at best with: - An Electron (Desktop) app - An React Native Mobile app (that needs to be delivered through both Google & Apple proprietary channels) Whether you loved or hated Java the language, it is hard to deny we ended up in a terrible place: - We lost all freedom on mobile - We rely way too much on Blink & Webkit - We traded Java for Javascript - It's still relatively slow - We haven't fixed the security problem on desktop - Devs now have to manage a lot more technologies & moving parts
- commandlinefan 5y agoIn a way, desktop apps themselves declined - right now, besides the browser I'm using, I only have an IDE and an email client open (and I'm a bit of an oddball for not using the webmail client as well). Most of the corporate desktop apps that would have been written in Java in the 90's have long since been migrated to the web.
- ajuc 5y agoIn late 00s I've worked on a pretty big system using C++ and Qt3 for desktop ui. For various reasons we moved to Java SWT. It was so much worse it's not even funny. Part of it was the absurdly overengineered architecture we used. We moved from 2-layer PL/SQL + C++ app to 3-layer PL/SQL + J2EE + SWT but on SWT there were like 5 additional layers and most of the code was XML configuration on the UI side. That's not Java fault. But part of it was just SWT API being so much worse than Qt. Signals and slots make observers and listeners look like ancient technology. The graphical design tools were so much better in Qt. The layouts in SWT sucked. Everything was worse and took more work.
- mikro2nd 5y agoSWT never was a part of Java. It was (as I recall) an IBM/Eclipse invention.
- ModernMech 5y agoWTF is the java mascot suppose to be. I've never understood it. Is it like some sort of modern art champion? Is it ironic? I have no idea, I just don't get it.
- mrfusion 5y agoWhat other runtime needs more updates than an OS? Python never asks for updates and breaks my workflow.
- democracy 5y agoYeah, webstart was an unusable shit-show. I remember writing a first SWT app (with embedded JRE) ~2004 and it looked nice and worked fast enough. I think if Sun/Oracle didn't legally ban JRE trimming, added offical Swing browser widget and added a free cross-platform good-looking and developer/user-friendly installer - the story would've been different.
- hn_throwaway_99 5y agoThe biggest reason for the decline and fall of Java on the desktop is that better alternatives came up that succeeded. Somewhat ironic that Java on the desktop failed, but JavaScript has been wildly successful (despite the handwringing about Electron on HN).
- thangalin 5y agoMy desktop text editor[1] is written using JavaFX and leans on Warp Packer[2] to create installer-free, multi-platform executable binaries (without jlink). A user contributed a new dark theme[3], which blends nicely with the desktop. The JavaFX-based WebView (an HTML rendering component) is lauded, but has no direct API to control the scroll position and is itself a memory hog. Scrolling must be handled through JavaScript, and that indirection is as unwieldy as you can probably imagine. FlyingSaucer is a workable alternative to WebView, but comes with numerous technical issues that rear themselves when embedding a Swing widget inside a JavaFX application---as I discovered during development. Were I to start from scratch, I would definitely seek out alternative cross-platform programming languages for desktop application development. The JavaFX event-based model is top-notch, but there are too many technical gremlins to make implementation a smooth ride. (Such as improper handling of Alt+Tab, which leaves focus on the menu bar when returning to the application[4].) [1]: https://github.com/DaveJarvis/keenwrite https://github.com/DaveJarvis/keenwrite [2]: https://github.com/dgiagio/warp https://github.com/dgiagio/warp [3]: https://i.ibb.co/QpqS0NS/screenshot.png https://i.ibb.co/QpqS0NS/screenshot.png [4]: https://stackoverflow.com/q/65765656/59087 https://stackoverflow.com/q/65765656/59087
- joshmarinacci 5y agoWow, someone is still using Flying Saucer? That brings back such memories. I'm glad to know it helped some people.
- throw_m239339 5y agoIs there any data that confirms the decline of Java on the desktop?
- wly_cdgr 5y agoNice to see that Java works pretty well for indie games these days -it's a more pleasant language & ecosystem to work with than C++, and you don't need to deal with Unity's bullshit. Slay The Spire and Mindustry were written in it.
- iamcreasy 5y agoI heard Slay the Spire was also ported to Nintendo Switch. Any idea how they did it?
- wly_cdgr 5y agoNope, I dunno. If I was them I would have just developed the game in Defold or GMS2, tbh, since both of those engines can target mobile and Switch as well as desktop. I would be curious to know why they chose not to do that.
- bouncycastle 5y agoNot just Java, there's been a decline of desktop apps in general. It's kind of ironic, because most of our apps are now running in an even slower language with "Java" in the name (JavaScript)
- Tommabeeng 5y agoI find this such a shame. I think this reflects an increasingly consumer versus producer aspect of culture. I find that desktop apps support and foster creativity, and producing readily manipulable creative artifacts - with speed. Sass/webapps/etc tend to foster consumer-oriented, indeed mobile, usage, creation and creative operations are often subtly high-latency and subsequently & so are tacitly discouraged while consumption is encouraged. I love the pitch found in https://www.inkandswitch.com/local-first/ https://www.inkandswitch.com/local-first/, but it doesn't seem like it's resonated much in the large - so far, at least.
- bastawhiz 5y agoIt's interesting to note that probably the best selling Java application for desktop is owned and maintained by Microsoft: Minecraft. It's a testament to the technology that they still after all these years have not managed to make a definitive non-Java version that replaces the Java edition outright.
- TeaVMFan 5y agoCode signing killed Web Start for anything but big $$$ projects. And asking people to download an application and run it with full privileges is a huge barrier to entry. Contrast with the web deployment model: * Deploy with a free SSL certificate * Click Once, Run Anywhere (CORA) Luckily for Java fans, you can make great Java apps for the modern web. Tools like TeaVM (and its Flavour toolkit for SPAs) make it possible. Code in Java, bind to real HTML templates, compose your app out of reusable HTML components, style with CSS. All the benefits of the modern web, with a single strongly-typed language top-to-bottom. * TeaVM: https://teavm.org https://teavm.org * Real 5-letter word app made with TeaVM/Flavour: https://frequal.com/wordii/ https://frequal.com/wordii/ * Migration Guide from Swing to TeaVM: https://frequal.com/TeaVM/migration/MigratingFromSwingToTeaVm.html https://frequal.com/TeaVM/migration/MigratingFromSwingToTeaV... * Java Magazine article on TeaVM: https://blogs.oracle.com/javamagazine/post/java-in-the-browser-with-teavm https://blogs.oracle.com/javamagazine/post/java-in-the-brows...
- jillesvangurp 5y agoCross platform used to mean, windows, mac, and linux. These days it is web, ios, android, windows, mac, and linux. In that order. And that's before you consider TVs, cars, and other equipment where apps are also relevant. These days web is the new cross platform technology. It works everywhere. And mobile is where people focus for native apps. Windows is an afterthought at best. Mac even more. And Linux oddly is now a main source of open source applications that also work on windows and mac. But it's not a big market. Unless you consider Android a linux distribution. In that case it's absolutely huge. And Java/Kotlin are the languages of choice on that platform. But they are compiled to native ahead of time so don't require a JVM. Otherwise, Applet support for browsers died a long time ago so that blocked Java from being useful on the web. The JVM as distributed by Oracle (and other openjdk packagers) only really covers the traditional three desktop platforms. And it's not really native there and kind of heavy weight. That limits the appeal. Java is not really that cross platform anymore. Sun failed to anticipate and survive the move to smartphones. Up until then J2ME was a thing. These days almost no phone comes with Java support. That's the real reason Java usage on the desktop declined. It did not cover new platforms from about 2007 onwards. Despite this there's a new JVM framework on the block: compose desktop. It uses skia (like flutter) and there's a mobile variant supported by Google called jetpack compose. And a web variant called compose web. IOS support is missing. But that looks like it might be addressed at some point.
- ihateolives 5y ago> And that's before you consider TVs, cars, and other equipment where apps are also relevant. Are TV apps really relevant anymore? Chromecast and other similar technologies killed TV apps for me for good.
- joshmarinacci 5y agoAs a member of the Swing/JavaFX/Netbeans teams during the 2005-2010 period (I left the day before Oracle took over), I can tell you that this story is broadly correct, but with many missing subtleties. At the time we thought of Silverlight and Flash and Adobe Air as our mortal enemies. We were all wrong. After AJAX and HTML Canvas the web essentially killed desktop app development. All of those internal corporate apps (which were 95% of the desktop Java apps written) migrated to the web. We certainly all made mistakes and could have done some things differently (I begged to write the Applet plugin from scratch), but in the end none of those changes would have mattered. The future of desktop was the web.
- jcelerier 5y agoYet it's 2022 and I literally don't use web-based desktop apps for my day-to-day work ? Likewise, the SteamDeck just released with a desktop UI built entirely in Qt? I feel we are living in alternate realities
- poisonborz 5y agoHow does your statement contradict anything? What you use is entirely anecdotical, and the Deck is a niche gaming platform. Except for niche usages like utilities and the creative industry, classical desktop apps are dead for both consumer and enterprise users.
- jcelerier 5y ago> Except for niche usages like utilities and the creative industry, classical desktop apps are dead for both consumer and enterprise users. I don't even understand what you mean by "niche usages like utilities". Utilities aren't "niche". And I literally don't know anyone who uses a computer and does not use some form of "creative" / authoring apps. Some drawing apps, some music production or maybe just the occasional recording with Audacity, trying to make games, editing ebooks with Calibre, etc. That's what human beings use computers for (and we're here to do things for human beings before anything).
- 5y ago
- pier25 5y agoThe only Java desktop app I use regularly is Bitwig, a DAW for music production. At least the UI is written in Java and it's fantastic.
- jasfi 5y agoFlutter is what replaced it. I'm working on server-based API for Flutter that comes with an easy-to-use SDK: https://nexusdev.tools/ https://nexusdev.tools/
- nvmletsdoit 5y ago"There was always some guy in the back-row of the class with a trench coat and messy beard who let his feelings about the superiority of C++ be known." Reletable
- cryptos 5y agoMaybe the story is not finished yet. New approaches like JetBrain's Compose (https://www.jetbrains.com/de-de/lp/compose-mpp/ https://www.jetbrains.com/de-de/lp/compose-mpp/) with a React inspired programming model might bring some new interest to the platform. Then there is a Java binding library for Skia (https://github.com/JetBrains/skija https://github.com/JetBrains/skija), and JavaFX is also alive and high quality. As everyone is used to fat Electron apps now, Java applications (especially compiled and packed with new JDK features) might be refreshing.
- nvmletsdoit 5y agoA little off topic -> I was reading the comments about learning to code through Java. A lot of people are against C/C++ and majority of schools uses Java/Python nowdays. Ofc the language at the end doesn't really matters, but I am conviced ( mostly because I only embrace MY learning experience ) that using a language like C helps you get into the programming mindset better. I mean, you don't need to understand what a smart pointer is, but once you seen that the object you have created in your own implementation of a vector got copied over and over, you will think twice every time you write a function with a return statement in every language for the rest of your life.
- jokethrowaway 5y agoJava was really the precursor of electron. As someone who developed a few Java desktop apps and many more Qt + C++ ones, the difference in performance was huge (memory and startup time).
- deleted 5y ago[deleted]