Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf 2016 - Why recursion matters by James Coglan In modern programming, recursion is so common that we take it for granted. We work with recursive processes and structures every day, and it's easy to forget that recursion was once a highly contentious issue in programming language design. But there's more to recursion than meets the eye. In this talk I'll discuss how it is fundamental to computing; how it can prove programs are correct, make them run faster, and even let you run programs backwards! Along the way we'll meet maths, Haskell, Bash, JavaScript, and our old friend Ruby doing some very surprising things.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this talk, James Coglan presents the significance of recursion in programming, shedding light on its historical context and its prevalent use in modern programming practices. He emphasizes that while recursion was once controversial in programming language design, it has become a fundamental tool that programmers utilize to simplify complex structures and processes. Key points discussed include: - **Historical Context**: Recursion was a contentious topic in early programming, but it is now commonly accepted and used. Coglan highlights how intuitive recursive tasks, like deleting directories or web crawling, are often taken for granted. - **Recursive Structures**: The speaker differentiates between recursive functions and recursive structures, noting that they are omnipresent in tasks like generating HTML or managing file organization. - **Correctness via Recursion**: Coglan explains how recursion helps prove program correctness through mathematical induction. He discusses how recursive definitions in functional programming languages, such as Haskell, enable more straightforward proofs and understanding of data structures like lists. - **Performance Optimizations**: Specifically, he mentions the compilation of CoffeeScript files into JavaScript as an example of how recursion can lead to performance optimizations. By utilizing structures like Makefiles, programmers can effectively manage dependencies and reduce redundancy, leading to faster compilation times. - **Time Travel in Programming**: The concept of running programs backwards is introduced, with an explanation of how certain languages manipulate structures to achieve reversible computations. Coglan uses Micro-Caml as a case study to illustrate how expressing relationships rather than mechanics allows for more natural compositions in programming. In conclusion, Coglan advocates for a shift towards understanding recursion not just as a programming technique but as a method to express structures and relationships clearly, arguing that this approach leads to better solutions in problem-solving. He encourages viewers to consider how they design their applications and embrace a structural approach to programming. The talk demonstrates that recursion is not just a tool, but a powerful concept that intersects correctness, efficiency, and expressiveness in programming.
Suggest modifications
Cancel