Discover this podcast and so much more

Podcasts are free to enjoy without a subscription. We also offer ebooks, audiobooks, and so much more for just $11.99/month.

Static Code Analysis in Elixir vs. Ruby with René Föhring & Marc-André Lafortune

Static Code Analysis in Elixir vs. Ruby with René Föhring & Marc-André Lafortune

FromElixir Wizards


Static Code Analysis in Elixir vs. Ruby with René Föhring & Marc-André Lafortune

FromElixir Wizards

ratings:
Length:
46 minutes
Released:
Dec 14, 2023
Format:
Podcast episode

Description

In this episode of Elixir Wizards, hosts Owen and Dan are joined by René Föhring, creator of Credo for Elixir, and Marc-André LaFortune, head maintainer of the RuboCop AST library for Ruby. They compare static code analysis in Ruby versus Elixir.
The conversation explores the intricacies and challenges inherent in static code analysis across object-oriented and functional programming paradigms, highlighting the unique characteristics of both Ruby and Elixir. Key topics of discussion include the ways these tools can enhance coding styles and empower developers, the delicate balance between providing guidance and enforcing rules, and the evolving future of code analysis in these languages.
Topics discussed in this episode:
The differences and applications between static and dynamic analysis
How Credo aims to offer flexible and educational guidance for Elixir developers
The complexities of method identification in Ruby and its impact on static analysis
Challenges posed by macros and dynamic code modification during compilation in Elixir
Reducing false positives in code analysis tools to minimize developer frustration
Promoting uniform coding practices through analysis tools
The significance of using analysis tools with clear, specific objectives
How coding standards can refine and improve coding styles over time
Building analysis tools and checks through an understanding of Abstract Syntax Trees (ASTs)
Potential advancements in the analysis of Phoenix templates and HTML in Elixir
Contrasting approaches to managing code and comments in Elixir and Ruby ASTs
The fine line between providing helpful guidance and imposing stylistic preferences
Heuristics in static analysis highlight inconsistencies without mandating style
The potential for more straightforward pattern matching in ASTs with future updates
The importance of a gradual implementation of tool updates to maintain backward compatibility
Creating tools that support and empower developers, rather than hinder them
How static analysis contributes to cleaner, more maintainable codebases
Potential future developments in the field of static code analysis
Practical applications of using linters like Credo and RuboCop in software development
Links mentioned in this episode:
Credo https://github.com/rrrene/credo
https://hexdocs.pm/credo/overview.html
Dogma: A code style linter for Elixir https://github.com/lpil/dogma
https://github.com/rubocop/rubocop
RuboCop's AST extensions and NodePattern functionality https://github.com/rubocop/rubocop-ast
https://github.com/whitequark/parser
https://hex.pm/packages?search=credo&sort=recentdownloads
https://github.com/doorgan/sourceror
https://github.com/rrrene/credo/blob/master/lib/credo/check/readability/largenumbers.ex Special Guests: Marc-André Lafortune and René Föhring.
Released:
Dec 14, 2023
Format:
Podcast episode

Titles in the series (100)

Elixir Wizards is an interview-style podcast for anyone interested in functional programming and the Elixir Programming Language. Hosted by SmartLogic engineers Sundi Myint, Owen Bickford, Bilal Hankins, and Dan Ivovich, this show features in-depth discussions with some of the brightest minds in the industry, discussing training and documentation in Phoenix LiveView, the evolution of programming languages, Erlang VM, and more. In the current season, we're celebrating a decade of Elixir and exploring what the next ten years hold for this powerful language. With expert insights from guests including José Valim, Hugo Baraúna, and Saša Juric, we discuss emerging trends in cyber security, cloud infrastructure, web transports, machine learning, static vs dynamic types, and what the future might hold for Elixir developers. Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)