Hacker News new | ask | show | jobs
by tsimionescu 1998 days ago
This is like envisioning a world where everyone is building their own chairs and doing their own pottery. People who can do carpentry, or pottery, or programming are not in any way better or smarter than the average Joe. They have a different specialized set of skills than many other people, and they have the time to actually use those skills. Even if everyone knew carpentry and pottery and programming, they would not be using these skills in their day-to-day lives, because they have their own job to do. An accountant will not start programming their own accounting software, or even their own plugins - they will use some purpose-built software written by someone else, because it is a far more efficient use of their time.

It's also important that programming is a fundamentally tedious endeavor. Even with the most high-level imaginable PL, where there would be no machine details to think about, you need to exhaustively define every detail of your business goal, much further than you would ever think about it in regular work. I am a programmer and I personally enjoy this kind of deep dive, but I have been in many meetings where I was trying to extract those details from domain experts and getting increasingly frustrating for them with all the probing. Even worse, you often hit points where you just can't get past some hand-waving, and now it's your job as a programmer to evaluate the trade-offs between different strict implementations of what is a fundamentally fuzzy requirement.

And getting out of the fantasy of the perfect PL, you also then have to work with a real computer with real limitations that someone needs to know how to work in while representing the problem domain (e.g. replacing real arithmetic with floating point arithmetic and dealing with the new problems that stem from that). You also have to spend large amounts of time researching what others have built and re-using it when and where it is possible, and working withing the trade-offs those others have made - since there's no chance of writing every program from scratch, and there is no such thing as a general purpose domain specific library.

5 comments

You're missing that the computer can help, so it's more like a world where everyone is designing their own chairs, and the computer ensures that the chair is constructable, won't collapse, will fit a range of humans and so on, and finally sends it off to the 3D printer.

The accountant example is a really good one: most accountants likely do write their own Excel macros to suit particular customers or one-off situations.

People build their own furniture all the time when they buy things they need to assemble from ikea, target, etc.

People wire up electrical components when they hook up their TVs, computers, surround sound, etc.

People do their own plumbing when they hook up garden hoses or put on a new p-trap.

Mounting a TV bracket into studs or even hanging a picture is some slight carpentry.

These things work because there are standard connections and good design, but in many cases it took a long time to get to the current designs that are simple enough to be intuitive and come with any tools needed.

Standards and design have made these things possible. Even building a computer is similar. Many people's automation needs aren't so complex that they need to venture out of reasonable constraints.

Very good points. The problem is that people are normally not using other peoples shitty chairs to try to build a space station.
Exactly! This is what scares me about the modern day no-code movement.
You are using the wrong analogy. Computing isn't like building tools - it's about thinking better. Literacy is a better analogy - almost everyone is taught to read/write at an early age, and in fact not being able to do so is a significant hindrance to surviving in modern society.
Re. thinking better: I think we forget programming languages are just tools. (Almost) anyone can learn to program but it doesn't mean they're good at solving problems or are able to bring innovative/new/better solutions to solving current problems.
Reading and writing are just tools too.
I don't see anything wrong with it, just like everybody can do their own cooking.