5 ms·
You mentioned "distribute software" but did not consider Electron for Node. You can make an Electron app with JavaScript and ship the binary (or installer) on
by paradite 3y ago
You mentioned "distribute software" but did not consider Electron for Node.
You can make an Electron app with JavaScript and ship the binary (or installer) on any platform. It's not a single executable file, but the user experience is the same.
I don't think there's an equivalent in Go that allows you build a desktop app like that (with frontend and backend both written in Go)?
- synergy20 3y agoelectronjs is probably the best cross platform desktops GUI,just a bit heavy.I actually use wxwidgets for GUI desktop apps.
- troupo 3y agoThe best cross platform desktop GUI is Qt.
- synergy20 3y agowhose license model is a mess unless your GUI is totally open source.
- wtetzner 3y agoIsn't it just LGPL? Why is that a "mess"?
- synergy20 3y agoI'm not a lawyer, I wish it's as simple as "it's just LGPL", it's not. Otherwise Qt has already conquered the desktop GUI world, it did not for a reason: the license mess.
- troupo 3y agoIt did conquer (-ish) the desktop GUI world, for a while: quite a lot of software was written in it. And then Electron happened.
- palata 3y ago> And then Electron happened. Which is worse for users, but better for developer productivity (probably nicer for developers too: C++ is not exactly fun). I am still hoping that JVM Desktop apps come back at some point, maybe with Kotlin Multiplatform?
- caskstrength 3y ago> You mentioned "distribute software" but did not consider Electron for Node. Sorry for the snark, but users will undoubtedly be very grateful to them for not considering Electron.
- paradite 3y agoI'm not so sure if the users of VS Code, Discord, Slack, etc would agree. Yes it's bulky and sometimes slow, but it offers a lot of features and allow developers to ship features and updates really fast, while only needing one codebase for all platform.
- coldtea 3y agoI'm a user of VS Code and Slack and I'd be very happy if they didn't use Electron. >Yes it's bulky and sometimes slow, but it offers a lot of features and allow developers to ship features and updates really fast, while only needing one codebase for all platform. Like Slack having 1000x the memory and CPU use for 1/10th of the features a 200K app like ICQ used to have 25 years ago?
- forty 3y agoI feel vscode is quite good at hiding the fact it's not native, and felt quite snappy when I used it. Slack on the other hand feels painful slow and heavy (and very sensitive to network events like change of network or short disconnections, while native apps are generally much better add handling such glitches for some reasons)
- nirvdrum 3y agoI can't see users caring about it all being one single codebase and I don't think that they should. Every cross-platform development tool like this means awkward, non-native UIs. Maybe there's something to new feature development. But, I suspect the big players could be a little less profitable and deliver a better experience for their end users. I've used Electron as a developer, too. While it may have been fast & easy at one time, I think that argument is losing merit. Electron had a lot of security holes and patching them has made common tasks harder. Security with Electron is a problem in general given its massive surface area. Users definitely notice the performance issues. It's certainly not just devs complaining about abstract issues. Yes, people use these tools, but that's mostly out of necessity, not preference. Moreover, big players like VS Code have had to write swathes of the app in C++ for performance reasons. I look forward to a return to optimizing for the user, not developer velocity. There will likely always be attempts at cross-platform toolkits and there may be a good solution in that space. I hope Electron isn't the best we can do.
- mike_hearn 3y agoYou can do that with Java too. The JDK has jpackage, but if you want something better than I'm willing to sell that to you (or give it for free, if you're open source): https://conveyor.hydraulic.dev/ https://conveyor.hydraulic.dev/ It can be used to ship servers, we use it that way for our own servers. It sets up systemd so you don't need to use Docker. But where it shines is desktop apps. Windows users get a little 400kb EXE that installs/updates your app and then immediately starts it without user interaction required, so it's effectively a single EXE. Mac users get a bundle. Linux, well, Linux users get a deb that sets up the app+its apt repo, or a tarball. Maybe in future a FlatPak or Snap or something else. It knows how to bundle and minimize a JDK along with your app as part of the release process. Works great for desktop apps. It's for Electron too, same deal, easier than Forge in my humble and very biased opinion.
- synergy20 3y agoJava GUI is less appealing though
- dzonga 3y agobut it would still be bettter and more performant than electron based apps. a little memory heavy, but no more than electron apps while being less janky
- synergy20 3y agoFor me I use neither, I actually picked wxWidgets after all those desktop GUI troubles over the years, not ideal, but it's the best I found for myself.
- mike_hearn 3y agoThat was true in 2005. Modern Java UI can look pretty great. Two examples: 1. Start IntelliJ and check it out. It's Swing but it feels modern and fresh. 2. Go to https://www.jfx-central.com/ https://www.jfx-central.com/ ... JavaFX was introduced years ago to add far better support for modern visuals. JFX Central is a website written with JavaFX itself - it runs server side and streams drawing instructions to the client (implemented using a mix of divs, svg tags and css). You can do this because JavaFX implements the CSS2 drawing model. The website looks modern, like any slick website would today, but you can also download and run it locally. It uses Conveyor to do that in fact. The desktop version looks exactly the same as the web version.