DeepMind's AlphaCode Won't Steal Your Job Either

DeepMind's AlphaCode Won't Steal Your Job Either

Another new fancy AI tool. We keep getting closer to the singularity. But not on programming.

TL;DR: Wait until machine learning solutions solve real business problems.

Alphabet’s DeepMind, Microsoft’s Github, and OpenAI are leading the Artificial Intelligence coding segment.

With different approaches, they try to solve coding challenges.

They use transformer-based language models to generate code.

AlphaCode achieved an estimated rank within the top 54% of participants in programming competitions by solving new problems that require a combination of critical thinking, logic, algorithms, coding, and natural language understanding.

Deep Mind’s product was trained and competed against humans at Codeforces contests.

With overfitting claims, it outperformed several people at those contests.

Results are available online.

A careful look at the datasets shows basic algorithmic solutions with output code full of code smells many human counterparts make.

Variables with bad names, Lots of ifs, too long methods, global functions are some examples of these smells many code reviewers would not approve.

No hay texto alternativo para esta imagen

The three current solutions (AlphaCode, GitHub Copilot, GPT3 focus on competitive programming, an area where performance is the ultimate goal and readability is not important.

The final?frontier

Model domain entities and business behavior instead of boring and repetitive algorithms full of code smells.

Try to understand the entities and the behaviour on your simulation software.

References

Why Copilot is not a threat

GP3 Journey

What should you?do?

Stop competing against smarter machines than you.

Learn and model rich domains.

You will keep your job for a few more years…

要查看或添加评论,请登录

Maximiliano Contieri的更多文章

  • Code Smell 273 - Overengineering

    Code Smell 273 - Overengineering

    Keep It Simple, Stupid TL;DR: Overengineering complicates your code. Problems Unnecessary accidental complexity…

  • Code Smell 272 - API Chain

    Code Smell 272 - API Chain

    Streamline Your API Tests: Less is More TL;DR: Use primitive steps to verify API behavior instead of direct requests…

  • Code Smell 271 - The Hollywood Principle

    Code Smell 271 - The Hollywood Principle

    Don't Call Us, We'll Call You TL;DR: The Hollywood Principle promotes loose coupling by inverting control. High-level…

  • Code Smell 270 - Boolean APIs

    Code Smell 270 - Boolean APIs

    Avoid booleans, always TL;DR: Replace boolean security flags in APIs with separate, more secure endpoints. Problems…

  • Refactoring 016 - Build With The Essence

    Refactoring 016 - Build With The Essence

    Building Immutable foundations from the ground TL;DR: Pass essential attributes during object creation to reduce…

  • Code Smell 269 - Low-Level Addition

    Code Smell 269 - Low-Level Addition

    Don't care how you do things. Care about what you do TL;DR: Ditch the Loops: Write Cleaner Code with Declarative Style…

  • Code Smell 268 - Ternary Metaprogramming

    Code Smell 268 - Ternary Metaprogramming

    The Ternary Metaprogramming Trap TL;DR: Avoid using ternary operators for dynamic method calls Problems Reduced code…

  • Coupling - The one and only software design problem

    Coupling - The one and only software design problem

    TL;DR: Why you should address coupling now A root cause analysis of many failures of our software will find a single…

  • Code Smell 267 - Objects Aliasing

    Code Smell 267 - Objects Aliasing

    Favor immutability to retain control of your objects TL;DR: Use immutable objects to prevent unexpected changes caused…

  • Code Smell 266 - Collection Aliasing

    Code Smell 266 - Collection Aliasing

    Exposing your collections couples your solution TL;DR: Use immutable collections to prevent unintended side effects…

社区洞察

其他会员也浏览了