People & Blogs

Object Oriented Programming is not what I thought - Talk by Anjana Vakil

by freeCodeCamp Talks

Share:

📚 Main topics

  • Rethinking OOPAnjana Vakil describes how she once thought object-oriented programming was mainly about objects, classes, and inheritance. Learning about its underlying ideas led her to a different understanding of the paradigm. 6:15
  • The biological metaphorOOP is better understood through the metaphor of cells working together than through biological taxonomies. Like cells, objects can be self-contained parts of a larger system, with internal complexity hidden from the rest. 9:49
  • Messaging and late bindingThe talk presents messaging as the central idea of OOP: objects communicate by sending messages, while late binding lets the recipient decide how to respond. This can make systems more adaptable than ones whose behavior is rigidly fixed in advance. 13:25
  • Behavior over identityWhen thinking in terms of messages, what matters most about an object is how it behaves in response—not what it is, what data it contains, or how it is implemented. 20:45
  • Connections with functional programmingVakil explains that OOP and functional programming can share a focus on behavior and message-based interaction. Examples include Smalltalk’s behavioral definition of booleans and Erlang’s actors passing messages. 26:29

✨ Key takeaways

  • Objects are not the whole storyClasses, inheritance, and objects are mechanisms, but the talk argues they are not the defining idea of OOP. Messaging and late binding are presented as more fundamental. 13:25
  • Hide complexity behind protocolsA system can be composed of small, self-contained units that interact through messages. Each unit’s internal workings can change without requiring the entire system to be redesigned. 35:20
  • Paradigms can overlapOOP and functional programming are not necessarily opposites; both can organize computation around behavior and communication, even when they handle state differently. 26:29

🧠 Lessons learned

  • Question familiar definitionsThe usual emphasis on classes and inheritance can obscure the broader purpose of OOP. Looking at the paradigm through a different metaphor helped Vakil see its design goals more clearly. 6:45
  • Design for changeSoftware change is inevitable, so systems benefit from boundaries that allow components to respond flexibly to messages and evolving needs. 19:43
  • Think about interactionsWhen designing a system, consider how its parts communicate and what behaviors they offer, rather than focusing only on their data or internal structure. 21:16

🏁 Conclusion/next steps

  • A broader view of OOPVakil concludes that OOP is best understood as a way to manage complexity through self-contained components, message passing, and flexible responses. These ideas can also inform architectures such as microservices and serverless systems. 35:20
  • Keep learningShe encourages continued exploration of the ideas and resources behind the talk, while recognizing that understanding programming paradigms is an ongoing process. 37:53

Transcript excerpt

0:00 hi everybody how's it going good day so far so many fantastic talks but i don't know about you but i always have this problem at the multi-track conferences that i have severe fomo of missing out on all the other talks that i can't be at so looking forward to uh the day when we're able to time travel at these multi-track events welcome my name is anjana vakil and i am here today to talk to you about oop object-oriented programming

0:33 okay quick show of hands raise your hand if you love oop okay quite a few folks fantastic all right how about if you hate it ah okay many fewer hands than i was expecting just a couple how about if you don't really have a strong opinion and you think you might be in the wrong room [Music] so so we're gonna talk a little bit about oop about um basically i'm hoping to take you today on a really mind-bending journey

1:03 that i went on a couple years ago when i was starting to wrap my head around oop and i realized that i had been thinking about it and understanding its core ideas completely wrong and in a way that was making me unable to really see the beauty and the advantages of the paradigm so that's what we're going to get into hello my name is anjana as i said you can find me on twitter at my name because i'm bad at clever internet handles and um my background is not actually in

🔒 The full, searchable transcript is available with Pro.

🔒 Unlock Premium Features

This is a premium feature. Upgrade to unlock unlimited Q&A, transcripts, mindmaps, and translations.

🔒 Unlock Premium Features

Access to Chat is a premium feature. Upgrade now to unlock unlimited studying tools.

🔒 Unlock Premium Features

Access to Mindmap is a premium feature. Upgrade now to unlock unlimited studying tools.

🔒 Unlock Premium Features

Access to Translation is a premium feature. Upgrade now to unlock unlimited studying tools.

Get unlimited summaries, Q&A, transcripts and more with Pro

Upgrade to Pro

Suggestions

🔒 Unlock Premium Features

Access to AI Suggestions is a premium feature. Upgrade now to unlock unlimited studying tools.