Hacker News new | past | comments | ask | show | jobs | submit login
[flagged] The modern web makes me want to throw up (2016) (josephg.com)
75 points by _ttg 13 days ago | hide | past | favorite | 68 comments

I fail to see what this article brings to the conversation appart from an unpleasant metaphor.

Agree. I'm getting tired of everyone saying that everything in the 90's was super duper fast and now everything is sluggish with RAM-hoarding tendencies

The point of the article is web vs native.

The author states what he feels is holding native apps back: they’re harder to build in a cross-platform way and they have to be installed. Then the author discusses the current state and the future of those two issues.

I feel that discussion was valuable for not merely pointing out issues but thinking of solutions as well.

I don't see what the big issue with installing vs. not-installing is. When you start an app you copy code into RAM and then start executing it. What does it matter if the code is coming from your hard disk or from a webserver.

Secondly, of course the browser is like an operating system. It's a virtual machine abstracting away the underlying machine for security (a point the author completely forgot) and convenience reasons. And it's great at that.

What I personally dislike is the tooling available for modern web development. I neither particularly like the programming languages nor the frameworks and tools. Actually some of the setups I've seen do make me want to throw up a bit, too, that's why I am a happy native programmer (c++ and swift) most of the time!

>I don't see what the big issue with installing vs. not-installing is. When you start an app you copy code into RAM and then start executing it. What does it matter if the code is coming from your hard disk or from a webserver.

Persistence, and idempotency.

Code you run from your local hard drive will work as expected every time you run it.

Code grabbed from remote repository(website) might, and usually will, be updated/changed and it might break your workflow. It might not exist anymore.

And the simple fact that it is still there tomorrow morning even if the 'service' decides to shut down.

Current web situation is understandable. First you add 1 thing then another and suddenly you have chrome eating all resources. Same goes for Windows.

I'd like to see some cutted version of html, smth like rss feed, so it will have very small amount of stuff it could do but be blazingly fast.

And I'd like all os producers create group that would make some framework for cross platform desktop gui, with separation of gui and logic.

> I'd like to see some cutted version of html


Gopherspace / tildespace / sdf are fun little rabbit holes.

The argument about people not wanting to install anything is a little puzzling. Is that actually true? I would assume that most people, even on phones install the majority of applications they need on day one of getting a new device.

Honestly I don't think people care how their applications are developed or installed (assuming it's sufficiently easy). Resource also isn't something people think about, until they don't have enough. I don't see an argument from the customer side for web applications or Electron apps. It's easier and quicker to develop, but that's a business/developer argument.

Application development, especially on Windows and Linux seems like a lost art at this point.

It's true for me at least. I try to avoid installing anything and look for a web based alternative first. If I can't find anything then I fall back to native. I'm looking forward to the day where web based OSes are a viable solution for my needs.

> Resource also isn't something people think about, until they don't have enough.

Even if they do think about it, do they know why they are short?

If the user doesn’t know that Slack eats battery and therefore doesn’t make any changes regarding Slack, it doesn’t matter to Slack.

> Resource also isn't something people think about, until they don't have enough

unfortunately, this is also why climate change doesn't get fixed.

> Resource also isn't something people think about, until they don't have enough.

That's because most people are clueless about tech. They don't know what is possible, or how fast software can be, so they just accept the norm of bloated apps. If they even think about it, they usually blame hardware instead in my experience.

Agreed. We should just be allowed to run native apps. Yes, yes, I know that I can jailbreak my phone even today...

But store apps didn't solve the malware problem, it just handed large companies a near monopoly for software distribution. That is far worse than the threat of malware. That MS tried to release an OS where only store apps are allowed wasn't really due to security concerns. They wanted to push their ecosystem.

> But store apps didn't solve the malware problem

They do a lot better than just trusting .exes from the web.

Do they? App stores are literally just trusting executables from the web with extra steps.

Unless you're downloading the source code, reviewing it thoroughly and compiling it, you're blindly trusting someone.

Yes, they do do better. There is no need for conjecture; there is a wildly popular OS that runs apps exclusively from an App Store, and there is virtually no malware for that platform. There are also OSs where you can run random .exes from the web, and those OSs are indeed more susceptible to malware.

You do still need to trust someone, but the parent never said you didn't. They said that store apps do better than trusting random .exe's from the web, which is true.

> App stores are literally just trusting executables from the web with extra steps.

The fine grained permissions system (giving camera permissions on a temporary basis etc) is something executables don't have, and PC operating systems are only retrofitting now.

The sandboxed data storage model on mobile apps is stronger than the default PC model.

You are trusting a company in Apple or Android to review it as they have a reputation to protect with you.

It isn’t perfect, but you are trusting someone you share a mutual interest with rather than a random stranger.

Not really - you see the permissions requested by the app when it executes and are promoted to allow it.

That is a better model than older OSes which give access to anything that user has access to.

The random stranger has more to lose than the big corporation, though. Apple or Mozilla can weather a security breach or exploit because and suffer minimal loss, whereas the random stranger's entire reputation might be destroyed in a few bad forum posts.

Didn't seem to have worked with TikTok and I don't trust either to make the decision for me. Be that as it may, it should still be normal to run your own programs without anyone needing to sign them off.

There is a third big advantage to web apps over native apps - they're run in a hardened sandbox designed to safely execute untrusted code.

The same developer sandbox used for spying and pixel tracking?

Almost every website now requires JavaScript for the most basic functionality and the regular browser user isn't going to bother with installing an extension and enabling each piece of JavaScript manually to ensure that it is safe. I personally don't believe the JavaScript approach is even maintainable anymore. These Web APIs are so complex that you need third-party frameworks to make them useable and before you know it your site relies on 30+ frameworks for functionality that should be included by default in a markup language.

It's all relative, but no website can do what the TikTok app does on your phone.

Agreed. It seems like TikTok is able to violate COPPA and get away with it. Must have some deep pockets or blackmail material against politicians.

Native apps can be sandboxed much better e.g. with firejail.

The browser sandboxing model has a huge attack surface, as proven by the hundred vulnerabilities found.

The findings of vulnerabilities are a product of all the effort invested into testing the browser sandbox and hardening it.

In contrast, native app firewalls are only starting to get developed and are far less battle-tested than the browser sandbox. Heck, just look at one of the other threads on the current HN front-page for how weak native app firewalls can be: https://news.ycombinator.com/item?id=23689364

Uber, Facebook (esp. the Android SDK) and TikTok would like to have a chat with you.

I don't see Firejail wrapping all of the apps coming from the AppStore any time soon.

Trusted by whom? I find it easier to trust a random github repo author than the developers of chrome.

Based on what? Google has no reason to steal your credit card. A random Github user might.

The problem is upstack, Google does have incentive to put everything and kitchen sink into the browser. Such byzantine code is impossible to fully secure. It is also much less understood than usual operating system API you'll deal with in stuff pulled from github.

Not even speaking about bugs, guess what will this cause in combination with users conditioned to blindly click OK on security warnings:


Chrome is one of the safest pieces of consumer software ever produced.

You might want to re-evaluate your threat model there.

Safe by what measure? If you mean safely track your pixels movements, fingerprint and identify your OS/browser version/etc, allow WebRTC to leak your IP address and download torrents or mine crypto in the browser.. then yeah I guess it is safe. Safe for advertisers and malicious actors to exploit users.

An app can do all of that and far more when you use it.

I'm pretty sure all of these are problems you have with the web or with an advertising based business model - not Chrome.

Note that all these problems apply to Firefox, Safari and Blink as well.

And most (all?) of them apply to other platforms (cite: TikTok, plenty of viruses on every platform).

Author also forgets #3: instant availability of the user's data on each of his devices in the proper format.

As a user who has to work with several devices simultaneously (several laptops in my laboratory, each managing some equipment), I find it very critical to have my data immediately available between all the devices.

Also, how will it be possible for a 19 year old to become a billionaire unless they can build their stuff on top of the other frameworks?

A friend of mine had the same emotion some 7 years ago and just switched jobs. He's now a system programmer mostly doing C++ and Go. No web.

And I quite like the modern web and I think none of his objections (or the author's), while true, are really that terrible.

And none of us are throwing up! Life hack!

Modern web frameworks are also too complex. What I can achieve in Knockout.js in a few lines of code, and need many wrapped layers of complexity or libraries for in React and Angular.

It is almost that an attempt was made to hide complexity by adding more complexity.

It should theoretically be possible to run native apps through WASM in the browser requiring no installation and have native speed, no? I'm sad to see this not being more popular among "regular" web apps.

This article is attention seeking, unconstructive and makes want to throw up.

Perhaps the "slowness" of web-based technologies like Electron et al is just the price we pay for truly universal cross-platform development?

Sure there are native options on each major platform that are faster, but they are generally not universally cross-platform. Web-tech may be slow in comparison, but it is universal.

The question though, is it a price worth paying?

Many other things have tried to be a universal cross-platform solution for apps but I don't think anything has come as close to web-based technologies (maybe only Java? And that is not exactly everyone's favourite tool for creating great cross-platform UIs and it is arguable if Java is even "native" anyway)

>Perhaps the "slowness" of web-based technologies like Electron et al is just the price we pay for truly universal cross-platform development?

No. That implies Electron is the best possible model by which "truly universal cross-platform development" could be achieved. We could do better, but we just don't bother trying because the web was already ubiquitous when Electron came along and web developers were already dime a dozen.


Added above. Thanks.

Too bad this article has virtually no substance as I’d really like to read something more than web apps suck, native is great- news flash, both have the potential to be implemented poorly, except one has the potential to be censored. I have a completely different opinion on this topic... I think single page reactive apps are incredible and will give native apps a run for their money if architected well, they follow open standards and do not require curation.

The criticisms with Chrome may be valid, but that’s a completely different discussion... you can run Chromium to get a lighter experience and even Firefox has become much more light weight these days. Safari has done an incredible amount to reduce system resource usage and suspend tabs in the background. It’s true that web apps are becoming more demanding of memory (for a few reasons), but so are native and desktop apps. The advantage of using something like React and Redux is undeniable.... it will increase the memory footprint, but you are also should be getting more responsiveness in the UI as a trade off.

I can argue this further, but it’s unlikely that I’m going to convince someone still using a netbook that this isn’t a problem. Moving some I’ve the processing to the client side has moved web development forward monumentally, the client can now do things like process dates and cache user data in the UI and not depend on massive server side resources to do that.

Poorly implemented web sites will always be a problem, but understand that is usually due to the inclusion of egregious tracking libraries and ads, both of which are more tightly controlled in app stores- this is something I would argue is the biggest problem on the web. Additionally, some web developers can get library happy and just include far more than are necessary. I never hear people complain about the initial app download process, but often times they are too large to do unless on WiFi. The web doesn’t have this problem and will cache resources much more progressively.

Many people will call for a “no script” web, but the reality of that is horrifying. The last thing I want is to have to go through walled gardens for every kind of computing I want to do. Turning the web into a collection of glorified documents with hypertext puts far too much power in the hands of the curators and would open users up to far more vulnerabilities if everything needed an install.

The problems with the modern web (over-complicated cookie consent, advertising/ad-blocker arms races) are not those the author describes (performance of native web apps). Functionality of most downloaded apps with good performance should be easily possible in a browser. If that's not the case, developers of those apps are not doing it well. Native apps allow them to continue this bloat without such a strong performance hit.

> Functionality of most downloaded apps with good performance should be easily possible in a browser.

I don't understand how someone can make such a statement. Maybe I am more sensitive to subtle slowdowns but I rarely see web applications that can match the responsiveness and feel of native applications. And when I say native, I don't mean electrons apps. While there are some web apps that manage to squeeze out decent performance out of a browser but those are few and far between.

I don't know if you used computers in the 90's, but they felt really snappy. We lost that with modern OS's, but even those are much better than the glorified virtualised OSs that the browsers are.

Can you provide some examples of complex web apps you consider to be substantially slower than their native equivalents?

[Edit] I'll take the downvotes as evidence you can't.

For example, I use https://app.diagrams.net/ for diagramming. I don't find it to be any slower than native equivalents like Visio.

I use https://www.figma.com/ for UI design. I don't find it to be any slower than native equivalents like Sketch.

I use Google Docs for word processing. I don't find it to be any slower than native equivalents like Word.

Ok, I think there really is a difference in how people perceive slowdowns.

- Google Docs is substantially slower than MS Word, especially when you have more content inside.

- app.diagrams.net seems to be quite good with the few shapes I added

- gmail is much slower for me than the native Mac email app

- Slack is very slow compared to something like Telegram native on the mac, or even Zoom.

- VS Code feels worse and worse with every release. They are adding more feature but I feel its less and less responsive.

- Google Calendar is slower than the native Mac calendar app.

These are a few apps that I heavily use on a daily basis. I won't say the web apps can't get decent performance. But I think on average you get better performance on native, and if you put the same amount of effort in performance tuning, the results you get on native are unachievable on web apps.

> Functionality of most downloaded apps with good performance should be easily possible in a browser. If that's not the case, developers of those apps are not doing it well.

Assuming that's true, if the vast majority of those developers don't do it well, isn't it a problem with the platform?

The reason you can install instantly from the web and just pull in code with reckless abandon is because you are essentially running a sandboxed environment. Browsers are built to not trust.

The technical limitation is that you want the instant loading (which can’t be secure as it doesn’t allow for you to verify you actually want to run something nor does it let antivirus scan it) without the protective sandbox.

I disagree, I really enjoy the tools we have today. gRPC microservices, containers, React (16.8+), on top of that we many languages to choose from and utilize. Building services at scale has never been easier.

I wrote my latest project as a web app because it runs effortlessly on my PC and my iPad. And updating it cross device is instant.

Trading ram & cpu vs. my time spent building the thing is the right tradeoff for me.

why an old and insipid article becomes popular on HN? a case of nobody reading past the headline

Nah I'd rather web apps become faster and more efficient

I'm not going to download an app for everything

Isn't half the blog argument that this could be solved for native apps too?


HN front page: The modern web makes me want to throw up

xD what a loss of time and money

I upvoted this before reading because I already agreed!

I thought it was about SPA vs. Multipage application on which I would have agreed but using web technology instead of native on mobile app development is completely fine by me.

It's perfectly possible to write a performant app with the web. If the author thinks it isn't, the problem is their ignorance, not the web.

I've recently being using the web version of sketchup having used the desktop version several years ago. I was not hopeful when starting but after a few hours I'm impressed. I've found the performance good and didn't notice any slowdown. It's the first webapp I've seen that I've though this might actually work.

considering that Google no longer owns it, it actually might be around for a while longer.

I suspect people who write stuff like this never used the 90's web with 90's browsers on 90's computers.

It wasn't lightening fast. It was crashy and shit.

I mean, as a random example: tables wouldn't render progressively unless they had the number of columns and rows set in the table header. So the whole page had to load before the table could be seen.

And as someone who has shipped an app in React Native I'm 100% sure I'm never ever going to do that again. The principle is nice, the implementation is horrible.

Browser have lots of lines of code because they offer lots of features. Features are useful - we want general purpose computers because people want to do lots of things on them.

I don't know if people who lament having native applications for everything had a completely different approach than me or if their memory is very rose-tinted.

I used to have a folder of several dozen applications I'd move from PC to PC whenever I got a new machine. When I'd poke around my computer I'd find five utilities all doing the same thing like PDF conversion, which I did infrequently enough that I wouldn't remember it was there next time I needed it. I'd have to give full system privileges to an company I'd never heard of who'd built the only freeware tool to do xyz.

I understand not wanting to, say, do your emails or document processing in-browser. But these are problems which are still well-served by native applications. I think the fact that all those little utilities are now webapps is an absolute blessing.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact