To convice their managers that only they understand the horrific code they wrote the software in.
But there is an awful lot of complexity in otherwise simple things. Just look at hand tools and see the difference between a power drill and a power driver. And realize that asking which one is simpler is a bit of a red herring. Even better, try and guess which one was created first.
I think, often times, people mistake the results of something from the tools that went into it. Such that it can be tempting to think that simple looking creations were made with simple tools. As often, the opposite is the case. It takes complicated tools to build something that looks simple.
Maybe the argument was that you put more effort and work into what you are building than you do that which you use to build it? I think that is largely fair.
That is actually somewhat in focus when discussing a pen versus the "penzilla." For one, building a pen is a surprisingly difficult thing to do. Especially at scale. For two, people rarely want to have a pen for the sake of owning a pen. Instead, you want to write something.
I would assume the power drill was created first if you include human powered drills, screws came much later than pretty much every other kind of simple machine, and until machine tools were invented, screws as fasteners didn’t really exist outside of specialized applications. They were used for presses and applying force.
John Henry was competing against a steam powered rock drill in the folk tale about him.
If you define power tools as tools driven by electric motors, I would still guess that the drill came before the driver, as rivets seem to be more popular in the steam engine to electric transition period than bolts or screws were.
Slightly confusing things is the fact that a modern drill is almost always a driver too, unless it’s a specific kind of drill like a hammer drill or core drill. Confusing things even more, there are drill bits that are meant to be used with an impact driver, a tool that is used to tighten or loosen fasteners.
As for which is simpler, drill vs (impact) driver, it’s hard to say. A drill has a clutch, and an impact driver has a spring mechanism that applies rotational force when the motor is at its limit. I’d say both are fairly complex, the impact driver is probably a bit more complex than a drill.
I’m curious about the development and history of power tools but it can be difficult to find information about it.
The article argues that while React solves a problem, not everyone actually has a problem that requires the complexity of React (i.e. "Build pyramids if you must").
Similarly, I would argue that using complex tools to build something generally results in less complicated outcomes. Our computers are basically evidence of that.
[1] "Simple Made Easy" - Rich Hickey (2011) https://news.ycombinator.com/item?id=23905051
Putting a late stage "yea I know, but this one time..." hack in, is logistically simpler.
TL;DR we're not addicted to complexity, we're addicted to the abstraction we started with, even when it turns out not to be as good as we thought.
Source: been there, done that.
It is perfectly reasonable under the constraint of J Pierpoint Morgan's dictum:
"I don't want it perfect, I want it by Thursday"
Some complexity in that case is needed, but its aim is to provide a cleaner/simpler access, which is often opinionated, limited to the purpose we have: deployment of development tools for containers.
If you want to experiment, show off as the article implies, start a hobby project.
Edit: removed some fat-fingered typos when I wrote this on a phone
> The simple alternative is just around the corner: sprinkle vanilla JavaScript where it’s needed and don’t build your identity around a framework. That mindset is hard to swallow, though (especially when companies have spent millions convincing developers their stack is the only way forward).
Having grown up doing webdev at its emergence, those were not glorious years.
Even as a solo developer or part of a small team, it was hard as hell to have a perfect mental image of the app at all times, to understand all the combinatorial possibilities of what state your app is in now and what state you want to head to next.
Trying to forever update retained state is hard as hell, full of incredible opportunity for memory leaks, and created some super weird behaviors.
Even more so, "just write the basic code" doesn't scale. It's not a system that an org can follow. Folks will come and go, each going totally different directions. I don't know how to stress how immature and insane this sounds.
But folks love trashing that which is popular. To declare oneself the only sane mind amid a sea of madness.
I really do hope we see some post-React eras dawn, see more, that this isn't it, on and on. But I respect like hell the switch from a retained mode form of webdev to an immediate mode one. It doesn't just skip by so many really bad failure modes, it's often far far faster than the poor incomplete hacked out vanilla.js solution your org ended up with. I want us to change to move to not be stuck here. But to see where we are as unnecessary complexity, to invent fantastic degrading tales about the weak souls of men for getting us here: this is truly the behavior imo of lowlifes, of those spreading propoganda to spread the thinnest false confidence of hatred and disdain against the world.
Things are complex and that's ok. We are learning. The way out in onwards not idolizing a concocted naive pastoralized past.
> The way out is onwards not idolizing a concocted naive pastoralized past.
Ah, the noble JavaScript savage of 1999 - so in tune with his environment, his nose twitching in perplexed confusion as the unfamiliar scent of DHTML wafts past.
Unconcerned with a future that he cannot possibly imagine, he launches Dreamweaver and begins coding, secure in the knowledge that the more things change, the more they stay the same.
But simplicity also requieres a lot of effort. Complexity is a side effect of laziness and not putting effort in. Common in corporate programming.
Complexity adds tension.
Bored Software developers add complexity to make their jobs more interesting is my take.
I know this sounds all very "old man yells at cloud". What can I say. Grug dev only telling fireside stories learned from bitter experience chasing shiny rock.
Job. Security.
You see, if only you knows how it works, how could they get rid of you? /s (obviously /s)
Many businesses are built in such a way that you have little hope of directly contacting your customer, but that doesn't mean you can't try. The desire for complexity often disappears like magic when a developer gets to experience a client expressing happiness over the end results of their "clunky" tech stack.
Most of the time, if I'm working in blender for example, I want some really sane prepopulated shader values and one size fits all rig values for sofas vs chairs, but sometimes I want to go crazy and make chairs out of glass and slime, etc.
Imagine reusing an entire physical assembly for only one of its functions (eg a microwave to get a clock) this is the sort of thing we do in software all the time, but would immediately fall apart in other disciplines.
You can see if a motherboard has twice the necessary components, or if a robot arm just looks wrong, but if your algorithm to process 1000 records takes a thousand times longer than it should (but still finishes in 100 milliseconds) no one notices.
https://en.wikipedia.org/wiki/The_Mythical_Man-Month
Or if you wan to have more fun read Systemantics
I'm not a very clever person, and I keep things pretty simple, so when I explain something to someone, they can generally get a grip on it pretty quickly.
To them it's been such a small jump they think, that person doesn't deserve much of a reward, heck I could have done it.
Whereas when someone talks about the complexity, people think, wow, there's no way that I could have done that, let's pay that person LOTS to keep them
Your 1-10 person team probably does not to use the same tech facebook or google are using, most of the time.
Right now, "simple" is meant to translate as "good" for the reader and whatever writer wants it to mean. I'm glad, at least, that the article provides an example (React vs plain Javascript). I don't know for sure but I suspect there are at least some valid arguments for using React vs just grabbing dom elements in Javascript.
For dim people, like myself. What was the "clear purpose" for Egypt to build giant stone pyramids? Maybe the rest of this will fall into place for me when I understand that.
A purposeless pyramid would get bogged down with plumbing and fountains and extra passageways and observation decks and on and on and on. It would have been impossible to build.
For them to be able to properly descend to and navigate the afterlife of course. This is why society today is so broken, all we get for our afterlife is a shitty urn and some bland sandwiches.
Yeah, except that a sprinkle becomes a dusting, and then a dusting becomes a coating, and then a coating becomes a clog of dust bunnies, and it's often hard to tell when you need to stop and do it a better way when the business side is pressuring you with deadlines for changes on "what already works".
The whole reason frameworks exist is to _reduce_ the mental backpack by using something that has solved the same problems in the same orderly way.
sharts•1h ago
bigfatkitten•1h ago
nomel•1h ago
chubs•1h ago
LPisGood•41m ago
rvz•1h ago
Rather than building rube goldberg contraptions and not only it is difficult to refactor them but can kill the entire business if the maintenance costs continue to increase.
tamimio•1h ago