Comment by dejected_frog
14 hours ago
The post is well intentioned, but misses the point.
While you can engage in the act of programming from the angle of craft and while you may have started to code because you really enjoyed how it felt like solving a puzzle, programming is primarily a profession. It is a lot closer to accounting than to painting.
There is still space for coding without AI, stuff like advent of code, etc. While it may sound old fashioned as a lot of people did it to practice code challenge for interviews, some did that simply for the pleasure of coding.
But when your job is working in some system for a corporation, big or small, there's no space there for craft or passion, just the reality that what matters is the sausage, not what went into making it.
You may (and probably should) still care about certain engineering principles; correctness, performance, readability, maintainability, etc. But that's about it, whether you write the code or an LLM does is immaterial.
Why? Is it because most programmers can get paid from a company and not most drawers or musicians? Is it that programmers don't give enough free code on Github, or that their PRs don't wax and wane about how beautiful they found their specific bugfix to be?
If you see the whimsical in a PR changing some column name in a table in a billing system, or you feel the magic and fantasy of a REST API, or yet, God forbid, the emotional undertones of fixing a NPE because the previous change did not consider that a field was optional, then you may have trouble to perceive the difference.
I, at least, never wrote a stock management system to explore the depth of human emotions.
Hmm. I had an issue once with numpy shape mismatch errors appearing after 18+ hours of computation. Frustrating, because it could be caught at compile time.
Later, I learned some typelevel programming (in Scala), and by encoding a digital (binary) adder and multiplier at the type level, I showed -- at least to myself -- it was possible to compute and check linear algebra shapes at compile time (without a compiler plugin). It was rather magical and funny to think that I just embedded basic digital logic in such a higher-abstraction world.
It was slow for the inputs I cared about, so I added some optimizations, like an if-statement at the type level, for example, so that it bit-shift for multiplying powers of 2 (multiplication for tensor products). The compile time difference being palpable was a testament to how "some 'ideas' are surprisingly close to others" (err, 'ideas' ~ 'numbers' in this case). There is a connection to the p-adic numbers here, courtesy of dyadics, and some connection to the more-natural "last-mile" problem.
It's not REST, maybe. But I felt it was magical.
6 replies →
You have missed out on _why, perhaps? I am old enough to remember him, and Camping, and the chaotic, brilliant nature of his work.