> As someone who has been into mobile app development since 2010, the comments above read like a punch to the gut. We grew up believing that the native experience was better than the web!
It is
With the transition to web apps, we have lost some excellent quality standards, integration, and availablity.
10 years ago you could have productively used your computer and software without ever needing to touch an internet connection. Nowadays it's either:
- the browser is the portal to everything
- apps are just slow, unresponsive, ugly looking WebViews
It's sad that the bar is so low these days that VSCode is considered acceptable. That takes 30 seconds to start up on my i5-8250U with MX150 graphics.
Notepad++ launches instantly on a 10 year old 32 bit computer with a *low end CPU.
Not criticizing your service btw, I'm sure it's well developed. I hate the general concept at the base tho.
The blame is on the mobile vendors (and desktop platform vendors) just trying to "out-innovate" each other (also building propietary security/signing solutions) with their propietary stacks (SwiftUI/ObjC, Java/Kotlin, C#,etc) at the same time as there's been an explosion of apps/services that just needs basic functionality. The budgets/manpower isn't there to support everything... apart from if it's just a webview.
20 years ago a Windows program was enough (guess why Visual Basic was so popular?).
There's also a flip-side to the equation, the web-platform is damn capable thanks to the relentless pacing (both in features and JIT improvements in JS engines) after IE died off and catching up to it is becoming harder every day.
Looking today the only real choices for cross-platform dev seems to be: WebView, React Native (using Expo is a damn smooth experience almost to the level of webviews) and finally Xamarin/C#. (Yeah, I'm aware of Dart/Flutter but isn't it already long overdue to be killed by Google?)
> That takes 30 seconds to start up on my i5-8250U
I run VSCode (on Linux) on a number of different low- to mid-end machines between a 5 and 10 years old and it starts within 2-3 seconds on all of them. New windows/tabs open basically instantly. I ran it once on a Raspberry Pi just for fun and even then it was entirely bearable.
I can only imagine you are loading a bunch of extensions, or maybe one or two extremely heavy ones. It's never anywhere near as snappy as plain Vim, of course. And I am not easy to please nor a fan of Electron apps in general but VSCode has been fairly tolerable for me over the years.
On my Apple M1 it takes ~33 seconds for cold-start. I use only vim and flutter extention. That said, my biggest complaint is that on this extremely fast computer, the lag between a keypress and a symbol is too big. I'm typing faster than VSCode renders characters. With vim mode enabled it sometimes goes super slow, with 1-2 sec between characters (but that's not always).
Anyway, agree with the author. Everytime I use web- or electron-app I'm just expecting sluggishness, ugliness and weird behaviors and refresh the page (=restart the app) all the time. It's just a norm. I guess no matter how people pretend that typesetting engine from 80-s is a good UI stack, they still have to pay huge price in usability, performance and orders of magnitude higher memory usage.
For me, with Code completely exited (i.e., not in the dock at all), it takes about 1 second to start drawing and about 4 or 5 to finish rendering all the icons and such and be fully usable. Even IntelliJ (now THAT's slow) only takes about 6 or 7 seconds to fully load. On a M1 too.
Do you have some weird antivirus or similar scanning all your apps...?
By cold start I mean, I haven't launched the app in the last days, so it's not in any sort of cache or memory pages.
No, I don't have any antivirus, and generally very concerned about what's running in the background (I delete apps from LaunchAgents dir, avoid keeping hungry Electron apps in the background unless really needed, etc).
I don't understand how it's so slow for you then. I don't even use VSCode regularly (prefer the other IDE), but I keep it around specifically because it's so fast to open. A good lightweight alternative when I don't want to wait for my real IDE.
It's never taken more than a few seconds to load... whether on M1 or x86 Macs or Windows. How weird.
I don't know either, but it's definitely a common case. They have around 200 issues devoted to startup performance.
Meanwhile, NeoVim is consistently starting under 500ms for me, even being heavy loaded with plugins and offering all the same functionality (NeoVim is pretty awesome as an IDE these days).
> It's sad that the bar is so low these days that VSCode is considered acceptable. That takes 30 seconds to start up on my i5-8250U with MX150 graphics.
Have you considered that your computer is the problem? I am running a dual-core MacBook Pro that usually hosts a docker-compose file running Postgres and Mongo, a few NodeJS services, and a React hot-reload server, and I can open a fresh or additional VSCode window in 5s.
Or on my i7-6700k/1070 I was pulling it up within 2s
I don't disagree with the idea you express about the internet connection though - it's frustrating to find all the things that should be locally cached and aren't, and all the places offline-first tech isn't applied that it would be beneficial.
Fortunately airplanes have more and more wifi these days...
> Have you considered that your computer is the problem?
I wouldn't say so, Elementary OS's built in code editor takes a few seconds at most to open a file
Then again, Electron is really slow (among other things), but anyways, regardless of the toolkit you're using, your app is still an overly complex .html page, doing things the DOM was never meant to do or programmed for, e.g. DOM traversal becomes slow. (Unless you use something like React Native, which is 'truly native', but mobile only)
Honestly the idea of web apps sounds a whole lot like trying to make a video editor app in MS Word
> your app is still an overly complex .html page, doing things the DOM was never meant to do or programmed for
I mean, maybe it was true when browsers were hypertext-only applications, but now they are performant app-delivery toolkits.
Native might get higher performance, but at a fairly steep cost of coupling and distribution difficulty. I can deliver insanely powerful apps to many OSs and form factors on a 512kB bundle, meanwhile native mobile apps come in at 60-500MB for 1 platform. It's also not really that hard to have smooth 60fps display on big datasets & visualizations, which means I contest what "slow" really means for DOM traversal.
Seems to me like you're hell bent on discounting this one platform instead of arguing the tradeoffs are not worth it, which is a shallow take from my view.
Arguing that web technologies weren’t originally intended to be used to develop apps is completely orthogonal to the discussion. The fact of the matter is that web technologies are the best tool for the job. They’re one of the only tools that allow you to build an identical cross-platform application; not to mention the host of other advantages, like code-sharing with a website, an extensive JS ecosystem, (in the case of a PWA) fully sandboxed, etc.
And, I agree with you that today Electron apps are a worse user-experience a lot of the times. But just brushing off anything made with web technologies because “it wasn’t designed for this” feels very shortsighted in my opinion.
> just brushing off anything made with web technologies because “it wasn’t designed for this” feels very shortsighted in my opinion
That's more of an ideological reason for me. But even setting that aside, you can't ignore the practical downsides I listed
> The fact of the matter is that web technologies are the best tool for the job
As a former app developer, I can assure you that creating truly native apps with the OS's toolkit has been way easier than any web application framework I have ever used, ever.
For example, here are some side projects I built for Windows:
- a web browser, but kind of forgot about it
- a web page editor with live HTML preview, finished but never really released it
On the other hand, it took me hours to get started making a simple react project (setting up the project, styling it, making the basic navigation components), and never finished it.
Sure, my experience is no empirical evidence of anything. But it seems to be a common misconception that building with web technologies is easier than native toolkits.
I understand that the main problem is having to write everything from scratch for every platform, assuming you're not targeting a specific one (then you should definitely go native).
But trust me, outside the Windows world the app dev's life is a lot easier (see GTK, Qt, etc. that work on any OS as long as the DE implements it)
For more complex projects porting is often an option, and for those cases I still think cross platform TKs are much better than web apps. And you usually don't need a web version if the software works natively everywhere possible.
Same here. My offline-first Capacitor/Ionic app feels a lot more snappy than the native competitor, which requires an internet connection and has a lag of a second when saving a data item.
Point is: just because it’s native, doesn’t mean it’s well-designed.
You're totally right about startup times with apps like VSCode, but there's a reason that never gets worked on really: the most active users startup those pro apps (VSCode, Photoshop, etc.) and simply don't close them.
Optimizing for startup time probably doesn't end up being much of a gain, better to make sure the experience stays solid once it's already running, and for long periods of time.
> 10 years ago you could have productively used your computer and software without ever needing to touch an internet connection
And then users wanted collaboration features, weren't keeping their software up to date (so it had to be done for them), wanted to share their data across their device on the cloud, etc, etc.
Alright, so it works for you, but not GP. That still means that it's poorly optimized.
> even if I had monster computer "instant vs 30 seconds" wouldn't be irrelevant
You're stating the negation without providing any argument, so I guess I should explicitly clarify why it's irrelevant: because the topic of this thread is about medium-to-low-end machines, and not about high-spec ones.
To be even more clear, the difference between "instant" and "30 seconds" is categorical in almost every situation, let alone the specific context of interactive software tools.
It is
With the transition to web apps, we have lost some excellent quality standards, integration, and availablity. 10 years ago you could have productively used your computer and software without ever needing to touch an internet connection. Nowadays it's either: - the browser is the portal to everything - apps are just slow, unresponsive, ugly looking WebViews
It's sad that the bar is so low these days that VSCode is considered acceptable. That takes 30 seconds to start up on my i5-8250U with MX150 graphics.
Notepad++ launches instantly on a 10 year old 32 bit computer with a *low end CPU.
Not criticizing your service btw, I'm sure it's well developed. I hate the general concept at the base tho.