Live data from Hacker News

Why Is the Front End Stack So Complicated?

matt-rickard.com

61–69 of 69 posts

Re: Why Is the Front End Stack So Complicated?

#61
post #8

Earlier quoted context omitted.

This is the entire reason. HTML, JS, and CSS weren't designed for their current purpose and updating them requires slow coordination across browser developers. Once you start using compile-to-JS and get out of the JS ecosystem mess, the developer experience suddenly feels much less complicated.

What specific compile-to-JS ecosystem do you have in mind? I don't think I've encountered one that doesn't add complexity and layers of indirection. It may be worth it, but it doesn't come for free. The easiest approach I've ever worked with is vanilla JS. But of course, building complicated stateful apps without a view layer like React is its own complication.

We've had good success with Blazor. The abstractions haven't been leaky. I haven't used it, but supposedly Kotlin-to-JS is excellent as well (and gives you access to a stunning amount of the JVM ecosystem at the same time). People on HN rave about Elm, too.

Re: Why Is the Front End Stack So Complicated?

#62

It is rather simple why: Frontend is not linear programming, most backend actions are single-flow (on A do B), in frontend at any point the user can interrupt things, which calls for state management. Most backend applications are stateless and state management is outsourced to a database which does the heavy lifting. So the complexities are in scaling. Maintaining a complex frontend application is akin to maintainin…

Yep. Modern clients are complicated because state management is complex. Ironically, that's what the early web largely got rid of - for example this web page I'm using now has very little state to manage.

yeah, because keeping state in a backend-cookie-based-session was a huge pain in the ass

Re: Why Is the Front End Stack So Complicated?

#63

It is rather simple why: Frontend is not linear programming, most backend actions are single-flow (on A do B), in frontend at any point the user can interrupt things, which calls for state management. Most backend applications are stateless and state management is outsourced to a database which does the heavy lifting. So the complexities are in scaling. Maintaining a complex frontend application is akin to maintainin…

Another wrinkle - lots of web apps have a need to say, I’m going to give you one bundle of JS for this whole hostname, regardless of URL, but then have to handle getting loaded from arbitrary URLs (that may have semantic meaning for your server) anyways. Everyone gets the complexity of a URL document hierarchy, even if your web app isn’t document-based.

true, it is called routing. But to be fair most mobile apps also have routing, usually with semantics similar, but still different, from web-based routing. The reason mobiles apps have it is for deeplinking.

Old school desktop applications didn't really have deep linking, even today it is quite uncommon (with the exception to trigger some action in the app like opening a file as opposed to navigation)

Re: Why Is the Front End Stack So Complicated?

#64
post #46

Earlier quoted context omitted.

There is nothing you can do in the front end that a .NET Forms application from a few years ago could not also easily handle. And the .Net forms application would be immeasurably simpler in terms of complexity and as a bonus, would have the backend thrown in almost for free as well. I deliberately picked .Net forms because despite being much simpler than today’s front end stacks, it was still, much like any MS produc…

Rendering 3d VR environments with interactive points of interest, live video players with real time highlight markings and sport standings with graphs comparing parallel games in the same league, having online conferences with 20K visitors that can interact with each other through (video) (group) chat. Sweet.

Ok, agreed that 1% of all apps need a complicated tech stack. Meanwhile the bulk of all web development is simple CRUD forms and reports.

Re: Why Is the Front End Stack So Complicated?

#65

I see a couple of things. 1) Some front end needs and/or frameworks were developped by companies having a scale and pool of talent justifying the needs for new tools tailored to their use cases (extreme audience = need to address many user specificities + pool of talents means the best brains on this planet invent something: doesn't help in coming up with a trivial solution). React, Flutter, AMP. 2) During the zirp,…

Personal goal: Build an entire SPA running on PostGres. No microservices, no CAP, no reverse proxy, no caching, just a boring boring app that works.

Re: Why Is the Front End Stack So Complicated?

#66
post #50

Earlier quoted context omitted.

Windows native desktop apps are OK in some controlled (or mandated) environments. For example, 20 years ago I was working for a large company that handed only Windows XP laptops to every single employee. But what if the customer has a mix of Macs, Windows, Linux laptops? Or if before even getting there, they think that they want a web app so they engage only companies that build web apps? A native desktop app will ne…

Yes update speed, iteration speed and general ease of deployment is a huge part of it. Also the ability to develop on Mac/Linux but deploy to Windows. One of the popular features of the desktop deployment tool I like to shill here sometimes is web-style "aggressive updates", which basically means synchronous update checks on every launch. If the user starts the app and there's an update available a delta is downloade…

If memory serves correctly, I think that's close to how ClickOnce worked/works? - but Windows only. One of the apps I worked on does it, but it was a homegrown framework. Definitely the sort of thing it's nice to delegate to a specialized system where possible.

Re: Why Is the Front End Stack So Complicated?

#67
post #46

Earlier quoted context omitted.

Rendering 3d VR environments with interactive points of interest, live video players with real time highlight markings and sport standings with graphs comparing parallel games in the same league, having online conferences with 20K visitors that can interact with each other through (video) (group) chat. Sweet.

Ok, agreed that 1% of all apps need a complicated tech stack. Meanwhile the bulk of all web development is simple CRUD forms and reports.

You mean need to be desktop clients.

Re: Why Is the Front End Stack So Complicated?

#68

Earlier quoted context omitted.

Yes update speed, iteration speed and general ease of deployment is a huge part of it. Also the ability to develop on Mac/Linux but deploy to Windows. One of the popular features of the desktop deployment tool I like to shill here sometimes is web-style "aggressive updates", which basically means synchronous update checks on every launch. If the user starts the app and there's an update available a delta is downloade…

If memory serves correctly, I think that's close to how ClickOnce worked/works? - but Windows only. One of the apps I worked on does it, but it was a homegrown framework. Definitely the sort of thing it's nice to delegate to a specialized system where possible.

Well Java Web Start could do it also I think, but none of these systems are active anymore and of course none of them were a "native" desktop experience.

Re: Why Is the Front End Stack So Complicated?

#69
post #67

Earlier quoted context omitted.

Ok, agreed that 1% of all apps need a complicated tech stack. Meanwhile the bulk of all web development is simple CRUD forms and reports.

You mean need to be desktop clients.

Nobody will download a desktop app to visit a marketing campaign about the future of IOT, watch a sports event, or to visit an online conference.

And if they would it would all be electron wrapping a website anyway.

Post reply on HN