6 ms·
> why not going for a JVM-based technology? Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be download
by bastawhiz 3y ago
> why not going for a JVM-based technology?
Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Qt and other frameworks work pretty well (with their own flaws) but I'd simply never even consider the JVM as a viable option for desktop software. The last JVM app I installed was probably Minecraft in 2012.
- dijit 3y agoexception to the rule, and should be popular on this site: IntelliJ IDEA (and derivatives) are JVM based.
- lopatin 3y agoI use IntelliJ, which is a Java + Swing app I think.
- X6S1x6Okd1st 3y agoInitial release was 2001
- lopatin 3y agoLooks like Java is working pretty well for them then.
- deleted 3y ago[deleted]
- pzo 3y agoOk the other hand jetbrains is developing new IDE - Fleet, that’s supposed to compete with VSCode - not sure if it’s written using JVM stack for that
- evntdrvn 3y agohttps://blog.jetbrains.com/fleet/2022/01/fleet-below-deck-part-i-architecture-overview/ https://blog.jetbrains.com/fleet/2022/01/fleet-below-deck-pa...
- lopatin 3y agoWhile Fleet is still a JVM app at it's core, it's true that it apparently no longer uses Swing for the UI components. Instead they seem to have reinvented that wheel with their own UI component library called Noria (also JVM) and render it to the screen with Skia (a native 2D graphics library - non JVM). Pretty fun stuff. https://blog.jetbrains.com/fleet/2023/02/fleet-below-deck-part-vi-ui-with-noria/ https://blog.jetbrains.com/fleet/2023/02/fleet-below-deck-pa...
- piperswe 3y agoLibreOffice is still built on Java, that's probably the main consumer app that still is. Of course, there are developer tools like the Jetbrains IDEs still running on the JVM, but those aren't for mainstream consumers. Nowadays it can be hard to tell if something uses Java, since it's recommended to just bundle a JRE with your app so a user doesn't have to know/care about Java.
- wmf 3y agoLibreOffice has very little Java code. https://www.reddit.com/r/libreoffice/comments/6gxy82/is_libreoffice_relying_less_on_java_will_there_be/ https://www.reddit.com/r/libreoffice/comments/6gxy82/is_libr...
- chrismorgan 3y ago… and it’s all optional; has always been, I believe.
- ezst 3y agoThere are more than a few decent Java GUI apps out there, some built with swing, some with JavaFX, some with SWT, maybe we will soon see some using jetbrains compose. I would say that the developer experience isn't bad at all, but if you want to make a very complex or unique application, you will want to surround yourself with someone who knows those stacks very well (just like any other tech), the problem being that it's a dying breed. If you want to make a small to mid-scale GUI, I'd argue that you'll be better off with a java toolkit than anything web based (tooling is awesome, there are RAD tools to prototype and iterate quickly, ...). The alternative I see in this space is PyQt/Qt for Python, but it's easy to shoot yourself in the foot with it and everyone knows how terrible packaging and shipping python is.
- glowingly 3y agoFor me it's probably Ghidra or Jetbrains IDEA in 2023. Both are desktop, thought I could see the debate on whether or not developers are considered mainstream consumers. I use them on Linux and Windows, so I definitely get value out of their cross platform capabilities. I use Eclipse-based tools at work (again, I can see the debate). It seems like Samsung's Smarthings (IoT platform) used to use Groovy, but has recently migrated away. I also know you said desktop, but a weak argument could be made in favor of the (also weak) JVM connections of Android. I'd put forth that some Android usecases are basically former desktop usecases.
- MSFT_Edging 3y agoIts never fun finding the correct java version to get ghidra going on a new machine. I don't use java often enough to remember versioning differences between the official and openjdk. I never install the right one on the first try, always requires a trip to the ghidra docs. I must have gone through this 7 or 8 times in the last 5 years. Its also really rare for a desktop app written in java to look good. I'm sure its possible, but man looking at ghidra is a real pain.
- saghm 3y agoI thought openjdk is the "official" version of Java now (besides Java EE)?
- jmaker 3y agoHere’s a compilation: https://sdkman.io/jdks https://sdkman.io/jdks
- nioj 3y agoThey have recently introduced support for UI theming in version 10.3 released last month.
- friendzis 3y ago> Its also really rare for a desktop app written in java to look good. Java/JVM as platform suffers from trying to be all encompassing "second OS". Want to do time, fonts, cacerts? JVM does its own thing. Want to do UIs? Hey, there are widgets from 90s, should be good.
- mike_hearn 3y agoWe have a surprising number of customers who ship JVM desktop apps, mostly in industrial control and robotics of various kinds.
- szundi 3y agoYes we have 15k users
- bastawhiz 3y agoI'm sorry to say that you're not a mainstream consumer app with only 15k users
- lmm 3y ago> Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Does anyone actually build new desktop software for mainstream consumers these days? JVM UI is "good enough", I've seen it used for businessey tools where the point is the functionality rather than the polish (including hobby tools). Honestly it may well be the best non-electron option once you think about the whole stack; with Qt you have to either write C++ and deal with that, or use the Python bindings and deal with that.
- aardvarkr 3y ago> Does anyone actually build new desktop software for main stream consumers these days? You’re in a thread about some people that built a new piece of desktop software…
- bastawhiz 3y agoI've got Notion, Spotify, the app for my insta360, Slack, linear, Final Cut, and VS Code open right now. As best as I can tell, half are Electron and zero are JVM.
- whartung 3y agoI do Java desktop, using JavaFX. But I’m nobody. I will say that my dev cycle builds (full clean and rebuild) take about 20s, which is nice. That nets me a “runnable fat jar”. Running the packager for the platform installers takes longer on top of that, but that’s not part of my dev cycle. I dev on macOS, I have “tested” on Ubuntu and Windows, and the app works. My buttons button, cut and paste works, drag and drop (I can drag one of my generated images and drop it into, say, Word) works, I can generate PDFs via the “print to PDF” features of the platforms, including my custom fonts. I also have, like, 10 lines of code that uses JavaFX 3D — and that works. It all works, and so far, knock on wood, the “cross platform” parts are doing what they’re supposed to do. All that said, germane to the overall topic, there’s this funny little tidbit. In my app, all my bundled documentation is simply in HTML using bundled pages. And I show that in a JavaFX WebView. And WebView is built on WebKit. So in the end, if you need any HTML in your app, you bundle WebKit anyway. Of course, if you don’t, WebView is in its own module that you don’t have to ship if you don’t need it.
- DarkNova6 3y agoJetbrains does. Millions of developers are using a swing ui and don’t even know.
- jmaker 3y agoA lot of modern consumer and business oriented GUI apps run on JVMs and they look very platform native too. In finance, I’ve come across many of them. You can take a look at the upstream demo apps for Swing with FlatLaf and for JavaFX (rebranded to OpenFX). They perform nicely. I’ve been struggling with the JetBrains tools’ performance on large JVM projects but given the complexity and reindexing it’s justified, Visual Studio would simply hang indefinitely on such code bases, VS Code just doesn’t do this much. Then there’s also Kotlin Multiplatform and Jetpack Compose, and now Compose Multiplatform (desktop, mobile, web including JS and WASM). Their DSL is really amazing, truly compositional and resembling the way you do React. To me that’s the path cross-platform GUI will be taking now. On the .NET side, there’s Avalonia UI and Uno Platform as cross-platform alternatives, with Avalonia UI v11 (pending release) even doing mobile on almost the same code base.
- creshal 3y agoJavaFX/OpenFX is surprisingly decent these days, but it got suckerpunched by Oracle licensing for a long time and had a bunch of compatibility issues between releases that made upgrading painful. I probably would consider it now for a new project, but not 5-10 years ago, when dev cycles for now-popular apps would've started realistically.
- palata 3y agoI, for one, am looking forward to the evolution of stuff like Compose for Desktop. Kotlin + Compose on Android is just amazing, I wish it worked as well on Desktop. Also the JetBrains IDEs are really good IMO.