Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

I understand the point you are making but is HN really the best example of modern web app? For better or worse web apps have replaced desktop apps. Not everything on the web is a simple list of articles and comments. Some things require extremely complex interactions and workflows. I don't think minimalism is the cure for everything, sometimes you need _some_ complexity and yes sometimes things are easier to use with a little bit of interaction instead of just text, forms, and plain html.


sort by: page size:

I think you’re understating the complexity of modern web applications. There are lots of web apps out there that cannot be aptly described as “pages,” or even as simply “UI”.

I guess my overall point here was that you can build a sufficiently interactive webapp without a bloated, client-side, MVC, virtualDOM, JS monstrosity.

Given the fact that most of the bloated JS monstrosities you're talking about are also the most popular websites around (Facebook, Google, Pinterest), I think this assumption might be wrong.

Do you have any examples of popular, complex web apps that work the way you suggest is better? Why is it that Facebook etc don't make things that work the way you're talking about?


What makes it modern is how it's built and what makes web apps modern today. Its features make it modern, I am not sure why you suggest it's needlessly resource-heavy.

Well, since web apps are competing with native desktop apps, they're also starting to compete on the associated complexity.

Like in the 90ies when everyone had their own desktop GUI library (remember the distinctive Borland look?) and fluffernutter libraries and then it boiled down to a few major ones, the same thing is happening in the web frontend.

And since there's no good distinction between "simple web stuff like actual pages" and "full-blown web apps", the tooling is the same, and the complexity bleeds into everything.

…yep, no having your cake and eating it.

Funnily enough, the few things that might survive the test of time and be there in 2030 or 2040 might already exist today — it might just be impossible to identify them.


Web apps used to be just html and forms so no the complexity has skyrocketed.

Minimalism for minimalism's sake is just as detrimental. Also favoring web apps over native versions isn't reducing complexity you're just pushing it from the OS to the browser.

I agree, but I'll go one step further. This whole time, I've pretty much been against the whole "web app" thing. I still prefer visiting (and definitely developing) websites that are basically just a bunch of hypertext documents—the kind of sites where URLs point to resources and don't change, HTTP methods make things happen, and (almost) every click of a link or button causes a synchronous request/response to/from the web server.

Now of course, there is at least a modicum of hypocrisy in my statement. A few "web apps" are nearly indispensable. Right now, Gmail is the only one I can think of, and the only "web app" out of the ~25 sites on my browser's bookmark toolbar. Everything indeed works perfectly, but I can't imagine how nasty the code behind it is (please, someone correct me if I'm wrong).

Lastly, I completely understand the main advantage of "web apps." It's just too darn convenient to deploy the things compared to any other platform.


And yet you are posting this on HN, which one could argue is a Web application.

And don't forget shopping online, there are a few small web shops out there with great UX.

And you can use 20 year old websites just fine, the web has great backwards compatibility too.

Web apps don't have to suck.


Web apps are fine for lightweight, data-driven tasks. For tasks that require richer interactions they are still decidedly inferior. This may change as HTML standards and compliance evolve but it's not crazy to suggest that a well-written native app will always be one or two steps ahead.

Even so, a web app is much better than no app. The unit economics of re-building a complex desktop web app in a different technology, in a highly-constrained medium for use by a relative handful of users aren’t great.

Sure, if you need user interaction, it's reasonable to build a web app. But the vast majority of websites are simply conveying information. You don't need vast amounts of JavaScript just to shove text at a user, but a fair number of websites break anyway.

This is on the top of HN because people, like me, are interested in it. You say learn to do it the "right way", by that logic we should have stuck to making desktop only apps instead of browser based web apps. I'm not saying this is better or worse. But I certainly think it's an approach worth considering.

"Whether it runs in a browser or is an application isn't relevant to how easy something is to use."

Sure, in principle and often in practice can make a mess out of a Web app and can have something nicely simple in a native app.

But your "isn't relevant" is too strong for practice: Again, HTML is a big constraint on what the programmer can do, and this constraint, in practice, forces a lot of simplicity, i.e., ease of use or, if you wish, relatively 'uniform' techniques of use across millions of Web sites with the advantage of learn once, use thousands of times.

Also, your example of Notepad is relevant: Actually, as simple as Notepad is, the average Web app is still significantly easier to use if only because Notepad is nearly unique and there are over 100 million Web apps that, via the constraints of HTML, all work very much the same. So, one billion people can use over 100 million Web apps from learning how to use just a few of them, but nearly all those one billion users would have still more to learn just to use Notepad for the first time. Native apps are so unconstrained they are free to be highly idiosyncratic: Sure, maybe for an app as simple as Notepad the learning time is short, but Notepad is not like an HTML Web app and,thus, needs ADDITIONAL learning time, even if only 5 seconds. In the world of the Web, the 5 seconds learning time unique to one Web site is TOO MUCH.

Again, this uniformity and ease of use pushed hard by the simplicity of HTML is a BIGGIE for the current size and future growth of the Web, and more complexity in client side programming tools is a threat to such growth.

Jeff Jaffe, listen up!


There are two facts about Web apps that few people seem to be able to hold in their heads at the same time:

1. Web apps are incredibly useful and convenient. Web apps are always up to date and pervasive because the Web runtime is everywhere. Some apps only need ever be Web apps.

2. The Web was designed to be a feature-rich hypertext system, not an application runtime and system-wide UI framework. Web apps will never be as good as native apps, something that was rediscovered in mobile devices.

Both are true. Both will be true for a long time to come.


I was just countering the original point that sounded that web apps are slick just because they're web apps.

Sorry, maybe that was written ambiguously, because that wasn't the intended point at all. The point I was trying to make was that the web applications that are slick are taking over the world. Being polished and easy to use is a big advantage, and IMHO there's been a lot more progress on this front in web development recently than in native applications.

In contrast, the mobile platforms are far too much style-over-substance and have glaring usability problems as a result.

Most desktop applications haven't really changed their basic form for decades, they just show up with flat icons and kindergarten levels of bright colours these days. That does mean here is a level of consistency and familiarity, which is valuable. However, it also means most of them aren't benefitting from decades of further experience and research in UI design and from newer UI patterns coming out of that experience that have proved to be effective in other contexts.


This is a very good point. Perhaps it is time to think about what a modern web truly should be.

The web has many things going for it. It's no mystery why it's so popular. It's the leading platform to share information and media with the world. It is also a platform for apps that have a unique and very powerful advantage: you can just link to an app and you can use it just a couple seconds later, everything is automatically saved and loadable from any web-connected device, and if you don't want to use it again you can simply forget about it. This is a much nicer experience compared to manually downloading and installing/extracting an app.

However, the web has many serious problems. The web originated in the early 90s as a way to browse text and images, and new things have been haphazardly stacked on top of that over time, resulting in what we have today. It is a lot trickier to make dynamic content for the web than it should be. Due to the limitations of JavaScript, its web API and the web overall, anything scripted for the web browser feels like it's a flimsy hack. People have made much software to try to make things more sane--jQuery, CoffeeScript, GWT, etc.--but they can't solve the deep architectural problems that the platform faces. The time we could be spending focusing on making cool things is lost trying to wrestle with web browsers to get them to do what we want them to do. That's a huge loss in productivity.

We would all benefit if we redesigned the web from the ground-up.


I disagree with the premise, things have gotten a lot simpler.

I think you need to make distinction between website and web application. The latter came later and is by definition a lot more complex, I assume this is mainly where the premise originates from.

But having gone through building websites with frames, tables, png's for box shadows and border radius, jQuery and php based web apps, and having spend many days making my grunt/gulp/webpack config work and supporting IE, I can with great certainty say things have never been easier than they are now.

Now, is it necessary [to build webapps]; Yes. Usability expectations have gone up, the level of details and polishing has gone up, more interactivity, and more sophisticated visual elements. Webapp now do things native applications could not do back in the day.


So, the thing is... I'm not a webdev, though I've done web development in the distant past (early noughties). I'm not a desktop dev, though again done it in the late nineties and early noughties. I messed around with modern desktop/mobile dev recently (specifically Cocoa) and it's basically fine; in many ways simpler and better abstracted than what I was used to (mostly GTK+ and some win32 stuff back in the day). I looked at modern webdev stuff... and I'm sorry, it's insane. Vast increase in complexity for, for most purposes, no real gains.

I can't think of anywhere else this is the case. If you want to access an SQL database, that's easier than it used to be, and better abstractions on top are available if you want them. If you want to write a web API, that's easier than it used to be, and again nice abstractions are available. If you want to process tens of terabytes of data, that's so much easier it's not even funny. But if you want to write a webapp... unless you totally ignore the modern stuff it's vastly, vastly more complex than it used to be.

I suppose this may be my grumpy old man side coming out, but I really don't find modern single page apps to be a better experience than mid-noughties webapps in the vast majority of cases. They're usually worse; in particular they're usually slower, and mess with UI expectations more. And yet they are _vastly_ more difficult to produce. The whole thing seems like it took a wrong turn somewhere.


that's nonsense. As OP points out the bedrock of the web is a protocol designed for displaying more or less plain text documents from the 90s and everything else is essentially a hack on top of it. Native apps have plenty of ideas worth stealing, it's just that this is pretty tough to do. (the event based style of web apps for example as a mechanism existed forever in just about any desktop ui framework).
next

Legal | privacy