I’m wary about the exuberance of AI displacing quality.
But some of the worst experiences I’ve had with coworkers were with those who made programming part of their identity. Every technical disagreement on a PR became a threat to identity or principles, and ceased being about making the right decision in that moment. Identity means: there’s us, and them, and they don’t get it.
‘Programmer’ is much better off as a description of one who does an activity. Not an identity.
In the last few decades, we went from a small handful of programming languages / libraries to a massive cambrian explosion from Github-fueled open source. Everyone's choice of Javascript framework became a dumb pissing contest and source of identity. A cudgel used at meetings to look down on some other way of doing things.
I hope AI liberates us from that dumb facade of pretend innovation. In some ways, us programmers got way too full of ourselves and filled our lives with pretend work porting apps from one thing to the next thing with no actual change in end-user value
100%. A lot of these AI anxiety driven odes to the loss of craft have me wondering whether anyone cares about the value being provided to the user (or the business), which is the part that is actually your job.
Elegant, well-written and technically sound projects will continue to exist, but I’ve seen too many “well crafted” implementations of such technically vexing features as “fetching data and returning it” that were so overengineered that it should have been considered theft of company money.
"I’ve seen too many «well crafted» implementations of such technically vexing features as «fetching data and returning it» that were so overengineered that it should have been considered theft of company money."
This judgement has merit. However, over the years I got to perceive that over-engineering tendency to be the manifestation of exploratory spirit in one's craft. This is how the Unix got to be created at Bell Labs. To their managers, Ken Thompson and Dennis Ritchie worked on programs like the "ed" editor, thus they cared about "value being provided to the user (or the business)". What was later officially named Unix was not pitched as an operating system, but instead framed mostly just a needed way to organize the growing set of utilities, among other things (i.e. as a footnote). What are the over-engineered bits (and the related gained experience) in a given project may become useful for something else. People (tend to) do this kind of stuff. But should they be blamed, considering the enticing promise of growth and development of new technologies, practiced by employers themselves, as part of recruitment game?
A human problem will not be solved by the additional of AI. It's a force multiplier. If management is shit, it will be shittier. If you get arguments lime this during work, now you will get more, because it's so easy to port or rewrite or even create your own framework now. It's even easier to compete in the pissing match because you can just ask the AI for why xyz is wrong.
I feel like it's important to align team/org goals once in a while -- there's nothing wrong with a refactor or a port, but what's the ROI, etc etc. Yes I agree this framework is better but what do we gain, do we really need it etc
I think AI is going to make this even worse, because now every person and their mom think that they can create a prompt carefully enough so as to create a new library with their own philosophy.
It can mean a category flag someone waves, an identifier we ask others to respect, a group we choose to belong to, a way of understanding what it is we like about ourselves, or something we quietly aspire to.
Or literally a part of the self, which is what the OP was getting at I think. And there is plenty of that in the software world. "I'm a Rubyist", "I'm a Pythonista", "A rustacean" and so on. There is plenty of identity ridiculousness. I've been a C programmer but I've also been a basic programmer an assembly language programmer, a PHP programmer, a FORTH programmer and a whole list of others. To me that collapses to "I'm a programmer" (even if the sage advice on HN by the gurus is to never call yourself a programmer I'm more than happy to do so). It defines what I do, not what or who I am, and it only defines a very small part of what I do. That's one reason why I can't stand the us-vs-them mentality that some programming languages seem to install in their practitioners.
I think it’s because C++ programmers tend to define themselves by the domain they work in. Game developer, embedded systems engineer, firmware developer, etc.
I feel like it implies "it's harder to make a word out of 'C++' than it is for things that already naturally evolved as words people say like 'Ruby', 'Python', or 'Rust'".
I agree with your comment. While reading the article, I had sympathy for the author, but also unintendedly pictured them as a mix of all of the "wizard" seniors I have worked with over the years. These are the type of people who when pair programming, constantly point out what they perceive as problems with your development setup, IDE, keyboard-macro skills, lack of tiling layout, etc etc. Not to mention what they will suggest on your actual PRs.
At the end of the day, I like the mental model of programming, and I am somewhat uninterested in shaving every millimeter of friction off of every surface I touch on my computer. Does that make me a worse programmer? Maybe? I still delivered plenty of high quality code.
> constantly point out what they perceive as problems with...
Yeah, screw those people. I count myself as lucky that I've only worked with 1 person who was seriously CRITICAL of the way other's worked... beyond just code quality. However, I always enjoyed a good discussion about the various differences in how people worked, as long as they could accept there's no "right" way. That's what the article brought up for me, and I wonder how much that happens these days.
One of my fondest memories was sitting around with a few other devs after work, and one had started learning Go pretty soon after its public release... and he would show us some new, cool thing he was playing around with. Of course those kind of organic things stopped with remote work, and I wonder how much THAT has played into the loss of identity?
> At the end of the day, I like the mental model of programming, and I am somewhat uninterested in shaving every millimeter of friction off of every surface I touch on my computer. Does that make me a worse programmer? Maybe? I still delivered plenty of high quality code.
In every pursuit there are secretly 3 different communities. Those who love doing the thing, those who love tinkering with the gear, those who love talking about it.
HackerNews and the internet in general are dominated by people who like to nerd out about the gear of programming (IDEs, text editors, languages, agent setups, …) and the people who like to talk about programming. The people doing most of the work are off on the side too busy doing the thing to be noticed.
But some of the worst experiences I’ve had with coworkers were with those who made programming part of their identity. Every technical disagreement on a PR became a threat to identity or principles, and ceased being about making the right decision in that moment. Identity means: there’s us, and them, and they don’t get it.
‘Programmer’ is much better off as a description of one who does an activity. Not an identity.