Ruby Video
Talks
Speakers
Events
Topics
Leaderboard
Sign in
Talks
Speakers
Events
Topics
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
4 Programming Paradigms in 45 Minutes by Aja Hammerly One of the most important lessons I've learned is that programming languages are tools and not all tools are good for all jobs. Some tasks are easier to solve functionally. Some are clearly suited for OO. Others get simpler when you use constraint solving or pattern matching. Let's go on a whirlwind tour of 4 different programming languages emphasizing different programming techniques: OO, functional, logical, and procedural. You'll leave this talk with a better understanding of which languages are best suited to which types of jobs and a list of resources for learning more.
Date
Summary
Markdown supported
### Overview of the Video The video, "4 Programming Paradigms in 45 Minutes," presented by Aja Hammerly at RubyConf 2017, explores four distinct programming paradigms: Object-Oriented, Functional, Logical, and Procedural programming. The speaker emphasizes the importance of understanding different programming languages as tools suited for specific tasks, aiming to enhance attendees' abilities to choose the right tools for their programming jobs. ### Key Points Discussed - **Introduction and Background** Aja Hammerly discusses her experiences in a college course that covered multiple programming languages, highlighting insights gained on abstraction and the flexibility of being a polyglot programmer. - **Object-Oriented Programming (OOP) with Ruby** - Everything in Ruby is an object, with attributes (state) and behaviors (methods). - Objects communicate through message passing. - Example: Building a `BankAccount` class to illustrate concepts of state and behavior. - Strengths of OOP include the ability to model real-life concepts, promote reusability, and ease of testing. - **Functional Programming with Racket** - Emphasis on pure functional programming, where functions do not alter state or mutate incoming data. - Example: Calculating a factorial and Fibonacci numbers, showcasing functional style through recursion. - Advantages include simpler testing due to clear input-output relationships and ease of code reuse. - **Logical Programming with Prolog** - Explanation of how Prolog operates based on formal logic using facts and clauses. - Example: Building a family tree and defining relationships. - Unique aspect includes the ability to query data both forwards and backwards, increasing flexibility for problem-solving. - **Procedural Programming** - Illustrated using assembly language with a focus on basic operations and algorithm development. - Highlighted the straightforward and instinctive nature of procedural programming outlined in a change-making algorithm. ### Conclusions and Takeaways - Each programming paradigm excels in different contexts, reinforcing that programmers should learn to identify the best language for the job. - Understanding the underlying concepts across languages can significantly improve a developer's adaptability and efficiency in solving various programming problems. - Attendees are encouraged to explore additional resources to deepen their understanding of these paradigms, as time constraints limited the depth of the discussion in the video.
Suggest modifications
Cancel