Logo
    Search

    Podcast Summary

    • AI-generated code maintainabilityAI-generated code may run and compile but its long-term impact on productivity and organization health depends on its comprehensibility to future maintainers. Recent studies suggest an increase in copy-pasted code and faster rate of change in AI-generated code, which can be challenging to maintain.

      While AI-generated code may be able to run and compile, its long-term impact on productivity and organization health depends on its comprehensibility to future maintainers. Bill Harding, CEO of Get Clear, discussed his background in programming and how his company's research aimed to assess code quality based on signals around how the code is committed and used. The study found that since AI's proliferation, there has been an increase in copy-pasted code, which can be challenging to maintain, and a faster rate of change in recently committed code. These findings suggest that while AI-generated code may be sufficient in the short term, it may not be optimal for long-term maintainability. It's essential to consider these factors when evaluating the quality and impact of AI-generated code.

    • Code aging and maintenanceThe aging of code repositories presents a challenge for developers, with increased code transformation in the initial stages and decreased changes over time. GitClear's code interpretation engine helps save time by analyzing unchanged code during reviews, while observing an increase in copy pasted code and significant updates within the first two weeks.

      The aging of code repositories and the maintenance thereof has become a significant challenge for developers, with about 50% higher rates of code transformation within the first two weeks and a decrease in changes after a year or two. This issue is dependent on developers finding time and methods to update legacy code, which has seen less attention since the proliferation of AI. GitClear, a company focused on helping developers write better code and work with less tech debt, has developed a code interpretation engine that allows for granular analysis of changes, such as moved, copied, and find replace code. This information enables developers to save time by minimizing their attention on unchanged code when reviewing. With access to over 153 million change lines of code from both open-source projects and customers' repositories, GitClear has observed an increase in copy pasted code, although the exact origin of that code, such as Stack Overflow, remains unknown. Previous research showed that about one in four people were copying from Stack Overflow answers. However, a noteworthy finding is the significant increase in code that is edited, updated, or removed within the first two weeks.

    • AI and code additionsAI in coding may lead to more complicated code and subtle bugs due to an increase in code additions, but it's less effective at suggesting code reductions or optimizing existing code. Developers should exercise caution and consider the potential implications before accepting AI suggestions.

      The use of AI in coding has led to an increase in code additions, potentially resulting in more complicated code and subtle bugs. This trend was observed in a study that showed an increase from 64% to 74% of commits containing added code. The reasoning behind this is that developers, especially when fatigued, may be more inclined to accept AI suggestions without fully considering their implications. However, AI is currently less effective at suggesting code reductions or optimizing existing code. Additionally, the study identified an increase in copy-pasted code, some of which may be the result of AI suggestions. The study did not have specific data on the origin of these code blocks, whether they were entirely generated by AI or a combination of human and AI contributions. Overall, while AI can be a valuable tool for suggesting additions, it's important for developers to exercise caution and consider the potential implications before accepting these suggestions.

    • AI impact on code efficiencyAI tools like Copilot offer quick solutions, potentially reducing the need for developers to search for and move existing methods, increasing productivity and developer satisfaction, but may lead to more frequent code churn and potentially lower-quality code. Further research is needed to understand the long-term implications.

      The use of drop and move code, or refactoring, is a significant aspect of a developer's daily work, making up around 25% of all changes in 2020. This trend has since decreased to 17% in 2023, which may be due in part to the increasing availability of AI code assistance. Historically, developers have moved code to reuse similar methods and maximize efficiency. However, AI tools like Copilot offer quick solutions, potentially reducing the need for developers to search for and move existing methods. GitHub's study also reported increased productivity and developer satisfaction. Both findings could be true, as AI tools can help complete tasks faster, but the long-term impact on code quality and the frequency of changes remains to be seen. The convenience of AI assistance may lead to more frequent code churn and potentially lower-quality code. It's important to consider the cost-benefit analysis of these changes. While developers may be producing more code and feeling more energized, they may also be reverting or moving code more frequently, which could impact overall code quality. Further research is needed to fully understand the implications of these trends. In conclusion, the integration of AI tools into development workflows is changing the way developers approach their tasks. While these tools offer significant benefits, it's crucial to consider their impact on long-term code quality and efficiency.

    • Code consolidationAI-generated code may lead to decreased productivity and test coverage due to lack of consolidation and reuse, requiring teams to actively seek opportunities for code cleanup

      While using AI to generate code can save time in the short term, it may lead to a low percentage of similar methods being consolidated and reused, resulting in a decrease in productivity and test coverage over time. The risk is that teams may end up with multiple untested methods, which can slow down development in the long run. Although larger language models with massive context windows may help, there is a need for teams to actively seek opportunities to reuse and clean up their existing code. However, without proper incentives or technical leadership, teams may not prioritize this task, making it a challenging problem to address. It's important for teams to be aware of this issue and consider the long-term implications of adding code without proper reuse and consolidation.

    • Gen AI method recognitionGen AI needs to recognize and reuse existing methods in codebase to produce human-level code, but identifying opportunities for method modifications to make them more flexible is the bigger challenge. AI needs to be trained on code evolution and human tweaks to methods.

      While Generative AI (Gen AI) has made significant strides, it still needs to be able to recognize and reuse existing methods within a codebase to produce code on par with human developers. The first step is for Gen AI to have a large enough token size to enable it to recognize existing methods. However, the second and more challenging step is for Gen AI to identify opportunities for existing methods to be modified slightly to make them more flexible and applicable to different contexts. This will require an AI that has been trained on how code evolves and where humans often make tweaks to existing methods. While the dream is for Gen AI to be able to cite specific instances of these modifications within a team's codebase, this is currently not a short-term solution. In the meantime, teams can benefit from using tools like Stack Overflow to find and learn from existing solutions, and from research and resources like Get Clear to improve code quality and make pull request reviews faster.

    Recent Episodes from The Stack Overflow Podcast

    How to build open source apps in a highly regulated industry

    How to build open source apps in a highly regulated industry

    Before Medplum, Reshma founded and exited two startups in the healthcare space – MedXT (managing medical images online acquired by Box) and Droplet (at-home diagnostics company acquired by Ro). Reshma has a B.S. in computer science and a Masters of Engineering from MIT.

    You can learn more about Medplum here and check out their Github, which has over 1,200 stars, here.

    You can learn more about Khilnani on her website, GitHub, and on LinkedIn.

    Congrats to Stack Overflow user Kvam for earning a Lifeboat Badge with an answer to the question: 

    What is the advantage of using a Bitarray when you can store your bool values in a bool[]?

    A very special 5-year-anniversary edition of the Stack Overflow podcast!

    A very special 5-year-anniversary edition of the Stack Overflow podcast!

    Cassidy reflect on her time as a CTO of a startup and how the shifting environment for funding has created new pressures and incentives for founders, developers, and venture capitalists.

    Ben tries to get a bead on a new Moore’s law for the GenAI era: when will we start to see diminishing returns and fewer step factor jumps? 

    Ben and Cassidy remember the time they made a viral joke of a keyboard!

    Ryan sees how things goes in cycles. A Stack Overflow job board is back! And what do we make of the trend of AI assisted job interviews where cover letters and even technical interviews have a bot in the background helping out.

    Congrats to Erwin Brandstetter for winning a lifeboat badge with an answer to this question:  How do I convert a simple select query like select * from customers into a stored procedure / function in pg?

    Say goodbye to "junior" engineering roles

    Say goodbye to "junior" engineering roles

    How would all this work in practice? Of course, any metric you set out can easily become a target that developers look to game. With Snapshot Reviews, the goal is to get a high level overview of a software team’s total activity and then use AI to measure the complexity of the tasks and output.

    If a pull request attached to a Jira ticket is evaluated as simple by the system, for example, and a programmer takes weeks to finish it, then their productivity would be scored poorly. If a coder pushes code changes only once or twice a week, but the system rates them as complex and useful, then a high score would be awarded. 

    You can learn more about Snapshot Reviews here.

    You can learn more about Flatiron Software here.

    Connect with Kirim on LinkedIn here.

    Congrats to Stack Overflow user Cherry who earned a great question badge for asking: Is it safe to use ALGORITHM=INPLACE for MySQL?

    Making ETL pipelines a thing of the past

    Making ETL pipelines a thing of the past

    RelationalAI’s first big partner is Snowflake, meaning customers can now start using their data with GenAI without worrying about the privacy, security, and governance hassle that would come with porting their data to a new cloud provider. The company promises it can also add metadata and a knowledge graph to existing data without pushing it through an ETL pipeline.

    You can learn more about the company’s services here.

    You can catch up with Cassie on LinkedIn.

    Congrats to Stack Overflow user antimirov for earning a lifeboat badge by providing a great answer to the question: 

    How do you efficiently compare two sets in Python?

    The world’s most popular web framework is going AI native

    The world’s most popular web framework is going AI native

    Palmer says that a huge percentage of today’s top websites, including apps like ChartGPT, Perplexity, and Claude, were built with Vercel’s Next.JS. 

    For the second goal, you can see what Vercel is up to with its v0 project, which lets developers use text prompts and images to generate code. 

    Third, the Vercel AI SDK, which aims to to help developers build conversational, streaming, and chat user interfaces in JavaScript and TypeScript. You can learn more here.

    If you want to catch Jared posting memes, check him out on Twitter. If you want to learn more abiout the AI SDK, check it out 

    here.

    A big thanks to Pierce Darragh for providing a great answer and earning a lifeboat badge by saving a question from the dustinbin of history. Pierce explained: How you can split documents into training set and test set

    Can software startups that need $$$ avoid venture captial?

    Can software startups that need $$$ avoid venture captial?

    You can find Shestakofsky on his website or check him out on X.

    Grab a copy of his new book: Behind the Startup: How Venture Capital Shapes Work, Innovation, and Inequality. 

    As he writes on his website, the book:

    Draws on 19 months of participant-observation research to examine how investors’ demand for rapid growth created organizational problems that managers solved by combining high-tech systems with low-wage human labor. The book shows how the burdens imposed on startups by venture capital—as well as the benefits and costs of “moving fast and breaking things”—are unevenly distributed across a company’s workforce and customers. With its focus on the financialization of innovation, Behind the Startup explains how the gains generated by tech startups are funneled into the pockets of a small cadre of elite investors and entrepreneurs. To promote innovation that benefits the many rather than the few, Shestakofsky argues that we should focus less on fixing the technology and more on changing the financial infrastructure that supports it.

    A big thanks to our user of the week, Parusnik, who was awarded a Great Question badge for asking: How to run a .NET Core console application on Linux?

    An open-source development paradigm

    An open-source development paradigm

    Temporal is an open-source implementation of durable execution, a development paradigm that preserves complete application state so that upon host or software failure it can seamlessly migrate execution to another machine. Learn how it works or dive into the docs. 

    Temporal’s SaaS offering is Temporal Cloud.

    Replay is a three-day conference focused on durable execution. Replay 2024 is September 18-20 in Seattle, Washington, USA. Get your early bird tickets or submit a talk proposal!

    Connect with Maxim on LinkedIn.

    User Honda hoda earned a Famous Question badge for SQLSTATE[01000]: Warning: 1265 Data truncated for column.