For me it's simple: 1. Assume you're to work on product/feature X. 2. If God were to descend and give you a very good, reality-tested spec: 3. Would you be done faster? Of course, because as every AI doomer says, writing code was never the bottleneck!!1! 4. So the only bottleneck is getting to the spec. 5. Guess what AI can help you with as well, because you can iterate out multiple versions with little mental effort…
Codegen is not productivity
81–90 of 103 posts
Re: Codegen is not productivity
#82I continue to jump into these discussions because I feel like these upvoted posts completely miss what’s happening… - guardrails are required to generate useful results from GenAI. This should include clear instructions on design patterns, testing depth, and iterative assessments. - architecture decision records are one useful way to prevent GenAI from being overly positive. - very large portions of code can be compl…
> - No one should care about actual code ever again. It’s ephemeral. The role of software engineering is now molding features and requirements into functional results. Choosing Rust, C#, Java, or Typescript might matter depending on the domain, but then you stop caring and focus on measuring success. I think this has always been the case. "Bad programmers worry about the code. Good programmers worry about data struct…
Re: Codegen is not productivity
#83rules of thumb for when to take blog posts about AI coding seriously: - must be using the latest state of the art model from the big US labs - must be on a three digit USD per month plan - must be using the latest version of a full major harness like codex, opencode, pi - agent must have access to linting, compilation tools and IDE feedback - user must instruct agent to use test driven development and write tests for…
Maybe knock it off since the rules changed to not allow AI comments.
Re: Codegen is not productivity
#84I went to look at some of the authors other posts and found this: https://www.antifound.com/posts/advent-of-code-2022/ So much of our industry has spent the last two decades honing itself into a temple built around the idea of "leet code". From the interview to things like advent of code. Solving brain teasers, knowing your algorithms cold in an interview was always a terrible idea. And the sort of engineers it invit…
> The complaints about LLM's that lack any information about the domains being worked in, the means of integration (deep in your IDE vs cut and paste into vim) and what your asking it to do (in a very literal sense) are the critical factors that remain "un aired" in these sorts of laments. I'm not sure if this is a direct response to the article or a general point. The article includes an appendix about my use of LLM…
Re: Codegen is not productivity
#85Earlier quoted context omitted.
> I can You can because, I guess, your project may have a small scope, few people working on it, no dependencies etc. I cannot, because each line that I change has an effect in millions of other lines and hundreds of other people, and millions of users. Different situation, different needs.
> each line that I change has an effect in millions of other lines That sounds like an architectural problem.
Re: Codegen is not productivity
#86Earlier quoted context omitted.
> The complaints about LLM's that lack any information about the domains being worked in, the means of integration (deep in your IDE vs cut and paste into vim) and what your asking it to do (in a very literal sense) are the critical factors that remain "un aired" in these sorts of laments. I'm not sure if this is a direct response to the article or a general point. The article includes an appendix about my use of LLM…
Not GP, but your appendix about LLM usage matches exactly how I use it too: mainly for rubber ducking and research. The codegen it's useful for (that I've found) is generating unit tests. Code coverage tools and a quick skim are more than sufficient for quality checks since unit tests are mostly boilerplate and you want to make sure that different branches are being covered.
Re: Codegen is not productivity
#87Earlier quoted context omitted.
> - No one should care about actual code ever again. It’s ephemeral. The role of software engineering is now molding features and requirements into functional results. Choosing Rust, C#, Java, or Typescript might matter depending on the domain, but then you stop caring and focus on measuring success. I think this has always been the case. "Bad programmers worry about the code. Good programmers worry about data struct…
Data structures are still conversational items. I come from the DDD community and adamantly push back on data first architectures. Modules or Bounded Contexts reveal their relationships and data over time.
Re: Codegen is not productivity
#88I continue to jump into these discussions because I feel like these upvoted posts completely miss what’s happening… - guardrails are required to generate useful results from GenAI. This should include clear instructions on design patterns, testing depth, and iterative assessments. - architecture decision records are one useful way to prevent GenAI from being overly positive. - very large portions of code can be compl…
> very large portions of code can be completely regenerated quickly when scope and requirements change.
This is complete and utter nonsense coming from someone who isn't actually sticking around maintaining a product long enough in this manner to see the end result of this.
All of this advice sounds like it comes from experience instead of theoretical underpinning or reasoning from first principles. But this type of coding is barely a year old, so there's no way you could have enough experience to make these proclamations.
Based on what I can talk about from decades of experience and study:
No natural language specification or test suite is complete enough to allow you to regenerate very large swaths of code without changing thousands of observable behaviors that will be surfaced to users as churn, jank, and broken workflows. The code is the spec. Any spec detailed enough to allow 2 different teams (or 2 different models or prompts) to produce semantically equivalent output is going to be functionally equivalent to code. We as an industry have learned this lesson multiple times.
I'd bet $1,000 that there is no non-trivial commercial software in existence where you could randomly change 5% of the implementation while still keeping to the spec and it wouldn't result in a flood of bug reports.
The advantage of prompting in a natural language is that the AI fills in the gaps for you. It does this by making thousands of small decisions when implementing your prompt. That's fine for one offs, and it's fine if you take the time to understand what those decisions are. You can't just let the LLM change all of those decision on a whim, which is the natural result of generating large swaths of code, ignoring it, and pretending it's ephemeral.
Re: Codegen is not productivity
#89The collaboration aspect is what many AI enthusiasts miss. As humans, our success is dependent on our ability to collaborate with others. You may believe that AI could replace many individual software engineers, but if it does so at the expense of harming collaboration, it’s a massive loss. AI tools are simply not good at collaborating. When you add many humans to a project, the result becomes greater than the sum of…
AI will allow us to collaborate on higher level decisions and not on whether we should use for loops or functional interfaces.
Re: Codegen is not productivity
#90Earlier quoted context omitted.
I read that as you have never been debugging a production issue at 3am while losing data and/or revenue.
AI helps in both, so not sure what your point is? its like saying "don't write code because we will have to debug it later".