Readit News logoReadit News
locallost · 3 years ago
I agree with the article, but think it's poorly written. In a way, it's a bit like the developer work that its criticizing -- overly complex.

One of the linked articles is much better and to the point: https://ericwbailey.website/published/modern-health-framewor...

My 2c: I've seen good experiences, but a lot more poor ones. I've worked on them and they were n times more expensive for very little benefit. I don't think it's by design, but more cynical people might. I think it's just a dogma among developers and management too afraid to step in because developers hold too much power. They want to work on this because everyone else is, and if they can't they will go somewhere else and then you need to find new developers and everyone knows there aren't any available.

We switched to a server side rendered spa stack because the developers said "don't want to be stuck on old fashioned stacks, want to work on cool things". We then needed twice the time and twice the developers to get things done.

So basically the way out of this is for someone to hype up a server side solution and sell it as a shiny new thing. It needs to be logical in a way that makes lights in heads go on, but also somewhat mysterious and new. Deno Islands fit that mold, we'll see if it pans out.

cxr · 3 years ago
> if they can't they will go somewhere else and then you need to find new developers and everyone knows there aren't any available

The recurring resume-requires-React pattern sure isn't helping.

Existenceblinks · 3 years ago
No "isomorphic" please. Please don't moving forward with js-everything, that's actually moving backward.
travisgriggs · 3 years ago
> "why is this market so inefficient?"

I don’t know, but I too have felt this for the last many (10 or so) years. And not necessarily just web.

I think the answer lies in part in this line:

“The complexity merchants…”

With so much free money floating around, software development has grown more bureaucratic than ever.

I’m not sure how effective emphasis on IDEs, processes, or languages really was 10+ years ago. But the fact that “being more efficient, higher productivity for lower inputs” was something people paid money for indicates (to me) that it was a priority more than it is now. When the economic model becomes “throw money at moonshots looking for the next 1000x thing” then inefficiency is going to take a back seat.

One of the truly amazing things to me is the increase in specialties that must exist and cooperate to deliver/maintain products of any size.

doctor_eval · 3 years ago
“Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.” - Dijkstra
rotifer · 3 years ago
That quote comes from here [1]. A few lines later, writing about a talk he had given at a software company, he says:

    I gave a beautiful lecture, which fell flat on its face. The
    managers were horrified at the suggestion that flawless software
    should be delivered since company derived its stability from the
    subsequent maintenance contracts. The programmers were horrified
    too: they derived their intellectual excitement from not quite
    understanding what they were doing and their professional
    satisfaction from finding weird bugs they had first introduced in
    their daring irresponsibility. Teaching the competence to program
    boils down to the training of misfits.
Ouch.

[1] https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/E...

TrainedMonkey · 3 years ago
> I’m not sure how effective emphasis on IDEs, processes, or languages really was 10+ years ago. But the fact that “being more efficient, higher productivity for lower inputs” was something people paid money for indicates (to me) that it was a priority more than it is now.

It is important to look at these things in a context of software fads... Back when Google/Facebook got big around 2007-2008 it was all about big data cargo culting, then era of frameworks & efficiency & productivity, following that epoch of apps, after that we've had blockchain, and now AI & chatGPT are "eating the world".

Of course in the middle of that we've also had a huge bull market with tons of money thrown at everything.

mathgladiator · 3 years ago
I think part of the problem is the nature of ownership versus a salary. Would you rather have equity within a company and partake of the profits, or would you like a nice salary?

I'm writing a longer post on how I think about hiring for my company, but the gist is that I want 100% equity players with the thesis that work will get done without the excess headcount.

bruce511 · 3 years ago
As someone with equity I always assumed everyone wants equity. I've come to discover that most people just want a nice stable salary.

The incidence of "owners" is higher in tech, in part because its an easy way to start a business. Low capital needs, cheap equipment, no formal qualification required, and lots of examples of success to emulate. In other words equity in computer startup is highly attractive to those who have that bent in the first place.

>> I'm writing a longer post on how I think about hiring for my company, but the gist is that I want 100% equity players with the thesis that work will get done without the excess headcount.

In my experience this hasn't always worked well for me. Those that favour equity often end up going off to start their own business, where they get more equity, and don't have to deal with pesky folk like me. It's certainly worth a try, but I think you'll discover that most people just want a salary.

Equally, my advice to workers is to get a good salary first, and consider options et al to be likely worth nothing. For equity to be meaningful it has to be substantial, and you just don't get infinite substantial slices out of 100%.

Of course if your company is google successful, then great, even tiny slices make millionaires. But its vanishingly unlikely that your company turns out like that.

I'll end with this - you have a thesis and it's certainly worth a punt. If nothing else it's valuable data for your next business. It'd be great if your thesis works out (for your sake I hope it does) but be prepared for unexpected outcomes, and try and recognize those outcomes early. Perhaps, just perhaps, there's a reason most companies don't work like this.

ebiester · 3 years ago
That works once you are profitable enough that the salaries are enough to cover sufficiency. however, if I am taking on the risk of no salary, I not only need substantial equity, I also need control. It's going to be my company.

Now, if what you're trying to describe is a co-op, that's interesting and you should look into that literature, but it is no longer "your" company alone.

notahacker · 3 years ago
"100% equity players" isn't matching for ability or work ethic though, it's matching for employees that have savings instead of mortgages...
danjac · 3 years ago
Sure I'm on board.

I just want to check first that my mortgage provider, landlord, utilities company and supermarket all accept equity...

travisgriggs · 3 years ago
How do you avoid “too many cooks in the kitchen” syndrome? As an idealist, I love what your advocating. I dream of idealistic egalitarian societies.

Sadly I’ve been forced to accept that many employees will happily enter into workplace codependency relationships that allow them to offload risk from themselves (e.g doer-decider duopolies).

shapefrog · 3 years ago
Sure thing - I would like the same equity as you have. Do not be shocked however, when after a day, with my equity in my pocket I wander off and do something different.
flask_manager · 3 years ago
How large are you aiming for? I suspect beyond around 5 people this falls apart due to either the value of the specific skill at the time matching the current profitability poorly, or the protective clauses that would be needed in a contract making it very difficult to hire talent.
user_named · 3 years ago
Are you saying stock or options?
drewda · 3 years ago
A recent blog post making similar points: https://laughingmeme.org/2023/01/23/software-and-its-discont...
travisgriggs · 3 years ago
Good read there. I think there’s a missing complexity from his list. The complexity of abstractions. Working in software often feels like advanced philosophy now days.
BackBlast · 3 years ago
The money has something to do with it. But with too much money in the system. People hoping jobs too quickly. And the accountability loop for producing bad systems is short circuited and ineffective. Hype cycles where young devs never see the other side where they fall flat.

It's the engineers and orgs, not the tools.

stevebmark · 3 years ago
Does anyone else find this writing style hard to follow and alienating? The clever section titles, verbose passages, inflated vocabulary, and indirect descriptions, make it frustrating to read. Just say things directly.
apozem · 3 years ago
The writing does a horrendous job presenting an argument. The author constantly references events and trends but does not focus on specifics until much later in the post. Even then, he paraphrases, making it even harder to judge the evidence.
zeckalpha · 3 years ago
This stylistic choice seemed like part of the point. When people are writing JS, they often do the same, resulting in unmaintainable messes.
slightlyoff · 3 years ago
Author of the article here.

TL;DR: your JS is probably worse than you think. Write HTML and CSS instead. It will go better for everyone. And feel free to ignore the most popular JS framework vendors; they have not known what they are talking about for at least a decade.

nafey · 3 years ago
I am sorry but i don't think that will work. Speaking as someone who tried to implement a fairly complicated ui in plain JavaScript and jQuery, i ended up shooting myself in the foot while writing code that updated the state of the application correctly.

React actually made this a non issue. There are use cases where vanilla html/css/js is just not the best tool.

mock-possum · 3 years ago
honestly man, while I kind of agree that your writing style is a bit hard to parse as a logical argument, as a 'feeling?' it feels exactly the way I've been feeling for at least the past five years.
stevebmark · 3 years ago
Great. Use Next.js and write SSR code, using JS and CSS modules, which outputs HTML and CSS, and use optional client side hydration for client facing functionality. SPAs are fundamentally bad for most websites, but don't confuse them for all JS frameworks. Once you need to do something as simple as turn some data into HTML (like loop over it, filter it), the premise of your article doesn't work.
christophilus · 3 years ago
Having done a lot of both, I prefer HTML and CSS for documents and statically typed, React-like component-based reactive libraries for apps. Building an app with just a smattering of JS goes well until it doesn’t, and requires a lot more discipline due to the stringly-typed nature of it.
taurath · 3 years ago
Do you have any examples of well trafficked sites with good UIs doing things well? It would seem that there might be outliers you might be able to point to
will_wright · 3 years ago
Well written article, thanks! I think some of your critics need to look up the term "veiled criticism"
azangru · 3 years ago
> TL;DR: your JS is probably worse than you think. Write HTML and CSS instead. It will go better for everyone.

Dear author,

Could you explain to us how one would write Online Photoshop in HTML and CSS? Or Figma? Or Excalidraw? Or Youtube? Or Google Maps?

tjpnz · 3 years ago
If it was written any other way they would be soon labelled as "negative" or even a "hater".
christophilus · 3 years ago
Every non-SPA that I’ve worked on ended up accreting interactivity to the point that I’d wished we had started with a single, unified, well-structured way for managing the UI that handled interactivity well.

I used to do a lot of native Windows apps in C, VB6, and C#. To me, Preact + TypeScript is as good in many ways, better in some, and worse in others— but it averages out to be just fine from a developer perspective.

I personally don’t miss the old native UI days.

The majority of jank that I see on the web is not due to React or Angular or whatnot. It’s due to ads, trackers, and to product owner’s inability to say “no” to piling a million things into important screens.

It is a misplacement of blame to blame React.

xyzelement · 3 years ago
Few jobs ago I was a PM director at a scaleup and at some point our frontend platforms engineering (or something like that) came into my purview.

This team didn't build front end experiences but tried to build out tooling in which other devs would. Which was weird to me given that we didn't do anything extraordinary in terms of experience so off the shelf stuff should have worked.

I think this was some evidence towards the point in this article. Two things were at play:

First, the gross complexity of the available frameworks made it seem like something like this was necessary.

Second, the people involved were excited to further their careers on this, so motivation to call out unneeded complexity was low.

If I had owned this space from the start, I'd have asked the question of "what business outcomes does this enable which we can't achieve at least for a while, with static-ish html, forms, etc" and maybe allow a little complexity where justified. But since it was purely engineering owned for a few years before it got to me, it was way too late to reign the complexity and we ended up doing shit like porting from one framework to another.

danielvaughn · 3 years ago
One of the mantras I like to chant is that your job as a developer is not to write code. Your job is to implement solutions to business problems.

I didn’t understand that until I became a manager. Your whole perspective shifts because you realize that salaries don’t just grow on trees.

nine_k · 3 years ago
"Lines of code are not produced but spent" (Dijkstra)
jiggunjer · 3 years ago
Unless you work for government.
patrickthebold · 3 years ago
One thing to consider: a lot of devs are most familiar with React and some set of tools in it's ecosystem.

Sticking with what you know is generally good advice. Especially if you consider hiring and onboarding.

Dead Comment

sublinear · 3 years ago
> the people involved were excited to further their careers on this, so motivation to call out unneeded complexity was low.

I strongly disagree. The fact of the matter is frontend tech debt is just SO MUCH cheaper than backend tech debt.

If all you need to do to is refactor or port over a SPA and leave the existing API alone, you've sidestepped so much pain it's unreal.

If you started out with "simple" form requests instead of an API, the backend is pretty much guaranteed to be an undisciplined mess. Wrong place to cut corners.

eatonphil · 3 years ago
> The fact of the matter is frontend tech debt is just SO MUCH cheaper than backend tech debt.

Seeing someone mention this as an opinion, let alone asserting it as fact, is a first for me!

I had the opposite impression, but I'm not sure how I'd debate it as fact without some observational analysis of dependencies and frequency of breaking changes in various frontend and backend projects.

xyzelement · 3 years ago
I don't even know if I disagree with you on these details.

The point is we bit off too much complexity on the front-end when we shouldn't have had to given the vanilla nature of what we did in terms of user experience, but somehow nobody on the eng side questioned it. For me as a dev turned PM it was screamingly obvious.

youngtaff · 3 years ago
Front end debt is only cheaper in the sense that it’s running on someone elses hardware so when it fails you don’t see it fail or the impact of it’s failure
jFriedensreich · 3 years ago
My god, this article reads like a non fiction incarnation of "infinite jest" its basically impossible to understand the authors concrete intent and meaning of whole paragraphs without reading the footnotes and the linked articles while reading the post. And if i understand it correctly, it completely misses the point who is to blame. Angular and react solutions were seldom sold from an actor with deep information to a manager or business with less information. In my experience the top 2 situations were a) managers/half-technical founders wanted what they had read about and google or facebook were backing and did not want to hear about a proper evaluation, b) devs and whole dev teams wanted to just use what they knew and read about 100% thinking this was the best solution because of their inexperience and lack of reflection. The first is just your usual ignorance towards the experts by buzz word driven and half-knowledge managers, the latter could be more likened to the brainwashing of cult members than intransparent market situations.
giaour · 3 years ago
> And if i understand it correctly

You did not. Per the article, the "buyers" of SPAs are the developers and teams who heard about a technology and thought it would be the right tool.

projektfu · 3 years ago
I can't look at an app and tell you that it's written in framework A or B, but so many websites are becoming dogs these days, and not just because they have to run Javascript. I think the scripts actually spend a lot of time blocking on the I/O that would have originally been delivered with the initial page. Server side rendering may be a solution but it seems lots of sites have a rather modular approach to putting components on a page that then load lazily over ridiculous amounts of time.

As an example, the American Express account management website. Lots of banking websites are going this way, where it's taking long enough to finish a request that you worry the logout timer will fire before it's done. They have also lost niceties like the ability to take you back to the same page with the items in the same order, that I had on the Dollar Bank website circa 1998. (Seriously, that bank was ahead of the curve and the website was fast, on 33kbps dial-up and a Pentium MMX 200.)

Other websites are the same. Kaiser. State taxes. Delta airlines. Formerly fast things replaced by janky lazy loads that reflow the page and cause you to click the wrong thing. And so much telemetry! Can you actually process all that data? Because if it's working it must be screaming that people are constantly clicking the wrong thing.

MBCook · 3 years ago
I remember when Reddit (old.reddit.com, the good one) loaded ultra fast and didn’t move around. I could use the back button without noticeable waiting.

And it didn’t freeze up network requests on other tabs on my phone. I STILL don’t know how it does that. I would love a fix. At least at some point I discovered opening a new tab with HN “unblocked” it somehow.

SPAs have their place. It’s not everywhere. Just like microservices. And ORMs. And all the other “magic” that will solve all my problems.

slightlyoff · 3 years ago
You might try https://sh.reddit.com

Deleted Comment

beckingz · 3 years ago
Not to mention dozens of authorization redirects. Absolutely infuriating.
ng12 · 3 years ago
At this point articles like this exhaust me beyond the point of caring. The popular tools are all reasonably good and in my experience the people complaining about the JavaScript ecosystem do so at the expense of getting stuff done.
DangitBobby · 3 years ago
Absolutely. Always eye-roll inducing, particularly the ones with bitter, angry, or in this case accusatory tones. JS solves problems people have, and it's not goin away anytime soon. I would love to be something other than a frontend code monkey, but I don't see that happening anytime soon. I just wish people here could shut the fuck up about it.
ramones13 · 3 years ago
I’m guessing you’ve got a nice $1k+ dev box and high-speed internet?
ng12 · 3 years ago
Yep, and my users do too. Most of these blog posts can be distilled down to "pick the right tools for the job".
taurath · 3 years ago
The landscape for non SPAs don’t look great either - Amazon and other e-commerce sites come to mind. It’d be nice to show some examples of who’s doing things well while also being complex, and having a nice UI.

Deleted Comment