6 ms·
Electron is a large step backwards in usability and software quality. Spotify has its own context menus which don't support arrow keys or type select. GitHub De
by ridiculous_fish 5y ago
Electron is a large step backwards in usability and software quality. Spotify has its own context menus which don't support arrow keys or type select. GitHub Desktop has a "Select All" which doesn't actually Select All, only what's been paged in. VSCode doesn't confirm key equivalents by highlighting the menu bar. All of them blink the cursor even without typing focus. All of them steal focus at launch.
Our UI vocabulary is shrinking. Undo support used to be table stakes, but now I'm surprised when it works. The web is not only eating the desktop: it's eating what it means to be an expert computer user.
- Pxtl 5y agoEven just "what elements on the screen are clickable" would be a huge improvement, not to mention visual feedback that you've clicked/touched such an element. At least loading indicators are back in fashion, the brief period where it was assumed everything would be instant and so they binned visual feedback that the user is awaiting something is over.
- gobookdev 5y agoVS Code is my favourite software of all time, no need to use the menu bar with the command pallete and the excellent custom keybinds. It completely gets out of the way it is still more feature rich than any IDE through extensions. A blinking cursor is a small price to pay, I haven't even noticed that. I know it's not meant to be good being written in mostly TypeScript, but it just is.
- ridiculous_fish 5y agoAn example of why it matters: hit command-S to save your file. Native apps confirm the save by highlighting the menu bar until the save is complete. VSCode does not indicate to the user when the save is complete. I've had saves require 15+ seconds, and they are not atomic, so you must be careful to not use the file (compile, git, etc) until the save is finished, which is hard to know. I've personally lost data this way. I agree that command palette is great and is clearly a point of convergence among new apps. I wish Apple would embrace it!
- johnday 5y agoA tab in vscode has a dot in it if the contents are modified since last save. If a save is complete, that dot will go away. If there is no dot, the file is unmodified.
- abraxas 5y agoSpeaking of which, it also changed the decades old symbol for unsaved files (an asterisk) for no discernable reason. Given that it also doesn't save on loss of focus it led to my many WTFs when I first started using it.
- jiggawatts 5y agoVS Code has some of the worst product quality I've seen from Microsoft in quite a while. It doesn't hold a candle to IntelliJ or Visual Studio. Even directly comparable "lightweight" editors like ISE are far superior. Random examples of bad behaviour in commonly used parts that would affect just about every user: If you try to search & replace, it'll refuse to remember "replace in selection". It'll reset every time, destroying your entire file instead of replacing just in the selected block. If you do enable this feature, it'll change what you've selected, because... why? Even with the feature enabled, the "search preview" will highlight matches outside the selection block! WTF? There's no memory for recent searches, so if you've just spent ten minutes carefully crafting a regex and you accidentally click the wrong thing, then it is gone forever. The recent files list isn't a list of recent files. The console overwrites itself sometimes, resulting in gibberish output. It's particularly bad with PowerShell that uses Write-Progress. I've sat around for nearly an hour waiting for a process to complete, when in fact it was prompting me to continue. I couldn't see the prompt because it had overwritten it (incorrectly). Someone thought that manually editing JSON files is a suitable GUI for configuring basic settings. Ctrl scroll up/down doesn't change the zoom (or font size). Unlike most Microsoft editors like the PowerShell ISE or Visual Studio, MS Word, and most third party text editors, block select isn't alt-drag but middle-button-drag instead. No middle button on your mouse? No block select for you! It's unfortunate that many new Microsoft languages are supported in VS Code only. It feels like a huge step backwards that's being forced onto an enormous community.
- jitl 5y ago> There's no memory for recent searches, so if you've just spent ten minutes carefully crafting a regex and you accidentally click the wrong thing, then it is gone forever. It has this now, although the click target is some teensy text. (I also find the search very frustrating, like it replacing the search with your current selection sometimes)
- cusenses 5y agoUp arrow within the textbox also works to restore previous searches.
- sk0g 5y ago> VS Code ... is still more feature rich than any IDE through extensions. Not sure what you program in, but that has not been my experience at all. C# (Unity), Golang, Python have pretty mediocre support at best in VS Code. What JetBrains' products do there is miles ahead, and tacking on countless extensions doesn't get you close to the out of the box experience, so I fail to see the point. If I'm quickly editing a single file, sure I might fire up VS Code or Micro. For actual work though, the JetBrains products can't be beat (for me at least).
- gobookdev 5y agoI program mainly in Go, Python, TypeScript and some C/C++. A year ago I would have agreed with you, but one extension for each language now gives you almost everything you need. I bounce back to Goland, Webstorm, CLion and PyCharm occasionally as they have much more reliable refactoring, and have some really nice features missing from VS Code, but being a Polyglot VS Code makes it so much easier to use similar keybindings and processes across languages, I don't have to fight the IDE to get it to do what I want. Both great tools but my daily driver became VS Code a few months ago, it's pulled ahead in my opinion despite being free.
- sk0g 5y agoYou could always install additional language support in your main JB IDE too. I could see some point if you're constantly working in 3+ unrelated languages for sure, but I don't think that's the typical day to day workflow of most people. The refactoring, intellisense, and bonus features are hard to give up once you get used to them. A good Go debugger, actual Unity integration that inspects the scenes, references, usages, etc, or Python type hinting actually helping the development effort, are just some things that come to mind. It's cool there's an open source editor that does most things quite well for sure, but a hundred dollars or so is extremely worth it, if you're even 1% more productive. I'd estimate the real boost I got from JB products is much higher, particularly when it came to Go and C#.
- api 5y agoI'm the author of this, and I don't completely disagree. I don't think the web engine is that bad of a UI layer, but it's nowhere near the best. If you don't like the trend toward web-ification of the desktop, don't blame developers or Electron. Blame OS vendors for refusing to field a portable API for the large common core of desktop app functionality, something for 2D GUIs analogous to OpenGL. Why do we have standard 3D libraries, standard APIs for files and I/O, standard networking APIs, but no standard GUI API? ... because OS vendors still want to try to herd developers into building apps for only their platform. Developers (myself included) respond with "fuck you" and use web technologies. There is also Qt, but it's fairly antiquated. It doesn't use or support the reactive UI paradigm, and after using React I can't go back. Every other GUI coding paradigm I've seen degenerates into spaghetti code. All the other options (other than Qt or web technologies) falls down in the area of accessibility, making it not usable for serious work.
- mixmastamyk 5y ago> Every other GUI coding paradigm I've seen degenerates into spaghetti code. That's typically avoided by decoupling model and view and/or similar functional patterns. What else is the paradigm providing?
- pseudalopex 5y agoOperating systems have different features and conventions. And why would vendors care what cross platform technologies you use? I doubt the framework you want them to create would change much. Many Electron fans talk about how apps should look and feel exactly the same on every OS. They say web technologies are the best UI layer by far. And it isn't like Slack or Microsoft don't have the resources to make native apps.
- sofixa 5y ago> Many Electron fans talk about how apps should look and feel exactly the same on every OS Don't you think it's a good idea to have consistent UI and UX cross platform? If a user switches between the mobile/mac/Windows/web version, everything should change? > And it isn't like Slack or Microsoft don't have the resources to make native apps. Considering Microsoft seemingly don't have the resources to make a functional Electron app for Teams, and the Linux and macOS versions are always late and buggy, apparently they can't.
- titzer 5y ago> The web is not only eating the desktop: it's eating what it means to be an expert computer user. Nailed it. Instability is the enemy of mastery. In order to fully grok things, they need to be stable long enough to be grokked. Software has stopped being stable long enough to become an expert. Brains learn. And then a brain that is forced to unlearn and relearn enough times eventually learns to not bother learning. So no one even bothers to become an expert anymore.
- westoncb 5y agoElectron seems to have reached the status of being a political topic. For many people it's something to rally around or (more frequently here) against. You're either for it or against it. The above arguments would not be taken seriously on another topic, but here their weakness can be overlooked (by some) since folks are already committed to the the stance they support. Look at the argument more closely: they're naming several random bugs. You can name several random bugs related to any UI framework on the planet with a sufficient user count. It's meaningless. I'd urge people to look a little closer at arguments being put forward by the anti-Electron faction here if you don't yet have data yourself. For myself, whenever I read these kinds of comments (or the tiresome refrain about absurd memory usage) it feels to me like there must be two Electrons: the first being the Electron which is the foundation of nearly every app I actually find useful these days (which do not exhibit e.g. exorbitant memory consumption issues [it's a marginal, non-issue increase in my experience] or higher bug-rates than native apps)—and then there's the second Electron, which afaict is a conceptual construction supporting a particular perspective on the 'correct' way of writing software (hint: anything using web tech isn't it). Edit: something that would help move legitimate analysis of this topic forward: comparisons to other frameworks should be made after normalizing with respect to feature count/complexity, i.e. how much higher is memory usage vs. a competing app that actually offers similar features—e.g. comparing Discord to an IRC client would not be particularly informative (but that kind of mismatched comparison seems to be a common source of misconceptions here)
- Nicksil 5y agoOf course any point is meaningless when you define it as such for yourself. Your differing perspective and casual dismissal doesn't make their points any less relevant. The points they brought up are not meaningless and more people than what it seems you imagine are affected by the shortcomings outlined by the points made prior.
- westoncb 5y agoBut... I didn't dismiss them, I specifically addressed the flawed structure of their argument. They made some more assertions in the second paragraph but didn't offer any support for them so I haven't addressed them separately. With something like: "Undo support used to be table stakes, but now I'm surprised when it works" —I have to go back to the "two Electrons" I mentioned previously: not sure what world this is where software and business interests have so radically altered as to no longer support e.g. undo. It sounds like they ran into a bug related to undo somewhere and now are weaponizing the fact (as in their first paragraph) as a general argument against the framework.