just now

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

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.

First published

12/14/2023

Genres:

technology

how to

Listen to this episode

0:00 / 0:00

Summary

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=recent_downloads https://github.com/doorgan/sourceror https://github.com/rrrene/credo/blob/master/lib/credo/check/readability/large_numbers.exSpecial Guests: Marc-André Lafortune and René Föhring.

Duration

Parent Podcast

Elixir Wizards

View Podcast

Share this episode

Similar Episodes

    Adopting Elixir Finale with Sean Lewis, Anna Neyzberg, and René Föhring

    Release Date: 03/25/2021

    Authors: SmartLogic LLC

    Description: Season 5 ends with a bang as we welcome back Sean Lewis, Anna Neyzber, and René Föhring onto the show to share their journey on getting their companies and teams to adopt Elixir. We open our conversation with each guest sharing their first experiences with Elixir. After chatting about the changes that they’ve seen in the Elixir ecosystem, we explore Elixir’s benefits and how they’ve persuaded companies to make the Elixir leap. From zero downtime deployment to arguing for Elixir’s ability to solve immediate problems, we touch on the most convincing reasons for stakeholders to adopt Elixir. Following this, we unpack common Elixir criticisms before looking at the importance of hiring developers for their aptitude as well as for their skill set. Later, we discuss what we most appreciate about Elixir, with each guest sharing a story from producing an Elixir app. We round off an insightful episode by talking about Elixir accessibility and the top ways to train entry-level programmers. Join us as we wrap up this season for a last deep-dive on adopting Elixir. Key Points From This Episode: We introduce today’s panel, featuring Sean Lewis, Anna Neyzberg, and René Föhring. Hear how each guest discovered Elixir and what they’ve seen change in the ecosystem. Exploring our guests' first Elixir projects. The intersections between Elixir and cryptocurrency. How to persuade company stakeholders to adopt Elixir. Why choosing a language for scalability often isn’t as important as its immediate benefits. Unpacking common criticisms of Elixir adoption. How a culture of learning can push your company in the right direction. Anecdotes on getting companies to adopt Elixir. We touch on the benefits of using Elixir. Each guest reflects on their experiences producing and maintaining Elixir apps. How our guests are currently using Elixir. Using Credo to train new Elixir developers. Advice on making Elixir accessible to entry-level coders. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Discord — https://smr.tl/wizards-discord Elixir Wizards Email — [email protected] Elixir Wizards Conference — https://smartlogic.io/about/community/elixir-wizards-conference/ Anna Neyzberg on LinkedIn — https://www.linkedin.com/in/anna-neyzberg-93545316/ Anna Neyzberg on Twitter — https://twitter.com/ANeyzb Sean Lewis on LinkedIn— https://www.linkedin.com/in/sean-lewis-40375077/ René Föhring on Twitter — https://twitter.com/rrrene René Föhring — https://rrrene.org/ ElixirBridge — http://elixirbridge.org/ Carbon Five — https://www.carbonfive.com/ Genesis Block — https://genesisblock.com/ Genesis Block Jobs — https://genesisblock.com/jobs Credo on GitHub — https://github.com/rrrene/credo/ ElixirConf 2018 — https://elixirconf.com/2018 Ethereumex — https://hex.pm/packages/ethereumex Mana — https://github.com/mana-ethereum/mana Robinhood — https://robinhood.com/us/en/ Slack — https://slack.com/ PagerDuty — https://www.pagerduty.com/ Alexandra Episode — https://smartlogic.io/podcast/elixir-wizards/s5e10-chakeres/ Turing — https://turing.io/ Weedmaps — https://weedmaps.com/ Nav Inc. — https://www.nav.com/ ElixirStatus — https://elixirstatus.com/ Divvy — https://getdivvy.com/ Matt Mills — https://github.com/photomattmills Factorio — https://factorio.com/ Dyson Sphere Program — https://store.steampowered.com/app/1366540/DysonSphereProgram/ Special Guests: Anna Neyzberg, René Föhring, and Sean Lewis.

    Explicit: No

    Todd Resudek on the Impact of Elixir

    Release Date: 02/03/2022

    Authors: SmartLogic LLC

    Description: Welcome to the Season 7 finale! Today, we are joined by Todd Resudek, Staff Engineer at Jackpocket, to reflect on the past season and speak about the impact of Elixir, as well as a variety of other topics almost entirely unrelated to programming! Todd is a reformed graphic designer that got his start in web development 15 years ago. He has made a career in front-end development, PHP, Rails, and Elixir. He is also a member of the Hex core team and, in his spare time, he tinkers with hardware projects. In today’s episode of Elixir Wizards, you’ll learn more about the 2022 EMPEX Elixir Mountain event that Todd is co-organizing, the formula for anticipating how many people will turn up at your event, and what trains have to do with the history of timezones. We also touch on Todd’s hopes for the future of Elixir, how Elixir has impacted him, both personally and professionally, and why he recommends learning Elixir as a backup language, plus so much more! Tune in today for a fun discussion with Todd Resudek! ** Key Points From This Episode:** The hilarious and sometimes tragic mispronunciation of our names. Learn more about the 2022 EMPEX Elixir Mountain event that Todd is co-organizing. Todd shares a bit about his background and his allegiance to Wisconsin football. We discuss the formula for how many people to expect at your meetup (or wedding). Some interesting history on timezones and how they relate to trains. Dune memes, roller skating, a qualifier for couple skates, and more. Todd shares his favorite Elixir Wizards episode from Season 7: Brooklyn Zelenka. How Todd learned Elixir when he first started working at Weedmaps. Why he suggests learning Elixir as a ‘backup language’ rather than a primary one. His biggest hope for the future of Elixir: an even more diverse, welcoming community. How a functional programming language like Elixir has impacted the way Todd works. The personal impact the Elixir community has had for Todd by enabling new connections. Find out why Alex’s dog, Bean, loved the test kitchen at their previous workplace. Eric and Alex share how the impact of Elixir has changed for them throughout this season. What all our children, human and animal, had for breakfast. Links Mentioned in Today’s Episode: Todd Resudek on LinkedIn — https://www.linkedin.com/in/toddresudek/ Todd Resudek on Twitter — https://twitter.com/sprsmpl Todd Resudek on GitHub — https://github.com/supersimple Todd Resudek — https://supersimple.org/ Jackpocket — https://jackpocket.com/ EMPEX Conference — https://www.empex.co/ EMPEX MTN 2022 — https://www.empex.co/mtn Alex’s Favorite Dune Meme — https://i.kym-cdn.com/photos/images/facebook/002/234/162/d96 ‘Brooklyn Zelenka and The Exciting World of Edge Computing’ — https://smartlogic.io/podcast/elixir-wizards/s7e9-zelenka/ Toucan — https://www.toucan.events Elixir Wizards |> Conference — https://smartlogic.io/about/community/elixir-wizards-conference/ SmartLogic — https://smartlogic.io/ Audience Survey -- https://smr.tl/survey Special Guest: Todd Resudek.

    Explicit: No

    John Mertens on Adopting Elixir at Change.org

    Release Date: 03/11/2021

    Authors: SmartLogic LLC

    Description: Many organizations take an incremental approach when adopting Elixir, preferring to pick up its nuances by using it to work on non-essential projects. But not Change.org. Today we speak with Change.org Director of Engineering John Mertens about how his company adopted Elixir to create a business-critical app that handles over a billion emails per month. From building webpages on GeoCities to working as an IT intern at an Iowan prison, we open our conversation by exploring John’s coding background. After chatting about his first Elixir project, we dive into Change.org’s process in adopting Elixir. As John shares his insights into successfully integrating Elixir into your tech stack, he highlights the benefits provided by the language. Later, John discusses the advantages of event-driven architecture and how this structure makes it easier for teams to access and analyze data, while also making it easier to add product features. We wrap up this episode with John highlighting his user-centered approach to coding. Join us to hear John’s lessons on making the leap and adopting Elixir in large organizations. Key Points From This Episode: John shares details about his role at Change.org. The story behind John and Change’s Elixir adoption. Hear about John’s coding journey. How John made an Elixir app based on spotting San Francisco tram carriages. Insights into the massive project that Change built using Elixir. Why Elixir is taking over Change’s back-end tech stack. Using Elixir to build reliable event-based architecture. Exploring event-driven architecture from the perspective of Change’s system. John makes a compelling case for event-driven architecture. How Change hires for Elixir roles. Change’s process in training their staff to code in Elixir. John talks about his user-centred approach to design. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Discord — https://smr.tl/wizards-discord Elixir Wizards Email — [email protected] John Mertens — https://www.mertonium.com/about John Mertens on Twitter — https://twitter.com/mertonium John Mertens on GitHub — https://github.com/mertonium Change.org — https://www.change.org/ Change.org Careers — https://careers.change.org/ José Valim — https://twitter.com/josevalim GenStage and Flow - José Valim (Lambda Days 2017) — https://www.youtube.com/watch?v=XPlXNUXmcgE Dashbit — https://dashbit.co/ Hacker News — https://thehackernews.com/ Paul Graham — https://twitter.com/paulg/ Nim — https://nim-lang.org/ Pony — https://www.ponylang.io/ Grax.io — https://www.grax.com/ Logo — https://el.media.mit.edu/logo-foundation/whatislogo/logo_programming.html Nerves — https://www.nerves-project.org/ Flow — https://hexdocs.pm/flow/Flow.html ElixirConf EU — https://www.elixirconf.eu/ Martin Fowler — https://martinfowler.com/ ‘The Log: What every software engineer should know about real-time data's unifying abstraction’ — https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying Salesforce Marketing Cloud — https://www.salesforce.com/eu/products/marketing-cloud/overview/ ‘Delivering social change with Elixir at Change.org’ — https://elixir-lang.org/blog/2020/10/27/delivering-social-change-with-elixir-at-change.org/ Code for America — https://www.codeforamerica.org/ Special Guest: John Mertens.

    Explicit: No

    Season 11 Kickoff: The Hosts Discuss Branching Out from Elixir to Compare Notes

    Release Date: 10/19/2023

    Authors: SmartLogic LLC

    Description: Hosts Dan Ivovich, Owen Bickford, and Sundi Myint kick off the 11th season of the Elixir Wizards podcast. This season’s theme is “Branching Out from Elixir,” which expands the conversation to compare notes with experts from other communities; they discuss their experiences with other languages like JavaScript, PHP, Python, Ruby, C#, Go, and Dart before and after learning Elixir. This season's conversations will illuminate how problems are solved in different languages vs. Elixir; upcoming episode topics teased include education, data processing, deployment strategies, and garbage collection; the hosts express excitement for conversations analyzing similarities and differences between communities. Topics Discussed in this Episode Season 11 branches out from Elixir to compare notes with other programming communities Sundi, Owen, and Dan introduce the season theme and their interest in exploring these conversations The hosts compare their experiences with PHP, JavaScript, Python, Ruby, C#, Go, Dart and Elixir The Wizards compare and contrast differences in their personal experience building similar things with different languages Dan dreams in Ruby and uses it for quick prototypes Comparing problem-solving approaches across languages will reframe perspectives Upcoming episodes explore data processing workflows, machine learning, and game development Pop Quiz: Who's that Pokémon... or language, or framework? Links Mentioned https://smartlogic.io/ https://codepen.io/ https://i.redd.it/0lg7979qtr511.jpg

    Explicit: No

Similar Podcasts

    Puro Elixir

    Release Date: 04/23/2021

    Authors: kommit.co

    Description: Puro Elixir es un podcast para la comunidad latina interesada en el lenguage de programación Elixir. Escucha un nuevo episodio cada semana.

    Explicit: No

    The Elixir of Love

    Release Date: 05/29/2021

    Authors: Jenny & Steven

    Description: Welcome to The Elixir of Love

    Explicit: No

    Elixir

    Release Date: 04/29/2021

    Authors: Elixir

    Description: O elixir nas histórias antigas é uma espécie de bebida que traz a cura. A ideia aqui é trazer o elixir a nossas conversas. Mas para isso, iremos tocar em temas que incomoda.

    Explicit: No

    Elixir

    Release Date: 06/25/2021

    Authors: Realm

    Description: In this Prohibition-inspired fantasy, two women from opposing sides of a ban on magic unite to solve a mystery...and end up falling into forbidden love. Elsie’s sister Lou is missing. The only clue she has leads her to a Hush bar: one of the last remaining—and illegal— establishments where people consume magical elixirs. Vera’s family has made elixirs for generations at The Jaded Rose. With her father imprisoned, she is responsible for protecting their traditions...no matter the cost. But as Vera helps Elsie find her sister, a temptation more potent than any elixir arises: risking it all for each other. Elixir is a Realm production, written by Ellen Goodlett. Listen Away.For more shows like this, visit Realm.fm

    Explicit: No

    Elixir

    Release Date: 09/08/2020

    Authors: Black Sketch

    Description: Introdução

    Explicit: No

    Elixir Outlaws

    Release Date: 09/09/2020

    Authors: Elixir Outlaws

    Description: Elixir Outlaws is an informal discussion about interesting things happening in Elixir. Our goal is to capture the spirit of a conference hallway discussion in a podcast.

    Explicit: No

    Elixir Newbie

    Release Date: 09/10/2021

    Authors: Brooklin Myers

    Description: A podcast about what it's like being new to Elixir. I (Brooklin Myers) share my experience, document my process, and summarize what I learn to help and encourage new Elixir developers.

    Explicit: No

    Full Court Press

    Release Date: 09/25/2020

    Authors: Washington Wizards Podcast Network

    Description: Dave Johnson, Glenn Consor, and Bryan Albin bring you everything Wizards as part of the Wizards Podcast Network.

    Explicit: No

    Locked On Wizards - Daily Podcast On The Washington Wizards

    Release Date: 09/07/2020

    Authors: Ed Oliver, Brandon Scott, Locked On Podcast Network

    Description: Locked On Wizards podcast is your daily ticket to stay ahead of the game and the first to know the latest news, analysis, and insider info for the Washington Wizards and the NBA. Hosts Ed Oliver – a former college basketball player and D.C. sports YouTuber – and lifelong Wizards fan Brandon Scott provide your daily Wizards fix with expert, local analysis, game recaps, opponent check-ins, and coverage of all aspects of the Wizards franchise. Locked On Wizards takes you beyond the scoreboard for the inside scoops on the biggest stories from within the Wizards locker room and all over the NBA. The Locked On Wizards podcast is part of the Locked On Podcast Network. Your Team. Every Day.

    Explicit: No

    Wizards Rave

    Release Date: 11/11/2021

    Authors: Justin Riebman

    Description: Wizards Rave is Generation Z Washington Wizards fans home to celebrate, vent, or just discuss their excitement or misery!

    Explicit: No

    The Wizards Hoops Analyst

    Release Date: 01/06/2021

    Authors: Hoop Heads Podcast Network

    Description: The Wizards Hoops Analyst is your audio home for all things Washington Wizards, part of the Hoop Heads Podcast Network. The Wizards Hoops Analyst is hosted by Bryce Haase and details all the latest happenings with the Washington Wizards. The podcast will include Bryce's analysis and opinions on the Washington Wizards and the NBA in general. Expect appearances from guests that will provide game previews and reactions, trade and free agency speculation, draft analysis, and more on both the Wizards and the NBA at large.

    Explicit: No