Blog post cover image

How Backbone.js and Angular Taught Me Object-Oriented Programming

February 22, 2025

Author: Bogdan-Marius Mosica

When I first started my journey as a programmer, I was working with JavaScript, Backbone.js, and jQuery. At the time, I didn’t fully understand object-oriented programming (OOP), but as I dove deeper into these technologies, I started to grasp essential OOP concepts such as classes, objects, and inheritance. Little did I know that these early lessons would shape the way I approach programming today.

The MVC Structure: A Game Changer

One of the most valuable lessons Backbone.js taught me was how an MVC (Model-View-Controller) application works. Unlike jQuery, which primarily dealt with DOM manipulation, Backbone introduced structured ways to manage data and interactions using models and views. This was my first real encounter with object-oriented principles in JavaScript.

At the same time, I was also using Angular, and diving deep into Angular’s code reinforced my understanding of how JavaScript objects interact with templates. Unlike JSX in React, which binds JavaScript logic with HTML in a seamless way, Backbone and Angular required explicitly managing templates and objects separately. This distinction helped me understand the importance of separation of concerns in software development.

The Struggles of Early Front-End Development

Despite the structure that Backbone.js and Angular provided, there were challenges. Maintaining these applications was tough. Unlike modern frameworks that efficiently re-render UI components when data changes, we had to manually manipulate the DOM whenever the model changed. Sometimes, we would store an HTML object as a reference in memory, only to find that the actual element was no longer present in the DOM.

Additionally, working on a C#-based application introduced me to Razor and server-side front-end rendering. This gave me a broader perspective on front-end architectures before the emergence of React and client-side rendering.

The Breakthrough: Applying OOP Principles

Through these experiences, I gradually learned key OOP concepts:

  • Classes and Objects – Understanding how models in Backbone.js and controllers in Angular worked gave me a solid foundation.

  • Inheritance – Seeing how different components and modules shared properties and behaviors helped me grasp how inheritance worked.

  • Encapsulation – Managing data within models and preventing direct DOM manipulation showed me the importance of keeping logic contained.

By the time I transitioned into using React, the knowledge I gained from Backbone.js and Angular made the transition much smoother. I could easily see parallels between older frameworks and newer paradigms, allowing me to quickly understand React’s component-based approach and state management.

Lessons for Aspiring Developers

  1. Never stick to one paradigm – The more programming paradigms you expose yourself to, the better you’ll be at solving problems.

  2. Understand the language before the library – Learning JavaScript deeply before jumping into frameworks helped me grasp their core concepts much faster.

  3. Make analogies – Drawing comparisons between different technologies and concepts helped me retain knowledge and become a more effective problem solver.

Final Thoughts

Looking back, Backbone.js and Angular were instrumental in shaping the way I think about programming. They provided a solid foundation in OOP, preparing me for the modern web development landscape. While these technologies may not be as widely used today, the principles they taught me remain timeless.

If you’re just starting out, don’t rush into the latest framework without first understanding the fundamentals. Programming languages evolve, but core concepts like OOP will always remain relevant. Keep learning, keep experimenting, and most importantly—keep building.