Video description:<p>"<i>What is modularity? Dividing code into separate files? No! Hiding data? Well, up to a point...protecting implementation details? Well, that’s a bit nearer the mark. But what does that really mean? How do you protect the implementation details of a module or an object? And why does it matter?</i>"<p>"<i>In this lesson, I look at some of the ideas and the history of modular programming. From Smalltalk to Modula-2, and onwards to C#, Ruby, Java and Object Pascal, I’ll try to explain what modularity is and why your code will be more reliable if you make use of it.</i>"<p>A summary at the end of the video:<p>"<i>There is no one clear definition of modularity. Modules mean different things in different languages and different things to different programmers.</i>"<p>"<i>But when I talk about modularity I mean a style of programming in which the internal details of an object both its data and its code are sealed off from the code outside that object. And to communicate with an object you have to use precisely defined ways into and out of that object. In some languages those ways into and out may be declared as interfaces. To an object-oriented language like Smalltalk the interfaces to an object are provided by methods that respond to messages.</i>"
I picture modularity as a joined-but-not-mixed approach to the development of software components. Metaphorically, it is about balancing individuality with cooperation.