Live data from Hacker News

Why is front-end development so unstable? (2018)

breck-mckye.com

131–140 of 181 posts

Re: Why is front-end development so unstable? (2018)

#131
post #118
post #113

Earlier quoted context omitted.

I've used the same React tech as the basis for most projects for 6 years now. Webpack, Redux, Yarn, React Router, all still popular and maintained. We even used hooks for functional components since then, through the "recompose" library, so there wasn't a big paradigm shift for us. Anyone who feels compelled to jump from one unproven state management library or bundler to another, in serious projects, is just not doi…

> I've used the same React tech as the basis for most projects for 6 years now. Webpack, Redux, Yarn, React Router, all still popular and maintained. We even used hooks for functional components since then, through the "recompose" library, so there wasn't a big paradigm shift for us. Have you worked at different companies or contributed to different OSS projects in those 6 years? If you have, and they've all been set…

> that's rare, but great

Not OP. At a big tech company. As far as I can tell neither myself nor anyone I work with has touched a system developed in the past 6 years that didn't use React with with Webpack and/or Esbuild for the build system. Of those, 90% + used Redux for state management or switched to Redux after starting with a different state management system like mobx or xstate. The only exception to this the only exceptions are apps that needed something Recoil-like (e.g. Redux caused too much computational overhead). Some of them also used Nextjs for static pages.

Re: Why is front-end development so unstable? (2018)

#132
post #56

Frontend is unstable because it attracts ppl whose attention span is often lower than the one of a goldfish. Every JS frontend dev I met was speedrunning trying to prove himself by "inventing something new" which in fact was already a state of art. The amount of rehashing and reinventing the wheel with new catchy names in the field is staggering. TBH, if the field wants to improve -> its time to ditch JavaScript and…

[deleted]

Re: Why is front-end development so unstable? (2018)

#133
I would say the Web is unstable because it's a disruptive platform. Traditionally we build native clients, be it mobile or desktop, that work offline and connect to back end services. The modern web allows for that but in a simple, cost effective and cross platform way.

Naturally this attracts developers from all backgrounds to target this platform for their projects. These various influences puts pressure on the platform to morph to their preferences and with the platform still being young; that pressure (and profitability) means it tries to appeal to everyone, creating issues.

- Privacy

Privacy on the web is a challenge primarily because of government legislation. With the exception of the deprecated third party tracking mechanisms, the issues faced on the browser are no different to those faced by native applications - it's just that the scale of the web is much larger.

Any app, desktop application or website can opt to send user data to a third party. Cross-site cookies allow for customer tracking, but they are being phased out.

Service worker has recently started being used by advertisers for tracking. Generally though, advertiser networks can always operate in silos and request from their partners that they send customer data in exchange for compensation.

As a developer you may inadvertently subject your customers to tracking, for this I would love to see greater script sandboxing capabilities. Right now we have CSP and need to iframe anything we don't want to have access to the parent document - it would be amazing if we could sandbox _scripts_ directly, allowing us to grant no permissions by default and add them.

    
I would also love to see permanent storage (local storage, indexdb, cookie) require a user prompt for approval, where temporary storage (2 weeks) is allowed by default.

- Utility

The web platform has had incredible innovation and is going in a controversial direction that I personally love. While simple documents on the web are great, the platform is increasingly somewhere you can go to interact with rich experiences that operate on every platform.

Some criticize this as overreach of the traditional web, but in reality - Linux can now use MS Word and Photoshop natively on x86, x86_64, ARM, RISC5. Tools we use daily like APMs (DataDog, NewRelic), Google Maps, Email are all available on all platforms without requiring a native client. This is good because no one is going to make Linux clients for these applications.

Electron demonstrates that people want to use HTML/CSS as a UI toolkit (rather than platform native UI kits like QT, GKT, SwitftUI, WinForms, WPF, WinUI, Xamarin, Flutter, etc) and demand greater OS access than installable web applications can offer (like IDEs).

Web assembly demonstrates that people want to update this simple UI model using the language they like the best.

Expanding the Web Sandbox to offer lower level access to things like the permanent storage, filesystem access and hardware through user prompts would eliminate the need for Electron and allow for optimisations in a single browser to operate across these installable applications. The inclusion of Web Assembly would allow for more processor and memory efficient applications to be written - removing the stigma of "those bloated Electron apps"

Perhaps marking your web application as a "wasm" application would allow browsers to trim some JavaScript specific runtime logic allow for smaller memory footprints.

- JavaScript, Testability and Performance

There's a lot of investment in JavaScript tooling and a lot of impressionable developers out there are implementing software that isn't testable or well architected. A lot of these tools are used in improper contexts or, in some cases, are plainly bad tools.

By and large, JavaScript is a great language - or more specifically, a great compile target. A lot of the issues with JavaScript can be resolved by applying a pre-processor like TypeScript to it.

The ecosystem is a point of critique. Being as open as it is, it's unopinionated, lacking a standard library or tools and engineers must stitch together their projects. By comparison - Rust, Go, Kotlin, Swift all offer rich test tooling and strong standard libraries.

As a language itself, the language features of JavaScript have become an amalgamation of various developer preferences. Being that it's the only language that can be executed in the browser - it is under a lot of pressure to morph into every other language used by web developers.

If Web Assembly ends up replacing JavaScript as a compile target, the web would become a significantly nicer place to develop for as you can pick your language ecosystem of preference.

Some languages are better suited to testing, have better tooling or dependency management.

Some languages have access to better multi threading APIs and some languages have more efficient runtime performance. These would bring the development and user experiences on the web as comparable to native applications in performance.

- Rant on WASM

That said, WASM has been the biggest tease for me as they have over promised and under delivered. 5 years ago they were talking about it as a replacement for JavaScript as a compile target for languages like TypeScript, Go, Rust. Smaller binaries, faster parsing, better runtime performance and multi-threading support. Here we are today and I still can't make a div from my WASM-compiled C project.

Re: Why is front-end development so unstable? (2018)

#134

Earlier quoted context omitted.

I don't know one single UI/UX development environment which is elegant and nice. From Android to iOS to Linux to Linux and Windows to browser UI kits. They are all complex and require constant searching for answers. The libraries are very big and require a complex tooling setup. You can never be an expert in all of them. At least not me.

Pretty much anything after C/C++ era comes with a usable build system, modules and a package manager. JS is really stuck dealing with insanely low level issues in shit ways for various historic reasons. As shitty as Android support matrix can be - it doesn't compare to IE6 web days (at least in terms of UI development, stuff like OS services is entirely next level - but you can't even start doing that in JS so it's n…

As somebody who followed both Android and web dev, Android UI development was much clunkier. A lot of the patterns in use today (like React's declarative patterns) started in web dev before being adopted by Android. Not to mention, Java's package system was much more annoying to work with than NPM.

Re: Why is front-end development so unstable? (2018)

#135
post #5

UI/UX is a fundamentally flawed field for a number of intersecting reasons, most of which boil down to not really distinguishing between when it's doing engineering, when it's doing psychology, and when it's doing fashion. And these days, on web apps and mobile apps, it mostly does fashion. Fashion must change for the sake of change. To more easily support these frequent changes, more libraries get invented to make d…

90% of UI/UX people could disappear overnight and nothing would change. Things might actually get better because they aren't doing a pointless UI overhaul every 6 months.

Wow this is a big, and dare I say baseless, statement. Consumers want and enjoy good UX/UI. If 90% of UI/UX people disappeared, the 10% that were left would be in such high demand that more people would become UI/UX people and fill the gap. And it's not just enjoyment either, there are plenty of examples where UI/UX make a huge difference in the usability of products

Re: Why is front-end development so unstable? (2018)

#136

Earlier quoted context omitted.

I'm the author and I agree. Things have slowed down and matured. The "JS moves too fast" meme is well out of date, and in fact I wrote a comment here a few hours ago bemoaning it

I don't know what it's like these days but I recall especially the pernicious 'evangelism'. People on a literal salary promoting frameworks like they were from marketing. As a bargain basement, self-taught, late web 1.0 dev more comfortable on the server side I remember rake-stepping the undiscussed limitations of Backbone JS, and then studying the ridiculous complexities of Angular 1 while reading post after post of…

> and then learning that the great leap forward for Angular 2 was "yeah we're going to throw all that bullshit out we were wrong.

I wasn't in webdev-land when the migration happened, but as someone who maintains both AngularJS and Angular2 code, they don't seem all that different.

Especially considering the later versions of ng1 tossed out all the globals (components with isolate scope by default) and moved to class-based directives. And then ng2 came along and rewrote everything into a prettier API (typescript with decorators and shit). But otherwise they both seem to have the same design when it comes to change detection, dependency injection, controllers / views, etc.

Re: Why is front-end development so unstable? (2018)

#137
post #18

Earlier quoted context omitted.

I think you make a fair point but on the other hand I don’t see many “top 20 alternatives to http in 2022” articles (which implies there are more than 20 alternatives) like we have for front end technologies. I.e. https://www.netguru.com/blog/front-end-technologies

I think part of it is also level of effort. You could right click "inspect element" in any browser and mess around in the html or the JS console and see things happening live. This is an extremely low barrier to entry. Low barriers to entry are good, our profession is very well compensated and developed economies could certainly use low effort ways to get people from lower compensated jobs into higher compensated job…

Yeah but to be good, you have to have like at least 5 years of experience shipping stuff. It's kind of like going through many years of law/medicine school.

Re: Why is front-end development so unstable? (2018)

#138
post #39

Earlier quoted context omitted.

I don't know one single UI/UX development environment which is elegant and nice. From Android to iOS to Linux to Linux and Windows to browser UI kits. They are all complex and require constant searching for answers. The libraries are very big and require a complex tooling setup. You can never be an expert in all of them. At least not me.

My pet hypothesis for years has been that developers always vastly underestimate the difficulty of doing a UI framework or environment. They think it'll just be a matter of painting widgets and presenting data. As a result they under-build the foundation. The insufficient structure is then released out to the world for everyone else to build upon. Once people realize the soul devouring chthonic difficulty of doing go…

> developers always vastly underestimate the difficulty of doing a UI framework or environment

Developers, managers, designers, executives, the whole process chain underestimates the complexity of building a stable and maintainable UI.

Everyone feels in their gut how complex building out a data processing pipeline or a scalable backend should be, but even people who should know better can't help but think of the UI as the "easiest" part.

In my experience, the only solution is forced minimalism. A sort of "Dogme 95" for UX. Force your UX to be a haiku, not an open-ended novel. This means pushing back hard on unnecessary complexity and focusing like a laser on what really matters.

In other words, the problems might be technical, but the solution are likely political.

https://en.wikipedia.org/wiki/Dogme_95

Re: Why is front-end development so unstable? (2018)

#139

Earlier quoted context omitted.

I had to read your comment twice to be sure we're talking about the same Kendo. I've consulted for a number of companies over the years who have used it (or tried to use it), ever since the jQuery version to up until now, and it's always been pure pain. I understand how their components work, I understand the underlying architecture because I've stepped through it too many times with a debugger, and I still always fa…

I don't agree with you but I don't disagree either. Our use cases are very vanilla, and now that I have quite a bit of sway in my team, when people deviate from the showcased Kendo way, I push back and see if the desired way deviating from Kendo is a necessity or a nice to have. If it's the former, we sometimes have the experience you described, though I've often be helped by stackoverflow, their forums or Kendo's su…

You’re glowing, man.

Re: Why is front-end development so unstable? (2018)

#140
What did this reference to deliberate suppression? I’m aware of Medium but don’t know what OP is referring to here:

> You miss the replies pointing out some critical inadequacies in X.js, because Medium deliberately suppresses them, and move on to finding a _Y_.

Post reply on HN