9 ms·
"Electron has lowered the barrier to developing desktop applications". Nope, I don't think so. Perhaps for web developers. For non-web developers, there are al
by gbugniot 10y ago
"Electron has lowered the barrier to developing desktop applications". Nope, I don't think so. Perhaps for web developers.
For non-web developers, there are already well-suited technologies to develop desktop applications: Swing, Qt, Cocoa, GTK, WPF/WinRT, and so on. Maybe theses technologies seem less sexy but there are here from the beginning to do that kind of job.
Please, use the right tool for the right job.
- serge2k 10y ago> Please, use the right tool for the right job. Which part of Electron makes it wrong?
- spiderfarmer 10y agoAs as webdeveloper, I am now starting to think about desktop applications, where I would have ignored the platform before. It's not at all about how sexy a technology or framework is. I just think I can do a better job in a framework that's adapted to my skillset, instead of adapting myself to a new framework.
- usaphp 10y agoWhy didn't you quote the full sentence: "Electron has lowered the barrier to developing desktop applications, making it possible for developers to build cross-platform apps using HTML, CSS, and JavaScript" I don't see anything wrong with that statement, Electron really lowered the barrier of entry by allowing using HTML, CSS and Javascript to build cross platform apps, before you had to learn a new language to make it happen (Swift, QT etc). > "Please, use the right tool for the right job." I would rather use a tool that I know and build something functional fast, than spending many months learning new language just to make my app cross platform and losing interest because of that.
- gbugniot 10y agoIt's wrong because that tends to persuade developers that there is one tool for every situation. If you build something functional fast with your favorite tool (not suited for the job), then you will probably spend many months maintaining/hacking your codebase to keep it functional and well designed.
- usaphp 10y agoIt's still better than spending many months learning new language and not building anything functional at all. I would rather build something functional fast and see if it works and has demand.
- gbugniot 10y agoIf someone spend many months learning a new language, but still can't be able to build something functional with it, I think he has a bigger problem...
- efrafa 10y agoIts more about why would you go spend few months learning something, if you can build it in few days with electron.
- fredsir 10y agoBecause you can't. An Electron app is not equal to a native app when it comes to UX and UI. Right off the bat: they require more resources to run, thus making your computer slower, a laptops battery last less on a single charge, and don't look and work like native apps thus requires the user to learn a new paradigm. So instead of you, the developer, using a couple of months to learn a new paradigm, you put that burden on your users, and end up with something that is a whole lot worse than standard native apps on Mac, Linux and Windows. If you only have 1 user, that is no hassle, but if you have 5 million users, that is a whole lot of time that a whole lot of users needs to spend collectively because you are lazy and want to ship something fast instead of shipping something great. And no, I have never tried a great Electron app. I don't think they exist.
- TeMPOraL 10y ago> If you only have 1 user, that is no hassle, but if you have 5 million users, that is a whole lot of time that a whole lot of users needs to spend collectively because you are lazy and want to ship something fast instead of shipping something great. Exactly. That's the externality a lot of software companies nowadays generate.
- svink 10y agoYou realize that maybe for someone, C++/QT isn't a new technology but HTML/CSS/JS are? Or neither are new, or both are new? The person who replied to you was right, you are making the assumption that everyone knows the web stack and knows nothing else. Electron tries to break the same barrier WebForms did but in the opposite direction. Hopefully it turns out better and doesn't result in a bunch of shitty desktop apps like WebForms resulted in a bunch of shitty web sites.
- rayiner 10y agoI never thought I'd see something that made Swing seem approachable, but now we have it.
- kedean 10y agoIn all fairness, that's still a lowered barrier. The barrier is the sum of all parts, if desktop gui dev is easy for systems programmers and really hard for web devs, and this project makes it easy for web devs, then it has objectively lowered the barrier for entry. It doesn't matter if it's still just as hard for systems programmers.
- bengotow 10y agoI think it's easy to argue about tools, but take a look at popular desktop apps these days: Slack, Atom, VSCode, Spotify, WhatsApp Desktop... they're all built on Electron or the Chromium Embedded Framework. It seems the community has spoken, and no longer considers Java / Qt the right tool for many jobs.
- gbugniot 10y agoSo tell when a Photoshop, a real Visual Studio, a SolidWorks, or any big/professional software written with Electron-like tech will be out there.
- royjacobs 10y agoI think you have a very narrow view of "the community" and what constitutes "popular desktop apps". What about applications like Photoshop, Premiere, Cubase, Logic? Basically anything that does more than show a couple of editor panes. I'd love to see these kinds of things built in Electron but as far as I can tell this has not happened yet. In these areas languages like C++ and frameworks like Qt are still really really popular. Not to mention embedded development, of course.
- TeMPOraL 10y ago> What about applications like Photoshop, Premiere, Cubase, Logic? That's the difference between toys and tools. Most of the popular applications are toys, and this saddens me a lot personally, because humanity is wasting the potential it has with all that cheap computing available. > I'd love to see these kinds of things built in Electron but as far as I can tell this has not happened yet. I don't see it happening any time soon. Web is not meant for serious tools. Compare Microsoft Office and Google's butt office suite. One is a tool, other is a toy that looks nice for simple documents, but is utterly unusable when your document/spreadsheet grows beyond more than a couple of pages.
- marknutter 10y ago> That's the difference between toys and tools. Most of the popular applications are toys, and this saddens me a lot personally, because humanity is wasting the potential it has with all that cheap computing available. I always wonder if pretentious people realize their pretentious and simply don't care, or they're actually oblivious. Perhaps you could enlighten me? The difference between a "toy" and a "tool" is whether or not something is mainly for fun or mainly for being productive. It has nothing to do with the process used to build it.
- rtpg 10y agoHonestly, at this point, HTML + associated frameworks like React/Angular are more mature for a lot of UI development than Qt is. Well, if you buy into the FRP/stateless UI things anyways. Though interface builders help a lot, I've always had a problem building more dynamic interfaces through any of the native tools. React, for example, makes that a lot easier.
- albeva 10y agoWhile I consider web-tech in native a cancer I can't help, but agree. There is no good cross platform native UI library today. Few that are are stuck in 90s metaphor or poorly designed. Which I think is partly the reason why html-css-js is spreading everywhere.
- sievebrain 10y agoWhich ones have you tried? I ask because I quite like JavaFX. The developer/documentation website is fusty and old-fashioned looking, but the tech itself is just really solid. You can tell it's been made by people who have spent their whole careers doing UI toolkits.
- blub 10y agoHow can something that's ~3 years old be more mature than something that's 20 years old? Even QML is 7 years old at this point and that is reactive. Try to stay at least a little bit realistic...
- rtpg 10y agoMature and old are not the same thing. I don't think TkInter is stronger than React +Electron for building stable, large apps despite the large age difference. One thing is that React is the newest iteration of production-quality declarative UI management. Angular, Backbone, a lot of stuff came bdfore. And all that contributes to a mature understanding That being said, I forgot about QT quick. That is also pretty powerful stuff. Though the web influence seems there ( correct me if the causality is wrong).
- wjoe 10y agoIt's certainly lowered the barrier of entry for me, and I'm no web developer - my background is mostly back-end Java. Sure, I started out by making websites when I was younger, and a few of my jobs have involved a bit of front end, but I'd be surprised if there are many developers that don't know the basics of HTML, CSS, and JavaScript. Using web technologies to develop a GUI has been so much easier than learning a new toolkit, or even language. For one thing, some of the options you mentioned are OS specific. There are benefits to OS-native toolkits, but as a one-man team with a small project, the benefits are small and the time investment large. With Electron, I can build on Linux and release for Win/Mac without any concerns. Qt is the best option of those you mentioned, and I considered it. But I was never great with C++, and learning a whole new markup language (or being tied to Qt Creator) for the UI was an extra barrier for entry. And I've often found that Qt programs don't look or feel right outside of Linux. Personally, I find developing a UI on HTML/CSS/JS much easier than any desktop UI toolkit I've tried in the past. Updating the UI from the code, and calling code from the UI is s simple, because that's what it was designed to do. And having a browser console makes debugging and trying things so much easier. I was never a fan of using JS for anything but websites before, but I decided to give Electron a try and I'm a convert. Perhaps there's enough of a speed difference between JS and native code that it would matter for more complex programs, but for my uses I don't notice a difference, thanks to the speed of JS engines now. Maybe from someone that's starting with no coding knowledge would find Qt and C++ just as easy to pick up as HTML and JS, and certainly a C++ developer would find Qt a better choice. And sure, I don't expect anyone to be able to build Photoshop on top of Electron. But there are plenty of programs that aren't that complex. While in theory I agree with not using the "new sexy technologies" for the sake of it, and "using the right tool for the job", I don't think that applies here. It works both ways, don't stick with old technologies just because that's what you're used to. What specific benefits do you get from using one of those toolkits for a simple desktop program?
- dagw 10y agoI'm someone who's cut his teeth developing desktop apps the 'old' way and came rather late to the whole modern web-development thing. And I have to say that going zero to a good enough prototype app is dramatically easier with web based stuff in most cases. Sure going from good enough to a polished high performing product can often be a massive pain, but that's a different story.
- mattmanser 10y agoIt didn't used to be that way. You used to be able to use Delphi or VB6 to make working desktop apps in very short times. I'm sure other will reminisce about other older desktop techs that were a breeze to use. MS severely dropped the ball with WPF by making it have a very high learning curve just when javascript was really exploding. So not only was it easier to distribute web apps, they were cross platform and it was easier to make them too (although the massive pain of SPAs has changed that). There was also Adobe Flash Builder that very briefly looked like it would be a competitor when Balsamiq was a big new thing, but it never really took off (only other thing I've seen use it is salesforce's SOQL tool). At that point everyone hated Adobe though, so it didn't have much chance.
- dagw 10y agoYea, for all the flack VB gets, it was pretty amazing. VB4 was what got me from writing silly little scripts for my own amusement to writing applications that could actually be used for something.
- Kiro 10y agoIf it has become easier for web developers to create desktop applications the statement still holds.
- based2 10y agoSwing -> JavaFX (https://en.wikipedia.org/wiki/JavaFX https://en.wikipedia.org/wiki/JavaFX)