I can only speak for myself but for me, it's all about the syntax. I am terrible at recalling the exact name of all the functions in a library or parameters in an API, which really slows me down when writing code. I've also explored all kinds of programming languages in different paradigms, which makes it hard to recall the exact syntax of operators (is comparison '=' or '==' in this language? Comments are // or /*? How many parameters does this function take, and in what order...) or control structures. But I'm good at high level programming concepts, so it's easy to say what I want in technical language and let the LLM find the exact syntax and command names for me.
I guess if you specialise in maintaining a code base with a single language and a fixed set of libraries then it becomes easier to remember all the details, but for me it will always be less effort to just search the names for whatever tools I want to include in a program at any point.
I agree with a bunch of this (I'm almost exclusively doing python and bash; bash is the one I can never remember more than the basics of). I will give the caveat that I historically haven't made use of fancy IDEs with easy lookup of function names, so would semi-often be fixing "ugh I got the function name wrong" mistakes.
Similar to how you outlined multi-language vs specialist, I wonder if "full stack" vs "niche" work unspokenly underlies some of the camps of "I just trust the AI" vs "it's not saving me any time".
There's a joke that's not entirely a joke that the job of a Google SWE is converting from one protobuf to another. That's generally not very fun code, IMO (which may differ from your opinion and that's why they're opinions!). Otoh, figuring out and writing some interesting logic catches my brain in a way that dealing with formats and interoperability stuff doesn't usually.
We're all did but we all probably have things we like more than others.
I mean, I agree if it's really just "machine translate this code to use the approved method of doing this thing". That seems like a perfect use case for AI. Though one would think Google would already have extensive code mod infrastructure for that kind of thing.
But those aren't the stories you hear about with people coding with AI, which is what prompted my response.
They do and I think a lot of that is LLM'd these days, though that's just what I hear third-hand.
I do agree that this:
> What’s gone is the tearing, exhausting manual labour of typing every single line of code.
seems more than a little overblown. But I do sympathize with not feeling motivated to write a lot of glue and boilerplate, and that "meh" often derails me on personal projects where it's just my internal motivation competing against my internal de-motivation. LLMs have been really good there, especially since many of those are cases where only I will run or deal with the code and it won't be exposed to the innertubes.
Maybe the author can't touch type, but that's a separate problem with its own solution. :)
How long have you been coding? How many languages and frameworks have you worked with? Where has your professional focus been?
I've written professional code in production for the past 15+ years in VB, C# (MVC2/MVC3 + Razor), Php(Yii, Yii2, Symfony), Perl, Python(Flask, Cherrpy), Java(Spring MVC, Spring boot, JSF, J2EE), Golang, Rust, Ruby. I've worked on build/ci pipelines from Jenkins, CircleCI, Github, Gitlab, Teamcity, etc. I've had to deploy/manage infrastructure from bare metal to the cloud with Ansible, Puppet, Saltstack, Terraform, Cloudformation. I've had to run on MySQL, Postgres, Mariadb, SQL Server and use ActiveMQ, RabbitMQ, Kafka, SQS, SNS, MSK, Kinesis (of all flavors). I could literally keep going and going and going.
I'm tired. It's way easier to prompt than keep track of all this shit at this point. I don't need to know how to implement $feature or $tool in each and every framework, I'll let the machines worry about that.
I've been writing professional code for 20 years at this point, using many languages, libraries, frameworks, etc. But I certainly don't use them all at the same time.
This also just feels like we're solving the wrong problem. Using AI doesn't fix any of it, it just makes it easier to make the problem worse faster.
I really struggle to understand how people can find coding more tedious than prompting. To each their own I guess.
I can only speak for myself but for me, it's all about the syntax. I am terrible at recalling the exact name of all the functions in a library or parameters in an API, which really slows me down when writing code. I've also explored all kinds of programming languages in different paradigms, which makes it hard to recall the exact syntax of operators (is comparison '=' or '==' in this language? Comments are // or /*? How many parameters does this function take, and in what order...) or control structures. But I'm good at high level programming concepts, so it's easy to say what I want in technical language and let the LLM find the exact syntax and command names for me.
I guess if you specialise in maintaining a code base with a single language and a fixed set of libraries then it becomes easier to remember all the details, but for me it will always be less effort to just search the names for whatever tools I want to include in a program at any point.
I agree with a bunch of this (I'm almost exclusively doing python and bash; bash is the one I can never remember more than the basics of). I will give the caveat that I historically haven't made use of fancy IDEs with easy lookup of function names, so would semi-often be fixing "ugh I got the function name wrong" mistakes.
Similar to how you outlined multi-language vs specialist, I wonder if "full stack" vs "niche" work unspokenly underlies some of the camps of "I just trust the AI" vs "it's not saving me any time".
Some code is fun and some sucks?
There's a joke that's not entirely a joke that the job of a Google SWE is converting from one protobuf to another. That's generally not very fun code, IMO (which may differ from your opinion and that's why they're opinions!). Otoh, figuring out and writing some interesting logic catches my brain in a way that dealing with formats and interoperability stuff doesn't usually.
We're all did but we all probably have things we like more than others.
I mean, I agree if it's really just "machine translate this code to use the approved method of doing this thing". That seems like a perfect use case for AI. Though one would think Google would already have extensive code mod infrastructure for that kind of thing.
But those aren't the stories you hear about with people coding with AI, which is what prompted my response.
They do and I think a lot of that is LLM'd these days, though that's just what I hear third-hand.
I do agree that this:
> What’s gone is the tearing, exhausting manual labour of typing every single line of code.
seems more than a little overblown. But I do sympathize with not feeling motivated to write a lot of glue and boilerplate, and that "meh" often derails me on personal projects where it's just my internal motivation competing against my internal de-motivation. LLMs have been really good there, especially since many of those are cases where only I will run or deal with the code and it won't be exposed to the innertubes.
Maybe the author can't touch type, but that's a separate problem with its own solution. :)
How long have you been coding? How many languages and frameworks have you worked with? Where has your professional focus been?
I've written professional code in production for the past 15+ years in VB, C# (MVC2/MVC3 + Razor), Php(Yii, Yii2, Symfony), Perl, Python(Flask, Cherrpy), Java(Spring MVC, Spring boot, JSF, J2EE), Golang, Rust, Ruby. I've worked on build/ci pipelines from Jenkins, CircleCI, Github, Gitlab, Teamcity, etc. I've had to deploy/manage infrastructure from bare metal to the cloud with Ansible, Puppet, Saltstack, Terraform, Cloudformation. I've had to run on MySQL, Postgres, Mariadb, SQL Server and use ActiveMQ, RabbitMQ, Kafka, SQS, SNS, MSK, Kinesis (of all flavors). I could literally keep going and going and going.
I'm tired. It's way easier to prompt than keep track of all this shit at this point. I don't need to know how to implement $feature or $tool in each and every framework, I'll let the machines worry about that.
I've been writing professional code for 20 years at this point, using many languages, libraries, frameworks, etc. But I certainly don't use them all at the same time.
This also just feels like we're solving the wrong problem. Using AI doesn't fix any of it, it just makes it easier to make the problem worse faster.
You haven't worked somewhere where you're working on multiple different microservices each written by different teams in different languages?
That absolutely sounds like a case where AI will only plaster over the problem and eventually make it worse.