4 ms·
I'm not so much arguing as I am simply asking... what would you recommend instead for cross-platform desktop app development? * GTK and even Qt are criticized
by StevePerkins 11y ago
I'm not so much arguing as I am simply asking... what would you recommend instead for cross-platform desktop app development?
* GTK and even Qt are criticized for looking non-native or even ugly, and for being limited in their available components.
* Going the Atom route, of embedding Chrome and writing your app in HTML and JavaScript, is daft. The languages are poorly suited for the domain, installer bundles are fat and bloated, and the results are so slow and sluggish that they make Java apps look like assembly in comparison.
* Writing native versions for each target platform multiples the development effort, and the number of issues.
Java isn't perfect (nothing is), but it really does stand up well against the likewise-imperfect alternatives. If you use modern JavaFX, or customize Swing as I believe JetBrains has done, then users really aren't even aware that they're running a Java application (you just admitted to being unaware that IntelliJ was written in Java). Nothing touches Java for ease of cross-platform development, and packaging and deployment is comparatively simple.
If your Java app performs sluggishly, then it probably isn't because of the UI anyway. You're seriously citing a huge IDE, Lotus Notes, and freaking SAP as benchmarks?
- mschuster91 11y ago> what would you recommend instead for cross-platform desktop app development? Write a web app and distribute said web app with browser runtimes. Either Chromium or Firefox. JavaScript might be a PITA, but you get a highly performant layout/UI engine, styling and portability for free. Downside is that for stuff not supported in JS, like filesystem I/O or raw socket networking, you'll need either custom bindings or a NodeJS/PHP/... proxy service, but that's imho acceptable. > If your Java app performs sluggishly, then it probably isn't because of the UI anyway. You're seriously citing a huge IDE, Lotus Notes, and freaking SAP as benchmarks? These are widely used Java apps, developed by (in case of Notes and SAP) multi-billion dollar companies, and if even these massive resources cannot get speedy apps done, I might think it's the language/runtime environment at fault here.
- StevePerkins 11y agoI addressed your idea specifically in the parent comment. The most prominent webapp-on-the-desktop example that I can think of is the Atom text editor. It runs like crap, and its installer is roughly 20 TIMES fatter than Notepad++ or Vim's. You could ship the Java-based "jEdit" application, along with a full embedded JVM, and still be 25% lighter. And the desktop app is written in JavaScript. If that sounds like a great idea, then there's really nothing else to talk about from here.
- dsacco 11y agoI find C#/.NET and Xamarin to be comparable for developing cross-platform desktop applications. This allows a single codebase that interacts with native libraries and APIs for each major operating system as well as a native looking GUI for each.
- StevePerkins 11y agoI actually have a lot of respect for C#, but isn't their cross-platform desktop story basically just GTK?
- purerandomness 11y agoCan you name any desktop app written in C#/.NET or Xamarin that looks decent, on Linux and/or OS X?