I saw an LLM override the casting operator in C#. An evangelist would say “genius! what a novel solution!” I said “nobody at this company is going to know what this code is doing 6 months from now.”
Before LLMs people were often saying this about people smarter than the rest of the group. “Yeah he was too smart and overengineered solutions that no one could understand after he left,”. This is btw one of the reasons why I increasingly dislike programming as a field over the years and happily delegate the coding part to AI nowadays. This field celebrates conformism and that’s why humans shouldn’t write code manually. Perfect field to automate away via LLMs.
Before LLMs people were often saying this about people smarter than the rest of the group.
Smarter by whose metric? If you can’t write software that meets the bare minimum of comprehensibility, you’re probably not as smart as you think you are.
Software engineering is an engineering discipline, and conformity is exactly what you want in engineering — because in engineering you don’t call it ‘conformity’, you call it ‘standardization’. Nobody wants to hire a maverick bridge-builder, they wanna hire the guy who follows standards and best practices because that’s how you build a bridge that doesn’t fall down. The engineers who don’t follow standards and who deride others as being too stupid or too conservative to understand their vision are the ones who end up crushed to death by their imploding carbon fiber submarine at the bottom of the Atlantic.
AI has exactly the same “maverick” tendencies as human developers (because, surprise surprise, it’s trained on human output), and until that gets ironed out, it’s not suitable for writing anything more than the most basic boilerplate — which is stuff you can usually just copy-paste together in five minutes anyway.
You’re right of course and engineering as a whole is a first-line subject to AI. Everything that has strict specs, standards, invariants will benefit massively from it, and conforming is what AI inherently excels at, as opposed to humans. Those complaints like the one this subthread started with are usually people being bad at writing requirements rather than AI being bad at following them. If you approach requirements like in actual engineering fields, you will get corresponding results, while humans will struggle to fully conform or even try to find tricks and loopholes in your requirements to sidestep them and assert their will while technically still remaining in “barely legal” territory.
Why though? I think hating and maybe even disrespecting programming and wanting your job to be as much redundant and replaced as possible is actually the best mindset for a programmer. Maybe in the past it was a nice mindset to become a teamlead or a project manager, but nowadays with AI it’s a mindset for programmers.
Before LLMs people were often saying this about people smarter than the rest of the group. “Yeah he was too smart and overengineered solutions that no one could understand after he left,”.
The fact that I dislike it that it turned out that software engineering is not a good place for self-expression or for demonstrating your power level or the beauty and depth of your intricate thought patterns through advanced constructs and structures you come up with, doesn’t mean that I disagree that this is true.
It depends. If it’s difficult to maintain because it’s some terrible careless spaghetti written by person who didn’t care enough, then it’s definitely not a sign of intelligence or power level. But if it’s difficult to maintain because the rest of the team can’t wrap their head around type-level metaprogramming or edsl you came up with, then it’s a different case.
If I can go through a projects code base and tell you which developers on the team wrote each section of the entire app then you’ve utterly failed as a dev team. You can call that conformity or whatever but that’s what makes code easy to read and maintain. I don’t want to have to read or worse refactor the same problem from 4 different implementations because each dev on the team decided they wanted to do it their way.
I notice this when reviewing PR’s all the time. Most people don’t even follow simple stuff like the naming conventions of the code base they’re in and just do it ‘their way’. I’m sorry but I’m not merging a PR like that. (Yes, I know that there are tools that can enforce this, it’s just an example.)
You can call that conformity or whatever but that’s what makes code easy to read and maintain.
I agree, and this is why I think code doesn’t need to be manually written by humans (unless it’s for training AI or providing it examples). It’s a great thing that AI evolves so fast in this area.
Exactly. Code should be self-explanatory, and anything fancy should be clearly commented.
The difference between a good and great software engineer is understanding the cost of fancy code, and when it’s worth it to pay that cost. A great software engineer practices restraint, preferring code that even the most junior of engineers can maintain. Solutions should be extensible without serious refactors, and should attain good performance through good high-level design instead of low-level optimizations.
I’m guessing the “rockstar” OP is talking about went deep into the weeds of metaprogramming and even they can’t explain how it works a few weeks later. We have that crap here too, and nobody likes it, especially the seniors, but it’s so ingrained in the code that nobody wants to risk introducing bugs by fixing it.
Yup. I assist with hiring and ask questions to try to find these people and reject them. I don’t want that toxic culture here, and I’d absolutely prefer working with someone less talented than someone who is toxic like this. Talent can be learned, unfortunately ego is hard to unlearn.
Before LLMs people were often saying this about people smarter than the rest of the group. “Yeah he was too smart and overengineered solutions that no one could understand after he left,”. This is btw one of the reasons why I increasingly dislike programming as a field over the years and happily delegate the coding part to AI nowadays. This field celebrates conformism and that’s why humans shouldn’t write code manually. Perfect field to automate away via LLMs.
Smarter by whose metric? If you can’t write software that meets the bare minimum of comprehensibility, you’re probably not as smart as you think you are.
Software engineering is an engineering discipline, and conformity is exactly what you want in engineering — because in engineering you don’t call it ‘conformity’, you call it ‘standardization’. Nobody wants to hire a maverick bridge-builder, they wanna hire the guy who follows standards and best practices because that’s how you build a bridge that doesn’t fall down. The engineers who don’t follow standards and who deride others as being too stupid or too conservative to understand their vision are the ones who end up crushed to death by their imploding carbon fiber submarine at the bottom of the Atlantic.
AI has exactly the same “maverick” tendencies as human developers (because, surprise surprise, it’s trained on human output), and until that gets ironed out, it’s not suitable for writing anything more than the most basic boilerplate — which is stuff you can usually just copy-paste together in five minutes anyway.
You’re right of course and engineering as a whole is a first-line subject to AI. Everything that has strict specs, standards, invariants will benefit massively from it, and conforming is what AI inherently excels at, as opposed to humans. Those complaints like the one this subthread started with are usually people being bad at writing requirements rather than AI being bad at following them. If you approach requirements like in actual engineering fields, you will get corresponding results, while humans will struggle to fully conform or even try to find tricks and loopholes in your requirements to sidestep them and assert their will while technically still remaining in “barely legal” territory.
Wow you just completely destroyed any credibility about your software development opinions.
Why though? I think hating and maybe even disrespecting programming and wanting your job to be as much redundant and replaced as possible is actually the best mindset for a programmer. Maybe in the past it was a nice mindset to become a teamlead or a project manager, but nowadays with AI it’s a mindset for programmers.
This part.
deleted by creator
The fact that I dislike it that it turned out that software engineering is not a good place for self-expression or for demonstrating your power level or the beauty and depth of your intricate thought patterns through advanced constructs and structures you come up with, doesn’t mean that I disagree that this is true.
The problem is that you don’t realize that writing code that is difficult to maintain is in fact not a sign of intelligence, or “power level”.
It depends. If it’s difficult to maintain because it’s some terrible careless spaghetti written by person who didn’t care enough, then it’s definitely not a sign of intelligence or power level. But if it’s difficult to maintain because the rest of the team can’t wrap their head around type-level metaprogramming or edsl you came up with, then it’s a different case.
If I can go through a projects code base and tell you which developers on the team wrote each section of the entire app then you’ve utterly failed as a dev team. You can call that conformity or whatever but that’s what makes code easy to read and maintain. I don’t want to have to read or worse refactor the same problem from 4 different implementations because each dev on the team decided they wanted to do it their way.
I notice this when reviewing PR’s all the time. Most people don’t even follow simple stuff like the naming conventions of the code base they’re in and just do it ‘their way’. I’m sorry but I’m not merging a PR like that. (Yes, I know that there are tools that can enforce this, it’s just an example.)
I agree, and this is why I think code doesn’t need to be manually written by humans (unless it’s for training AI or providing it examples). It’s a great thing that AI evolves so fast in this area.
No. Both are hard to maintain. And in fact, I’d prefer the spaghetti. It can be untangled.
Exactly. Code should be self-explanatory, and anything fancy should be clearly commented.
The difference between a good and great software engineer is understanding the cost of fancy code, and when it’s worth it to pay that cost. A great software engineer practices restraint, preferring code that even the most junior of engineers can maintain. Solutions should be extensible without serious refactors, and should attain good performance through good high-level design instead of low-level optimizations.
I’m guessing the “rockstar” OP is talking about went deep into the weeds of metaprogramming and even they can’t explain how it works a few weeks later. We have that crap here too, and nobody likes it, especially the seniors, but it’s so ingrained in the code that nobody wants to risk introducing bugs by fixing it.
lolwut? I’m so tired of tech people acting like they’re the next Genghis Khan or Julius Caesar…
Yup. I assist with hiring and ask questions to try to find these people and reject them. I don’t want that toxic culture here, and I’d absolutely prefer working with someone less talented than someone who is toxic like this. Talent can be learned, unfortunately ego is hard to unlearn.
If your code is as comprehensible as that run-on sentence, I can understand why coworkers would ask you to please write simpler code.