8 ms·
...how about moving things out of the browser? It's cramped as it is. And then people wonder why their browser is so slow... "it's just displaying documents!"
by Kaiyou 7y ago
...how about moving things out of the browser? It's cramped as it is. And then people wonder why their browser is so slow... "it's just displaying documents!"
- XCSme 7y agoMy browser is not slow, for me starting and using a lot of desktop apps feels slower than browser apps to be honest.
- Kaiyou 7y agoProbably because your desktop apps are bloated, too. Any software that needs longer than zero point two seconds reacting to user action (this includes starting the program) should be improved upon.
- XCSme 7y agoI think the only native apps that I use are Steam, Unity, Photoshop, SourceTree and VSCode. Out of those the only "fast" one is VSCode, which is actually written in JS. Even though you mentioned the browsers being "bloated", for me Chrome always starts up instantly and I have no responsivness issues when browsing sites, playing browser games or using browser apps.
- crispinb 7y agoOut of those the only "fast" one is VSCode, which is actually written in JS Typescript I think? Anyway, much as Microsoft has done an amazing job with VS Code, it really doesn't have quite the snappy feel in all circumstances of a native app. Extension loading on start up is one example. If you use a keyboard mapping extension it's quite possible to start typing on launch and find the mapping hasn't kicked in yet. That's not to say it isn't worth the tradeoff. The costs are inconsequential, and the benefits great. I'm mostly an IntelliJ Idea user, but the sheer speed with which VS Code is developed often tempts me towards it (eg. it's well ahead of Idea on wsl integration)
- deleted 7y ago[deleted]
- lostmsu 7y agoSteam UI is also just a webview mosly. You can see its WebHelper processes. I would check if SourceTree is too.
- saagarjha 7y agoSourcetree is a native app.
- leadingthenet 7y agoVSCode is anything, but "native".
- satyenr 7y agoDo you really want to compare Photoshop with VSCode?
- onion2k 7y agoI write moderately complex web apps and I have to say 200ms for a user interaction sounds like far too long. All apps regardless of where they're running should be managing a solid 60fps, which gives you a budget of 16ms for the UI to react to a user event. Obviously starting the app is going to take longer, especially from cold, but if you ignore things like DNS resolution and download time then 200ms is more than enough for most things to get from 'downloaded' to 'interactive'.
- Kaiyou 7y agoIt shouldn't be obvious that startup is slower and I didn't mean UI reaction, but the more broader reaction time. For example from typing a location and hitting enter, it should take something like Google Maps zero point two seconds at most to completely load the page and be done with everything. The user shouldn't have a concept of "loading time" and that includes starting the application.
- Sahhaese 7y agoIt's funny you should mention google maps, as that's recently regressed to semi-unusable in firefox.
- fwip 7y agoWhat desktop programs do you use that take fewer than 0.2 seconds to start?
- Kaiyou 7y agofyi, I'm on Linux. Here's a list: ranger, urxvt, sxiv, w3m, xev, vim, feh and qutebrowser.
- crispinb 7y agoI do like performant apps, but I've never understood the emphasis on startup time for most of them. There's the odd utility (eg. screenshotting) where an instant start is desirable. But the main things I use (terminal, editor/ide, browser etc) are started once per week at most. I personally wouldn't want the developers of the software I depend on most to waste resources speeding up something of such marginal significance. [Edit: an instant-start editor for config file, vim commit edits etc is of course crucial]
- Kaiyou 7y agoI have a workflow where I spawn and close terminals depending on whether I want something done. If my terminal startup wasn't instantaneous, I'd be switching to one that was. (Currently using urxvt). The only reason I keep my browser open is because it doesn't start instantaneously. Imagine a world where your computer and all your apps can start instantaneously. It would be viable to shutdown your computer when leaving the room instead of just locking it. In this reality, however, I would already be happy if tabs in a browser could load that fast, so I wouldn't have to keep hundreds of them open all the time.
- stabbles 7y agoYour slow desktop app is an electron app
- giancarlostoro 7y agoI was going to comment this. Typically these days a LOT of Desktop apps are Electron based: VS Code, Slack, Signal, probably Keybase, Skype, MS Teams, Discord, RamBox, IRCCloud, Postman, Insomnia, Light Table, Hyper, and... The list goes on. But those are apps I have used and know are Electron. Thats at least 10 different instances of Chrome on a system running at any given time.
- frutiger 7y agoIt’s only ten instances of Chromium if you actually run all ten apps at any given time!
- TeMPOraL 7y agoWhich is like, the reason people invented multi-tasking operating systems, somewhere around 1960s. Which is why current disregard for application performance really irks me. A computer is meant to run a lot of things at the same time. To some point, the utility of a computer scales with the number of things you can run simultaneously on it. Your Electron chat client that thinks it own 100% of CPU and RAM essentially puts a soft limit on that. It's less of a problem for power users, who know how to work around such problems, but it is a deal for regular people, who'd love to run a few things at a time but can't, because one or two apps grinds their cheap computer to a halt.
- XCSme 7y agoNo, my fast app (VSCode) is an electron app. Steam is slow, Photoshop is slow, SourceTree is slow.
- arghwhat 7y agoIf you think you browser is fast, you'd be blown away by any decent application. Too bad all apps are now electron.
- avmich 7y ago> If you think you browser is fast, you'd be blown away by any decent application. In data centers, loading data from networked server, where it's in memory, can be used over loading data from a disk, because disk is comparatively slow. A web app can load JavaScript assembler, which isn't much slower than a desktop app written in C. Bigger - and slower - parts of the web app can be loaded after the app starts interacting. So - at least in principle - no sizeable speed difference, which would blow somebody away. Advantage of web app is cross platform uniformity. Write once, run everywhere. Of course, reality can make adjustments, but we can see and invent things.
- bin0 7y agoThis is misleading as all get-out. "JavaScript assembler" is WASM, I assume? Running it in a browser still includes the overhead of a browser. The slowness is not from the wasm runtime (which has been implemented standalone and is fast), but in the browser-y gui stuff (which is what electron is good for). Also, WASM has less tooling etc. around it than JS, so JS is used for now. And jS is slow, but it's what is used by electron. Your saying "electron could be made faster if we did all these huge things" is like me saying "but the c could be faster if we did great threading, really efficient code, inline ASM, and used intel's crazy compiler for maximum optimization". I get there's hope for the future, but not currently. In any case, implementing a custom graphics stack (like the web) will always be a heavy-weight task compared to one application.
- arghwhat 7y ago> The slowness is not from the wasm runtime (which has been implemented standalone and is fast), but in the browser-y gui stuff Not entirely true: In representative benchmarks, WASM has only 65% of the performance of native code. Of course, everything gets much worse the moment you interact with browser mechanics—WASM is only this fast while doing raw computations. https://www.usenix.org/conference/atc19/presentation/jangda https://www.usenix.org/conference/atc19/presentation/jangda
- ajconway 7y agoFor that we’ll need an adequate cross-platform (-ish) way of doing UI. I’m not a fan of React Native, but it seems to be the technology we’re looking for, though it doesn’t seem to be as ready for the desktop yet. An all-native solution on top of a powerful modern language (rust?) would be ideal, but that doesn’t seem to be the direction things are moving. We’ll probably end up with Flutter/Native.
- saagarjha 7y agoFlutter isn't "native" as you would use that word in the context of UI design toolkits.
- vishnuharidas 7y agoFlutter is drawing a native style UI elements on an OpenGL (like) surface, and that is pure binary running on the device processor. Platform-specific features like Bluetooth, WiFi, etc. are bridged just like in ReactJs.
- TeMPOraL 7y ago"Native" in context of UI toolkits is "using system-provided UI controls through system APIs". The opposite of that is drawing your own controls, which then usually don't integrate well with the OS and don't support the interoperability and accessibility features that are expected of UI controls on that OS.
- dijit 7y agoThis is what I do, ^E opens a vim buffer with the contents of whatever I’m editing. Make my changes, save/quit and it appears in my text box in the browser. Obviously doesn’t work on my phone (why would I want it to?) but it’s a super nice workflow (if a bit jarring to have another program/terminal pop open). I’m using qutebrowser for this, and this mechanism is an officially supported part of the browser. https://www.reddit.com/r/qutebrowser/comments/780u6a/how_to_set_vim_as_qutebrowser_editor/ https://www.reddit.com/r/qutebrowser/comments/780u6a/how_to_...
- Kaiyou 7y agoQutebrowser is really amazing and I'm using it for lots of my browsing, too. What keeps me from going all in is the lack of something that can match ublock+umatrix. Sadly, the Internet has become a harsh place, where these things are needed.