Live data from Hacker News

Why Is Front-End Development So Unstable?

breck-mckye.com

51–60 of 366 posts

Re: Why Is Front-End Development So Unstable?

#51
This problem is way deeper than web front ends. There were/are dozens of frameworks for Windows and Unix front ends too, before browsers were invented. Every year or two some new tool became popular which made all the previous ones obsolete.

Re: Why Is Front-End Development So Unstable?

#52

Earlier quoted context omitted.

jQuery is great for small snippets of code, but encourages a quick and dirty style that collapses for larger applications. Most jQuery applications couple their business logic to the mechanics of working with the DOM. It was also intended to smooth over browser inconsistencies and gaps in APIs. This is less relevant these days now that browsers are more mature.

> jQuery is great for small snippets of code, but encourages a quick and dirty style that collapses for larger applications. I keep hearing (well, reading on HN) criticisms of this sort about jQuery and they are absolutely not supported by the years of experience I have using jQuery for front-ends that have in many cases been quite complex. I use it because it greatly simplifies DOM manipulation and event handling. (…

The fact that you're keeping track of your actual DOM and event handling at all? That's what I got sick of. Going from jQuery to React was a huge breath of fresh air.

Re: Why Is Front-End Development So Unstable?

#54

This is a really well-written and well-thought out piece. The author touches on a number of points but never gets polemical. This piece resonated with me particularly well: > Be wary of self-promotion > Over the last few years I’ve seen much more aggressive self-marketing in the JavaScript world, possibly due to the rise of paid online training materials and the employment/consulting advantage of being a Github ‘cele…

It's a problem for other communities, like Python. I read a blog post recently from a well known python dev where he talks about explicitly cultivating "fame" around his open source tools. My experience, as one who has tried to promote my own tools, is that literally nothing good will come of it for the community as a whole. It's a bad practice in my opinion.

For example: https://github.com/pypa/pipenv/issues/2228

Re: Why Is Front-End Development So Unstable?

#55
post #2

"Unstable", "Issue", "Problem". The opposite of the front-end world is not something to desire. Change means people are fixing problems and giving away their solutions for free. To desire less change means wishing fewer people gave away their work.

Change is good, the issue is instability and volatility. Things have breaking changes far too quickly.

Re: Why Is Front-End Development So Unstable?

#56
Web frameworks are churn-y because they are incredibly leaky abstractions covering really awkward impedance mismatches. This means that they are never quite satisfactory - and that just to use one, you need to be capable of building a new one yourself.

Think of a typical web app. Your data exists:

1. As rows in a database, accessed via SQL

2. As model objects on the server, accessed via method calls and attributes

3. As JSON, accessed via many HTTP endpoints with a limited set of verbs (GET/PUT/POST/DELETE)

4. As Javascript objects, accessed via (a different set of) method calls and attributes

5. As HTML tags, accessed via the DOM API

6. As pixels, styled by CSS.

--

Each time you translate from one layer to the next, there's a nasty impedance mismatch. This, in turn, attracts "magic": ORMs (DBObject); Angular Resources (RESTJS Object); templating engines (JS ObjectDOM); etc. Each of these translation layers shares two characteristics:

(A) It is "magic": It abuses the semantics of one layer (eg DB model objects) in an attempt to interface with another (eg SQL).

(B) It's a terribly leaky abstraction.

This means that (a) every translation layer is prone to unintuitive failures, and (b) every advanced user of it needs to know enough to build one themselves. So when the impedance mismatch bites you on the ass, some fraction of users are going to flip the table, swear they could do better, and write their own. Which, of course, can't solve the underlying mismatch, and therefore won't be satisfactory...and so the cycle continues.

Of these nasty transitions, 4/5 are associated with the front end, so the front end gets the rap.

(I gave a lightning talk at PyCon two weeks ago, about exactly this - stacking this up against the "Zen of Python" and talking about some of the ways we avoid this in Anvil: https://anvil.works/blog/pycon18-making-the-web-more-pythoni...)

Re: Why Is Front-End Development So Unstable?

#57

It's because of all the icky data-sync for the client/service round trips. An async, slow, failure-prone concern wired throughout the entire codebase. I/O hurts everyone in subtly different ways and it's hard to solve so you see a lot of churn. service/database has this problem too (the ORM flamewars of the 00s) but to a much less degree because it is in a happier place on the latency chart: https://gist.github.com/j…

Not really - those things exist in native frontend as well but it's more stable than js. Writing GUI is not trivial, people take stuff like data binding/templates/MVC etc. for granted nowadays, go check out early desktop UI libraries like say win32/MFC/winforms/gtk+. Took a long time to get to stuff like WPF, Qt quick, etc.

With browser there were several constraints :

ES5 is extremely error prone and scales very poorly to larger codebases

slow JS VMs

missingt for sane layout like flexbox

1. Got better with npm, we pack, es6 transpilers, typescript/flow and tooling built along the way

2./3. Got solved by finally depricating everything I'd say angular is relatively stable now and decently productive once you get a hang of their patterns, I've been using it for different frontend projects since early betas, written ionic apps for mobile with it - have very few complaints about the framework, some of the stuff didn't always work along the way (like ahead of time compilation, i18n) but recently (5+) I've had 0 issues with the framework and I'm quite productive with it. I think the alternatives will mature as well and things will settle.

Re: Why Is Front-End Development So Unstable?

#58

It's because of all the icky data-sync for the client/service round trips. An async, slow, failure-prone concern wired throughout the entire codebase. I/O hurts everyone in subtly different ways and it's hard to solve so you see a lot of churn. service/database has this problem too (the ORM flamewars of the 00s) but to a much less degree because it is in a happier place on the latency chart: https://gist.github.com/j…

Related to this is the idea that people believe front-end software development is easy. In reality, it's one of the most challenging, chaotic and difficult parts of the development chain, especially when talking about web development.

Re: Why Is Front-End Development So Unstable?

#59
post #41

FWIW, the GitHub age isn't entirely accurate because both React and Vue had major rewrites and the current default branch doesn't hold the entire development history. Vue's first public release was Feb of 2014 and React is just celebrating its 5th birthday.

Likewise, Ember holds the record on that list at 6.5 years, it was forked from SproutCore which goes back even further.

Re: Why Is Front-End Development So Unstable?

#60

This is a really well-written and well-thought out piece. The author touches on a number of points but never gets polemical. This piece resonated with me particularly well: > Be wary of self-promotion > Over the last few years I’ve seen much more aggressive self-marketing in the JavaScript world, possibly due to the rise of paid online training materials and the employment/consulting advantage of being a Github ‘cele…

I'm finding the growing celebrity culture of programming to be troubling. I find that programming is becoming less and less about code or architecture and more about evangelism and marketing, but I'm not sure what changed in the incentive structure for this to happen, and I would like to find out. Aside: This has made me reconsider being a career programmer.

I got asked if I had a blog in an interview. I am a software engineer not a self marketer.
Post reply on HN