Comment by anonymouskimmer
2 years ago
This is non-intuitive to me because programming languages (above the level of assembly, probably) are made by humans to represent human concepts, while construction is based on physics.
While writing that sentence I realized that programming does have a lot to do with logic, which is a construct of reality, and not humanity. So I guess it does makes sense that programming would be fiddly.
I am not a programmer.
One thing your initial reasoning left out is that human concepts are not simple, either. Money may seem simple until you start to consider currencies, rounding, taxes, fees, etc. Text may seem simple until you consider punctuation, different alphabets, math symbols, emoji, and other special symbols, glyphs, or characters. Names may seem simple until you consider suffixes, names that consist of multiple words, middle names, cultures that place the family name first, nicknames, name changes, various accents and other "special" characters (that probably are perfectly normal to the person with the name), etc. As a programmer you often have to deal with other programmers' solutions to handle all this complexity, which may be flawed or simply different.
I mention all this not to pick holes in your logic but because it sounded like you were trying to look more closely at your intuition.
> As a programmer you often have to deal with other programmers' solutions to handle all this complexity
That's entirely my point. Human concepts can be incredibly complicated, or just as bad based on ideas that are foreign to others. Some people like figuring out human complexity, but no one likes figuring out everyone's personal complexity.
Many disciplines are still more constrained by our limited understanding of, and ability to manipulate, physical constraints. The more abstract programming languages become, the more personally complex they become. Like money and verbal languages.
Also, construction designs, materials, and tools are made by humans.
Programming languages can theoretically abstract things away to the extent a properly formulated phrase will get working code from an LLM. Construction designs and materials are still concretely limited by what physics will allow.
Well, programming languages are limited by what logic will allow, and computers (and by extension programming languages and LLMs) are also limited by what physics will allow.
5 replies →
It's not just logic. Storage is in practice never infinite, everything has a speed limit. Those are real things, not some human concept.
I was thinking about the human-facing end. Not whatever constraints the compiler is under to translate the human-facing end to machine-operable code.
I think this distinction is artificial. Programming is made of and constrained by physics: the electric field in the transistors is a real physical phenomenon. While constructions are made of concepts; just ask an architect about "negative space".
And yet the humans doing the construction still have to measure angles in non-obvious manners regardless of the kind of staircase they are installing.
Well, programming is a lot easier if you don't have to deal with reality.
That tends to not happen so often.