News for hackers. Stuff that matters.
Re:Why is front-end development so unstable? (2018) by jbreckmckye on Monday May 30, 2022 @04:49PM (#31563491)
I'm the author of this piece. I no longer think front-end suffers the instability people accuse it of.

I think there are a lot of _vendors_ trying to usher in a revolution around their particular products - there's a lot of VC funding in JavaScript tooling nowadays - but that's a different problem.

Re:Why is front-end development so unstable? (2018) by ricardobeat on Monday May 30, 2022 @05:21PM (#31563749)
You covered the frameworks, but a lot of the feeling comes from the tooling and library ecosystem. For example, a recap of the last 10 years:

- grunt / broccoli / gulp / browserify / webpack / metro / esbuild / parcel / swc / turborepo / bun

- flummox / redux / unstated / mobx / mobx-state-tree / xstate / apollo / apollo-link-state / swr / react-query / zustand / recoil / jotai

And this is just within React, and off the top of my head. Then you add all the ECMAScript versions, browser feature churn, node.js, npm/yarn, immutability, classes, functional components, hooks, fiber, the list goes on and on.

Re:Why is front-end development so unstable? (2018) by korm on Monday May 30, 2022 @07:05PM (#31564571)
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 doing their due diligence.

Re:Why is front-end development so unstable? (2018) by scrose on Monday May 30, 2022 @07:25PM (#31564685)
> 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 up exactly the same as what you mentioned, that's rare, but great. I think most people's qualms on the amount of different frontend tooling is based on the fact that almost every company or OSS maintainer takes different approaches to accomplish essentially the same thing.

Re:Why is front-end development so unstable? (2018) by Hermitian909 on Monday May 30, 2022 @08:07PM (#31564905)
> 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) by hansworst on Tuesday May 31, 2022 @06:37AM (#31567964)
I’ve experienced similar thing wrt the build system, but haven’t used redux in all but one of the React projects I’ve worked on as a full time product engineer over the past couple of years.
Re:Why is front-end development so unstable? (2018) by korm on Monday May 30, 2022 @07:41PM (#31564775)
Yes to both, and I can't say many projects followed a radically different approach, at least without good reason. Webpack and Redux for example are many times more common than something like Parcel or Jotai, so it's rare to encounter many of these alternatives in one project.
Re:Why is front-end development so unstable? (2018) by thepasswordis on Monday May 30, 2022 @05:48PM (#31563987)
Just to chime in here for anybody reading along:

I work full time as a software developer doing react. I have got literally no idea what almost everything you listed is.

"Broccoli"?

I have heard: grunt, gulp, webpack, metro, redux, and recoil. The rest of those could be sarcasm for all I know.

Re:Why is front-end development so unstable? (2018) by ricardobeat on Monday May 30, 2022 @05:53PM (#31564030)
These are only the mainstream ones I can remember, there have been a ton more! I guess if you've started post-2018 things have been a bit more stable, but there was quite a bit of churn to get here. And it's still happening - no two React projects are alike even in the enterprise.

https://github.com/broccolijs/broccoli

Re:Why is front-end development so unstable? (2018) by mccorrinall on Monday May 30, 2022 @06:27PM (#31564303)
That’s because react is a library, and not a framework. React doesn’t have opinions, that’s why you can find 300 state management libraries and 200 routers which do the same thing, just in different ways.
Re:Why is front-end development so unstable? (2018) by throw_m239339 on Monday May 30, 2022 @06:48PM (#31564458)
> That’s because react is a library, and not a framework.

React should be considered a framework.

React absolutely imposes a data model (unidirectional workflow) to the developer thus a certain code structure. The fact that it is light weight compared to Angular doesn't change the fact that React is a front end framework. React usage completely replaces the traditional way to interact with the DOM and manage DOM events, thus abstracting it.

> React doesn’t have opinions,

React becomes very hard to use if your data model isn't organized to suit React architecture.

It doesn't have opinions about everything (like AJAX or SPA routing) but it absolutely has an opinion about how you data objects should be structured.

Re:Why is front-end development so unstable? (2018) by mccorrinall on Monday June 13, 2022 @08:27AM (#31724508)
Quote from reactjs.org: A JavaScript library for building user interfaces

Literally on the start page

Re:Why is front-end development so unstable? (2018) by jhanschoo on Tuesday May 31, 2022 @04:27AM (#31567232)
Indeed, it's unfortunate that React bills itself, in its front-page copy, as a library and not a framework, out of a desire to emphasize its portability and being "lightweight"; but the day-to-day of building a React app is more that of working in a framework than calling library functions.
Re:Why is front-end development so unstable? (2018) by abraxas on Monday May 30, 2022 @07:03PM (#31564562)
If you don't know these words you haven't been coding JS long enough. Those like myself who started in 2014 or earlier know all of those and more (anyone still remember shrinkwrap for example)?
Re:Why is front-end development so unstable? (2018) by xwolfi on Monday May 30, 2022 @07:23PM (#31564666)
Depends HOW you coded. I started JS at 11 yo in 2001, and became fulltime around 2012 - 2 more years of JS than you, I'm your grandaddy in this ever changing mess... I do not know Broccoli either. Googling it: "A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions" I raise my eyes to the ceiling and whine "why the hell isn't there an Oracle or IBM for JS to finally standardize just building crap".

It's probably cause I switched 4 years ago from the typical perma-migration grind to rarely using any framework and coding JS like I code the backend. Simple service classes in pure JS, rare dependencies, simple build. I once ditched years of work by a team of 40 to rewrite "everything" in low level javascript and showed the guys that what we spent all this years writing, really, was useless: did we need that enormous angular runtime config resolver that would draw generic components reading from crafted json configuration ? Or could we just write the damn things as we mean it in... javascript directly ?

Don't use a JS framework as long as you can help it, just the simple fact you can trace the whole function chain in a few seconds, vs reverse engineering the damn VueJS, or React, or Angular (does that monster even exist anymore, we hear about it a lot less than when it was all-encompassing, 8 years ago) plumbing, is worth it.

And son, if you want some war stories from your granddad, have you heard of jQuery ? :D

Re:Why is front-end development so unstable? (2018) by abraxas on Monday May 30, 2022 @07:40PM (#31564769)
Very, very few places will let you not use a framework nowadays. There is a ton of cargo culting around JS frameworks and coding vanilla is pretty much heresy land these days. Personal projects? Go for it. Commercial apps built for your employer? Good luck with that. Not only will you be raked over the coals for "reinventing the wheel" you'll also be blamed for any stumble along the way, whether it's related to using vanilla or not.

> if you want some war stories from your granddad, have you heard of jQuery ? :D

Bah, whippernsapper! I cut my baby web teeth on CGI and spent the bulk of it in Struts and JSF. Remember THOSE?

Re:Why is front-end development so unstable? (2018) by xwolfi on Thursday June 02, 2022 @12:27AM (#31591357)
I was "born" after Struts was "obsolete" (so I had my honeymoon phase with Spring/Hibernate until I fixed so many mistakes in companies I decided using smaller surface tools and closer to the metal queries would actually save time) and never touched JSF :D CGI for me is prehistory loool.

However, employers dont need to be involved in choosing a framework or not. You ll notice that usually its the little bees building their resumes that bemoan non stop about migrating from react to vue or vue to react :D

I never heard a sales guy tell me: WHAT, it works fine, is cheap to maintain and has no stupid 10k levels dependency graph in npm ? I ll stop making money on this until you completely "standardize" it into a moving sand on npm. And dont forget a pipeline of 3 transpilers, you wouldnt want to write in a browser-native language, caveman.

I do use requireJS to split in nice files and import easily though I admit.

Re:Why is front-end development so unstable? (2018) by tomcam on Monday May 30, 2022 @11:37PM (#31565882)
No I don’t. I was too busy programming ENIAC using patch cables. Grace Hopper once made a snide remark about it after lunch. She smelled like corned beef hash.
Re:Why is front-end development so unstable? (2018) by meowtimemania on Tuesday May 31, 2022 @02:58AM (#31566804)
Broccoli I believe is still used to build ember projects
Re:Why is front-end development so unstable? (2018) by cehrlich on Monday May 30, 2022 @05:57PM (#31564069)
It’s true that there are a lot of different ways to do the same thing, but the good news is you’re doing the same thing and the difference is mostly just syntax. Someone who has used Redux extensively can get up and running with Zustand in no time, and vice versa. Likewise React Query and Apollo Client are basically the same thing.

Build tools are a bigger issue, but fortunately most front end devs don’t actually need to deal with them all that often.

Re:Why is front-end development so unstable? (2018) by msie on Monday May 30, 2022 @07:46PM (#31564807)
As if it's so easy to move from one thing to another. Yikes!
Re:Why is front-end development so unstable? (2018) by azemetre on Tuesday May 31, 2022 @09:17AM (#31569123)
Some libraries will create code mods to assist in transitions. For example I've used some MUI codemods in the past to make transitions to newer versions of the library more seamless [1].

There are also codemods to say move from underscore to lodash and vice versa (been a while and can't find them at the moment).

ASTs [2] are pretty cool in this regard. Especially if you write your code in a manner that easier to automate against.

[1] https://github.com/mui/material-ui/blob/master/packages/mui-... [2] https://en.wikipedia.org/wiki/Abstract_syntax_tree

Re:Why is front-end development so unstable? (2018) by madeofpalk on Monday May 30, 2022 @07:42PM (#31564786)
Postgres, mysql, mariadb, cockroachdb, Prometheus, neo4j, firebase, dbaas. The list goes on and on.

Multiple things exist. That’s fine and healthy? You don’t need to know absolutely everything.

Re:Why is front-end development so unstable? (2018) by jhgb on Monday May 30, 2022 @07:45PM (#31564800)
There's people out there who chose PostgreSQL twenty five years ago and found out since to have made the right choice. Not sure if that can be said of any item on the list you were responding to.
Re:Why is front-end development so unstable? (2018) by Shalomboy on Tuesday May 31, 2022 @11:32AM (#31570718)
I would be thrilled to work someplace that uses neo4j. Such a good graph dbms. Too many folks believe the only way to organize data is with relational tables.
Re:Why is front-end development so unstable? (2018) by mouzogu on Tuesday May 31, 2022 @03:55AM (#31567076)
and now its all use Deno and Svelte bro. 6 months it will be you're still using Deno and Svelte, should be using XDenoX and ReSvelte (or something).
Re:Why is front-end development so unstable? (2018) by nawgz on Monday May 30, 2022 @05:31PM (#31563843)
Webpack has been the de facto build system for react since 2017

Competing state libraries is to be expected but picking redux or mobx has let you use the same ones since 2017

JS itself has improved but hasn’t really ever deprecated anything, it just grows and adds terse methods to the language

Npm and yarn are among the best package managers

React hooks were the only major change you’ve touched on but even they didn’t deprecate class based react or change library semantics very significantly

Re:Why is front-end development so unstable? (2018) by ricardobeat on Monday May 30, 2022 @05:34PM (#31563869)
These are not really counterarguments to the fact that things change a lot here, and newcomers and veterans alike need to continuously learn, and pick the best. None of these started off as the default choice, I remember when each and every one of these was the weird / risky option.
Re:Why is front-end development so unstable? (2018) by nawgz on Monday May 30, 2022 @06:55PM (#31564502)
They are very much counter arguments to the idea that there is big churn still happening.

Webpack 2 was in CRA in 2017

Redux and MobX have been the #1 and #2 state managements for that whole span, and clearly all the observable libs are successors of MobX after Proxy came out

Every language changes, many with breaking version changed that JS avoids

I don’t know how you’d point at package management as an issue in JS land

It’s just that every single popular community has massive amounts of clones or similar libraries, I don’t know how that qualifies as “churn” though. I maintain my 2017 apps including major version bumps with no issues today, using the same libraries and tools. The argument you’re making was fine in 2016 but is half a decade out of date.

Re:Why is front-end development so unstable? (2018) by ricardobeat on Tuesday May 31, 2022 @02:44AM (#31566737)
> I maintain my 2017 apps including major version bumps with no issues today

Sorry but I have to call bullshit on that, unless you’re taking about tiny one page “apps”. Webpack alone has gone through five major revisions in this time, with large breaking changes meaning all of your plugins and babel extensions needed upgrading (sometimes not readily available), rewriting the entire config, even before you get to upgrade React and dependencies. React Native has changed massively in this timeframe, I’m talking complete API refactoring and packages moving around, not simple function signature changes.

This is simply not reality for people working tech jobs.

For a glaring example, you say it’s #1, but Redux is dead in the water. I haven’t interviewed a single person in the past two years that wants to use it. The creators have been recommending “just using react.Context” for years and that has clearly had an effect.

Re:Why is front-end development so unstable? (2018) by nawgz on Tuesday May 31, 2022 @03:54AM (#31567071)
> > I maintain my 2017 apps including major version bumps with no issues today

> Sorry but I have to call bullshit on that, unless you’re taking about tiny one page “apps”

What a strange stance. It's a React/MobX collaborative model editing internal tool deployed in production to users who generate and analyze models with it. It started on Webpack 2 and React 15 and MobX 4, now it's on Webpack 5 and React 17 and MobX 6. I of course had to update some babel configurations but it was much more version bumping than configuration rebuilding. It still uses decorators and looks like complete dog-shit, and that's my point: the same tricks and patterns available then are not only there, but working identically now.

Re: native, I don't believe in React Native or any webview-based "native" replacement anyways, but it's easy to do this as my user-base is interacting with this app from their company-provided laptops anyways. I would willingly concede React Native is an environment with churn, I don't really recall RN every reaching meaningful stability

> Redux is dead in the water

https://www.npmjs.com/package/redux shows 7M downloads weekly

https://www.npmjs.com/package/react-redux shows 5M

https://www.npmjs.com/package/@reduxjs/toolkit shows 1.5M

MobX / MobX React are around 1M/700k

Your list of "flummox / redux / unstated / mobx / mobx-state-tree / xstate / apollo / apollo-link-state / swr / react-query / zustand / recoil / jotai" seems to peak at 500k with the exception of "react-query", which I don't really see as applicable to a conversation about state management. Overall, this list perfectly illustrates my point that there's new stuff but you don't need to know it, and the value props aren't convincing alive-and-well shops to drop everything and rebuild

> you say it’s #1, but Redux is dead in the water

I never personally believed in Redux, it struck me as a terrible pattern from the start, thus why I selected MobX; but I find it difficult to believe that you really think React Context scales the same way building an external state management tree does. I like React Context, but it doesn't do a very good job of hiding away complexity from the developer as the application grows. Not to mention it does no render-optimization for you.

Again, I'm not saying things don't change or that there's not alternatives, but I am saying that someone who learned fundamentals in 2017 is still able to get up-to-speed in the updated versions of the library kings of 2017 in virtually no time, and deliver standard-fare webapps. I say this because I've worked at the same place for over 5 years, I use the same tools, and my users regularly are telling me the tools my team puts in front of them are the gold standard. The churn is long gone, everything you describe would have perfect analogues in any other popular modern language / library ecosystem.

Re:Why is front-end development so unstable? (2018) by ricardobeat on Tuesday May 31, 2022 @05:46AM (#31567631)
> I find it difficult to believe that you really think React Context scales the same way

I don't, and I find the advice on this subject found around the web pretty terrible. But it's the position you'll most often see from React core team and people selling online lessons.

jQuery is still used in > 50% of websites. Popularity in numbers lags way behind developer adoption.

I've been involved in multiple new product development efforts in the last decade, and can tell you it looks a lot different from maintaining one stable product. And it's sped up by 10x if work at an agency putting out a different project every 2-3 weeks. This is where the fatigue comes from.

Re:Why is front-end development so unstable? (2018) by nawgz on Tuesday May 31, 2022 @09:31AM (#31569235)
Lol, where did you get that I maintain one stable app from? I additionally don’t see how your working conditions relate to churn in JS given that you could use the same stack for each of those projects, as I said, as far back as 5 years ago
Re:Why is front-end development so unstable? (2018) by ricardobeat on Tuesday May 31, 2022 @11:54AM (#31571039)
You said 'It's a React/MobX collaborative model editing internal tool' so I assumed you're commenting based on that particular project. It's not a value judgement either way.

The kind of development you do (product / projects / marketing) makes a huge difference in your experience, how often you get to start from scratch (= latest versions of everything) vs maintaining existing codebases. I don't think that's controversial. You could use the same stack for every project, but people and teams change and want to catch onto the latest "advancements" in the field.

Re:Why is front-end development so unstable? (2018) by nawgz on Tuesday May 31, 2022 @02:05PM (#31572768)
Yes, this whole time you’re assuming I’m doing the bare minimum, and that no one could be using the same tools.

Yet, here I am, new apps in hooks based react, old ones not, and the same stack delivering great performance in either case - DX is only suitable in some tho

I’ve used Context only, SolidJS, Angular, whatever you like these days, I still would only build real apps with MobX. Typescript is the only real change since 2017 you need, otherwise what’s newer is not what’s better since then. That’s the point. Take care and try to not get lost in the noise, it’s very different than what came before it

Re:Why is front-end development so unstable? (2018) by abraxas on Monday May 30, 2022 @07:05PM (#31564577)
> Webpack has been the de facto build system for react since 2017

lol and that's why we saw the emergence of rollup and parcel and snowpack and whatever the hell else came along since then?

Re:Why is front-end development so unstable? (2018) by nawgz on Monday May 30, 2022 @07:20PM (#31564649)
I’ve never seen a situation where someone hasn’t tried to rebuild something that’s already working (in a big community like JS land). Some people wanted more performance from their build systems, some people like other languages to do the transpilation, some people thought the configuration options were too heavy and opaque. That’s why we saw ESBuild and rollup.

But CRA is still on webpack, and CRA is still the de facto default way to make a new react app. I don’t really see the fact that alternatives exist as implying churn when the same option has been the longest living and most popular.

Re:Why is front-end development so unstable? (2018) by pljung on Monday May 30, 2022 @04:58PM (#31563567)
I enjoyed reading your article, thanks for writing it. I think your recommendation to new devs to focus on Next.js in 2018 (!) was prescient.

> I no longer think front-end suffers the instability people accuse it of.

Do you mind elaborating why you believe this is the case?

Re:Why is front-end development so unstable? (2018) by dylan604 on Monday May 30, 2022 @05:12PM (#31563670)
>to focus on Next.js in 2018 (!) was prescient.

now that it is 2022, what's the new flavor that would be prescient? I don't ask to actually know, but to reiterate the problem of nothing being solid in this world.

Re:Why is front-end development so unstable? (2018) by vosper on Monday May 30, 2022 @05:18PM (#31563721)
NextJS is still looking pretty good if you're in React land. There's new competition, like Remix, Astro, etc... but I don't see any of them putting NextJS to bed. I'm starting a new application, and I'm still choosing NextJS.

(Now what you couple with NextJS for data access is an interesting question - this is where there's a lot of innovation. Personally, I'm going with tRPC. I would look at Edge DB, but in this application I'll need a recursive CTE and Edge can't do it.)

Edit: I do think Astro might replace NextJS for purely-static sites, or ones where the "islands of interactivity" pattern is compelling.

Re:Why is front-end development so unstable? (2018) by markhesketh on Monday May 30, 2022 @05:19PM (#31563729)
I'm not in the JS space, but if my twitter feed is anything to go by it'll be https://remix.run/
Re:Why is front-end development so unstable? (2018) by Jenk on Monday May 30, 2022 @05:20PM (#31563738)
Still next.js, probably. Keep an eye on Svelte.
Re:Why is front-end development so unstable? (2018) by nextaccountic on Tuesday May 31, 2022 @12:47AM (#31566198)
I think sveltekit will gain a lot of momentum
Re:Why is front-end development so unstable? (2018) by dgb23 on Monday May 30, 2022 @05:01PM (#31563590)
Some of the vendor backed libraries are among the best. But generally I would agree that marketing, especially certain types, generates a ton of noise, like you beautifully illustrated in your article. I think navigating the web with a BS filter on is an important skill to have.