object orientation

From the introductory chapter of a book about object-oriented programming:

As humans, we’re constantly faced with myriad facts and impressions that we must make sense of. To do so, we must abstract underlying structure away from surface details and discover the fundamental relations at work. Abstractions reveal causes and effects, expose patterns and frameworks, and separate what’s important from what’s not. Object orientation provides an abstraction of the data on which you operate; moreover, it provides a concrete grouping between the data and the operations you can perform with the data – in effect giving the data behavior.
[In object-oriented programming] every object has both state (data) and behavior (operations on data). In that, they’re not much different from ordinary physical objects. It’s easy to see how a mechanical device, such as […] an ordinary bottle combine state (how full the bottle is, whether or not it’s open, how warm its contents are) with behavior (the ability to dispense its contents at various flow rates, to be opened or closed, to withstand high or low temperatures).
It’s this resemblance to real things that gives objects much of their power and appeal. They can not only model components of real systems, but equally as well fulfill assigned roles as components in software systems.
To invent programs, you need to be able to capture abstractions and express them in the program design. The [programming] language should facilitate the process of invention and design by letting you encode abstractions that reveal the way things work. It should let you make your ideas concrete in the code you write. Surface details shouldn’t obscure the architecture of your program.

This is why I am so attracted to computation – it’s not geeking out at night with pizza on a shiny laptop and all associated social stereotypes, pressures and rewards – it is because it can help with building an understanding how this universe works on causal grounds; how systems are build, nested into each other and situated in hierarchies of influence. There’s a place for stories, needs, relationships and opinions – but it should not consume all the working time of our neocortex.

Advertisements

Published by

Benjamin Aaron Degenhart

Currently pursuing a Masters in Computational Science and Engineering at TU Munich.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s