メインコンテンツにスキップ

The Unreasonable Effectiveness of AI in Software Development with Eran Yahav, CTO of Tabnine

Richie and Eran explore AI's role in software development, the balance of AI assistance and manual coding, the impact of genAI on code review and documentation,the future of AI-driven workflows, and much more.
· 40 分 読む
Eran Yahav

Guest

Eran Yahav

Eran Yahav is an associate professor at the Computer Science Department at the Technion – Israel Institute of Technology and co-founder and CTO of Tabnine (formerly Codota). Prior to that, he was a research staff member at the IBM T.J. Watson Research Center in New York (2004-2010). He received his Ph.D. from Tel Aviv University (2005) and his B.Sc. from the Technion in 1996. His research interests include program analysis, program synthesis, and program verification. Eran is a recipient of the prestigious Alon Fellowship for Outstanding Young Researchers, the Andre Deloro Career Advancement Chair in Engineering, the 2020 Robin Milner Young Researcher Award (POPL talk here), the ERC Consolidator Grant as well as multiple best paper awards at various conferences.

Richie Cotton

Host

Richie Cotton

Richie helps individuals and organizations get better at using data and AI. He's been a data scientist since before it was called data science, and has written two books and created many DataCamp courses on the subject. He is a host of the DataFramed podcast, and runs DataCamp's webinar program.

Chat with AI Richie about every episode of DataFramed - all data champs welcome!

Key Quotes

The world is split into two camps, one that thinks that software development as a whole is going to be in natural language and, programing languages are a thing of the past, right? Why would you need to speak this foreign language of the machine? It seems like a waste of time. The machine should speak my language and it will be done with it. So that's one camp. There's another camp that says, these languages exist for a reason. And the reason is we do some security and be precise on what is the expected behavior without running the program.

AI can help you accelerate all activities across the software development lifecycle. Code generation, documentation generation, test generation, code review or deployment to production. On all stages of the SDLC, you already see assistance providing significant value and significant acceleration.

Key Takeaways

  1. Use AI for coding tasks where it’s easier to explain and verify results than to do the task manually. Focus on well-defined problems where you can quickly assess the quality of the output.

  2. AI speeds up coding but can slow down reviews. Set clear standards and robust processes for both AI and human reviewers to ensure quality and alignment with company guidelines

  3. Start using AI in low-risk, high-impact tasks like new projects, test generation, or documentation. This builds trust and showcases value before scaling to critical production tasks.

トランスクリプト

Richie Cotton: Hi, Eran. Welcome to the show.

Eran Yahav: Hey, thank you for having me.

Richie Cotton: Brilliant. We've talked about software development and using AI for quite a lot on the show, so I think a lot of our listeners are aware that AI works really well for developing software, writing code a lot of the time, but sometimes it doesn't. So, a big question to begin with is, like, when can you use AI systems and when do you want to handwrite code?

Eran Yahav: Yeah, I guess it's really like, I'd like to talk about it in terms of the fundamental theorem of GEN AI, which is not that fundamental, but I'll lay it out anyway, which says that GEN AI makes sense when the cost of specification Plus the cost of consuming the result is much, much smaller than doing the work manually.

, so it really makes sense to use any of this if the cost of explaining what you want and the cost of consuming back the result is much smaller than doing it yourself. So this is maybe too abstract, but that's the nature of fundamental theorems. Let me make it slightly more concrete here. It makes sense to use it.

If you can make a really quick, snap judgment that what you got is what you wanted, Then this, in certain domains, this is easier than in others. Let me give you a concrete example. Like let's say I'm writing my React application, then I can. See with my own eyes whether what I asked for is the UI I wanted, 

so I can make the snap judgment of like, I got what I wanted,

トピック

関連