Live data from Hacker News

Why Is Front-End Development So Unstable?

breck-mckye.com

331–340 of 366 posts

Re: Why Is Front-End Development So Unstable?

#331

Earlier quoted context omitted.

> Having to learn a new library every 3-4 years (because of a new job, generally) is it really a big deal? _If_ frontend development is all you do, then no, it isn't. One of the good things about the internet is that it's possible for a lone wolf to build and ship something amazing. One person can understand enough of the full stack, from HTML/CSS through JS to a serverside language and basic server administration, t…

> Indie full-stack developers can no longer keep up with frontend development, and I think that's a great loss. Who exactly? Did you ever hear a front-end developer say that or are you building a strawman? There's nothing stopping anyone from building a simple jQuery powered website. There's nothing stopping anyone from building an app with Angular 1 either. Hell, you can even download .zip files on GitHub, unarchive…

I was a full-stack developer 5 years ago. I am not any longer due to the chaos in frontend development technologies, best practices, etc. It was too much for me to keep up with, so I opted out and only do backend stuff now.

Re: Why Is Front-End Development So Unstable?

#332

Earlier quoted context omitted.

Yes, and a car can go off the road and kill you. Nevertheless I don't choose to walk everywhere I go.

That was my point, that nothing solves every problem. Monolithic frameworks aren't inherently better than micro libraries, they are just different paths to achieving the same goal. I'm still going to choose micro libraries, because flexibility is more valuable to me than batteries included, which is just as good an argument as batteries included is better than flexibility.

Fair enough. Still, "I don't like microlibraries" is not an argument against client-side frameworks.

Re: Why Is Front-End Development So Unstable?

#333
post #136

Having worked as a frontend dev for a while, my observation is this - because the UI is closer to the user, and closer to the product side (for consumer-facing apps), it has faster iteration cycles, doubling or tripling the rate of technology decisions that are made. You'd never rewrite an API twice in a year, but maybe you'd rebuild your site or interface that often, if you're responding to users. With increased dem…

Yeah, there's a perfect storm that happens on the frontend. (1) Users are more empowered and expected to continually change requirements all the time. (2) The underlying technology is broken. Specifically, there is no component model that makes it easy to compose existing components. Every frontend app reinvents not just the wheel but the tools to cut the stone. (3) There is no UI component model provided by the brow…

Makes you wonder why there isn't something like Rack or WSGI for front-end components. If there was one interface that all frameworks adhered to, you could, in theory, use components written in one framework from within another framework. Elm sort of does this. Not sure about others.

Re: Why Is Front-End Development So Unstable?

#334

Earlier quoted context omitted.

Scale that to a VERY large application. There are lots of applications where class names and even hierarchies get re-used by other teams working on another portion of an application. In practice, CSS blows up, other portions of the app stop working correctly. Yes, you CAN use discipline in order to create good applications with jquery and others. In the end, I'll take my single state tree (source of truth) and one-wa…

>Scale that to a VERY large application. I have. Without problems. >In practice, CSS blows up, other portions of the app stop working correctly. Perhaps in your practice, tracker1. But not in mine. That's what everyone seems to be missing here. This is all a bunch of hand waving to me, because I have a lot of experience shipping a lot of robust, maintainable code, and none of it has been true for me. If you need all…

> because I have a lot of experience shipping a lot of robust, maintainable code, and none of it has been true for me

Ave you ever had to work on an application that's more than 5 years old, with an active dev team of 30+ (just the web developers) that have had over 200 hands in the pie including contractors then? I have, and it was a nightmare. Frameworks and modern tools help to take care in these situations.

The application above was around 2007-2008 IIRC... different parts made by different teams, cobbled together. Layers of backend cruft as well. I did help start a new project, that had much more consistent/clean structure. But when you have too many hands in a pie, and no automated testing in place, you wind up with that eventually.

I've been developing web based applications since 1996. I've lived through the eras without the browsers and abilities we have today... the growth of the DOM and the JS language from a few interfaces for forms, to being able to do so very much.

You don't have to use anything to ship your code... but you have to do something to get a few dozen devs working on something cohesive.

Re: Why Is Front-End Development So Unstable?

#335

Earlier quoted context omitted.

All of this is why, in the end, more and more... I do things "the hard way". If I'm using a dynamic language WTF do I need an ORM for, if I understand enough to write an SQL command, and use a library for that DB that does parameterized queries? On the front end, I tend to lean towards abstractions that work together... I really like React and the material-ui library's switch to JSS. It's relatively clean, and useful…

Have you ever looked into Clojure/ClojureScript? The Clojure ecosystem seems to favor your approach. They embrace the dynamic nature of this kind of programming, are data-oriented, shun ORMs, and generally have solid principles (in my opinion). I found it was well worth working through the (somewhat steep) onboarding curve.

I have, but haven't had the opportunity to really dig in. :-) . It's on my list... along with Go and Rust as things I want to learn.

Re: Why Is Front-End Development So Unstable?

#336
post #285

Earlier quoted context omitted.

All of this is why, in the end, more and more... I do things "the hard way". If I'm using a dynamic language WTF do I need an ORM for, if I understand enough to write an SQL command, and use a library for that DB that does parameterized queries? On the front end, I tend to lean towards abstractions that work together... I really like React and the material-ui library's switch to JSS. It's relatively clean, and useful…

> WTF do I need an ORM for, if I understand enough to write an SQL command, and use a library for that DB that does parameterized queries? I am getting into frontend for a hobby project after spending a few years doing ML and applied stats, and I am currently asking myself this question. If your db interaction is simple, a query is almost as easy to write and maintain as an interaction with an ORM, and is significant…

In more static languages, you generally need to convert from the DB types to the Native types to your language. This means a lot of code (more than boilerplate ORMs) and prone to a lot of mistakes.

Some tooling that generates it for you helps a lot in some cases. I can see the appeal, but not in a dynamic language environment where there is less disconnect.

Re: Why Is Front-End Development So Unstable?

#337
The typical explanation (a la r/programming) seems to be something or other about webdevs being naturally impatient, faddish and incompetent

Okay, let's look at the facts, I'm open to any explanation but this is the most convincing one.

2.5 years for the youngest isn’t that old in the scheme of things

2.5 years is NOTHING. N O T H I N G. C++98 clocks in at 20 years now and it's one of the most stable drivers of software. HTML is 25 years old and basic websites from back in the day still work. You are churning through frameworks an order of magnitude too fast!

2.5 years for the youngest isn’t that old in the scheme of things [...] but it’s still a ways off our caricature.

This sentence alone is a caricature and the fact you cannot see that makes the caricature even worse.

The advantage of this architecture is that you can easily adapt as new practices emerge, which makes sense at a time of rapid innovation (like the past few years). The disadvantage is that it increases your surface area for breaking changes and demands a great deal (often too much) vetting and selection of said microlibs.

Completely true. Library choice is hard. That's why you make extra sure you avoid as many dependencies as possible and pick reliable and industry-proven libraries with the largest possible projected lifetime. In particular, you go look if there is still active maintenance and development.

And this is the thrust of my argument: what’s wrong with JavaScript isn’t the language [1], the web, or any technology in particular, but a poor ‘choice architecture’ that makes developers slaves to fads and trends.

Again, I agree here.

Modern JavaScript’s greatest asset - and liability - is NPM. It provides an enormous wealth of modules, catering to just about any specific purpose one can conceive, but very difficult to filter and curate. Which ones are really being supported? Which ones are actually functionally correct? Which ones aren’t really just vectors for evil malware? The only heuristic a JavaScript developer can really use is popularity - number of downloads and Github stars - which exacerbates faddishness.

Are you serious??! "The only heuristic a JavaScript developer can really use is popularity?" What happened to library evaluation? What happened to, you know, actually reading and reviewing the code you pull into your project? What happened to the actual craft of programming? What are programmers, dumb plumbers who put together a Frankenstein monster of microlibs, or innovative craftsmen who construct reliable, fast and elegant solutions with as few moving parts as possible? Is this the quality of work you are content with? Have you no pride?

There are other ways to validate a library, of course: you can read through Github issues and search for StackOverflow questions. You can do some testing or even examine the sourcecode for yourself (in most cases). But this takes time, which isn’t really warranted when choosing e.g. a date parsing doodad.

Oh yeah, those other ways to evaluate a library, what a waste of time. Don't bother about actually looking into it, just look how many "likes" it has. This is what's wrong with front end devs, they want to move too fast while lacking absolutely fundamental programming knowledge.

I will concede that this is something of a cultural weakness of JavaScript developers. As an interviewer I often like to ask candidates how they choose technologies, and it depresses me somewhat that popularity is the almost always the only marker they know.

That is sad. These people are not fit for a software development role and should not be hired.

Software engineering is at least partly a research job and we need to train junior programmers research skills. But even if we did, the odds would still be stacked against them.

The odds are stacked against ignorant people who don't want to put in the hours that are actually necessary to (learn to) vet libraries. Just let your senior devs choose libraries then, or at least review dependencies the juniors pull in?

So you do a Google search, which reveals a Medium post that heartily recommends X.js. It later transpires the post was written by X’s author, though she never announces that particular conflict of interest (she does, however, provide a GitTip jar). Not that you could tell - all Medium articles look the same, so you can never rely on a ‘brand’ to identify reputable material.

Back in the day, people used to understand what they do. Now they just google and copy-paste something. If you look at one medium article and decide to add a dependency, you cannot be helped anymore.

This time you find a link on Twitter - with over a hundred hearts!

I wanna puke.

You see, Y.js was “object oriented”. You thought this was a good thing, vaguely recalling something from first year ComSci about Smalltalk and message passing. But apparently it is Very Bad.

A programmer who does not know what object oriented means, and programs JavaScript, a language where you handle objects day in day out, should be fired.

It gets worse. The post claims that even mentioning OOP in a JavaScript interview will render you utterly unemployable! You are seriously disoriented now. Thankfully help is at hand - in the form of his $50 dollar JavaScript webdev course. You take a note of the link, thinking how lucky you are to have found it, and give another clap in gratitude. (Nineteen thousand and one).

Nineteen thousand and one ignorant morons who should not be professional programmers.

But how could you do better, Junior Developer? Who was there to guide you? The Senior Developers, too, are learning as they go.

Ok you have a problem there if you don't have senior developers who can provide guidance. That's the whole reason you have mentors. There's no point in paying more for a senior dev if they lack the knowledge and leadership skills. That's the whole reason why they cost more!

So. You take the path of least resistance: you choose the Github project with the most votes, the most stars. And that is why JavaScript dev is driven by fads and hype.

No, to conclude, people who are gullible, incompetent, ignorant and frankly, stupid are what's wrong with JavaScript dev. If you want to see hardcore devs who actually have skills, go look at operating systems programmers. All the problems you named literally just don't exist there. Front-end attracts untalented and inexperienced programmers because you immediately see colourful pictures when you preview a couple of lines of front-end code.

Re: Why Is Front-End Development So Unstable?

#338
post #322
post #302

Earlier quoted context omitted.

You did that. I didn't specify any type of blog. Blogs are more often than not about self marketing. Any why don't you want to answer the second part?

> Any why don't you want to answer the second part? Because I think the answer is obvious. BTW I did not see the Stack Owerflow part, that is the exact kind of compensation for tge greater community I was talking about. Thank you for that. For the other paragraph, well, that's how I read you comment in its context, and I maintain my interpretation. Maybe I'm misunderstanding.

I answer Stack Overflow out of mainly self interest. I don't have a portfolio of work to show people at job interviews - my work is mainly in house. I realized it isn't that hard to get a decent score on SO if you know something well.

Also because it annoys me seeing things done poorly having worked in enough maintenance programming jobs and worked with crap that could have been done so much better (this is probably a bigger motivation with certain topics).

I don't do it because I feel I owe anyone anything.

It does feel good to contribute somewhat, but that is far from my primary motivation.

Re: Why Is Front-End Development So Unstable?

#339
post #82

At some point, when modules get "micro" enough, the effort of managing them and learning their usage outweighs the effort of implementing the thing yourself. Most JavaScript projects seem to walk that line quite closely. I'm a React developer at work, but I recently gave Vue a try at home. This is one of the things that most stood out to me about it. React makes a selling point out of the fact that it's "just renderi…

I learned React at home, then learned Vue. I fell in love with Vue because i clicked on the getting started, threw a bit of code in a html file, and ran it, and it worked, then I played around and changed things, the moment i ran into something like "oh how do i do this?" the documentation is second to none for client side frameworks, I found what I was looking for quickly. Then I started to find other stuff like vet…

Vue gave me that wonderful jQuery bootstrapping experience, but with a modern data-driven DOM. It's so pleasant.

Re: Why Is Front-End Development So Unstable?

#340

Earlier quoted context omitted.

If I remember correctly, first versions of React were similar in that respect: you could just add a script tag to your page and you that’s it (save for the mount-point thing).

You still can do the same with the current version.

Technically. But

1) Your "templates" look like this:

  React.createElement(
    "div",
    null,
    React.createElement(MyComponent, null),
    React.createElement(
      "ul",
      null,
      React.createElement(
        "li",
        null,
        "Thing 1"
      ),
      React.createElement(
        "li",
        null,
        "Thing 2"
      ),
      React.createElement(
        "li",
        null,
        "Thing 3"
      )
    )
  )
2) Since things like decent state management don't come in the box, you're almost forced to start including other modules, which pushes you back towards a build system.
Post reply on HN