Blog Posts

Object-oriented programming is a programming paradigm based around separating data and the means of manipulating data into separate, reusable sections of code known “classes”, with the logic of the program deriving from the interaction between classes. Classes are typically designed to serve as a data models of real world objects. For example, a chair might be represented by a “Chair” class, which would contain information about the chair such as how many legs it has, what color it is, and what material it is made out of, as well as representing actions that the chair may be able to perform, such as whether or not it can recline or roll. A basic class might look something like this:

Despite libraries and frameworks both enjoying widespread use in web development, there is much confusion about the difference between the two, and the two terms are often (incorrectly) used interchangeably. The confusion is understandable. Both libraries and frameworks consist of pre-written code designed to reliably and efficiently solve common problems. However, the way in which the user calls said code differs greatly. For example, look at the following code required to call a ‘greet’ function and a ‘goodbye’ function using jQuery and Vue.js, a popular JavaScript library and framework respectively.

When I first began studying web development, I often encountered the acronym “MVC” when reading about various application frameworks, enough so that I was prompted to research what exactly “MVC” meant. A quick Google search was enough to reveal that it stood for “Model-View-Controller”, but understanding what exactly that meant was a little more opaque. What was not opaque was its importance to the field of web development. From Laravel to .NET to Ruby on Rails and Django, MVC is everywhere in modern web development, and it doesn’t appear to be going anywhere any time soon. Indeed, as I have advanced in my skills and project scope, it has become a cornerstone of my own applications, necessitating a thorough understanding of what it is and why it is so popular. So what is MVC?

Already in my web development endeavors, I have frequently encountered trouble with a staple of web design that has no easy and reliable solution using regular CSS: equal height columns. While it can be accomplished with “hacks” such as setting up your content as a table to make your columns cells with equal height, none of these solutions are reliable in their responsiveness or interaction with the rest of your page. JavaScript could also be used, but should we really be forced to violate separation of concerns and write a block of code just to accomplish some of the most essential tasks in modern web design? Of course not!