My man Plato was a philosopher. My man Plato was a Mathematician. But could my homeboy Plato have been a programmer???
The name of my blog supposes that the famous and monumentally influential greek chiller Plato, was indeed a coder. now this may sound quite preposterous being that computers have barely been around 100 years(?), while Plato hasn’t been alive since the times we decapitated folks we didn’t agree with. (…oh wait we’re still doing that? damn.) but you get my drift, Plato’s ancient! what sort of connection could he have had to computer programming?!
I came up with the name for my blog during a presentation given to us on our first day at the Flatiron web development fellowship, by one of the founders of the school, Avi Flombaum.
Avi was discussing the basic principles of good programming, and how it’s really all about taking a big idea, and breaking it up into smaller components, until you have a basic command to present to your trusty (apple?(!)) computer. he told us of a dialogue – between Aristotle and Socrates I believe – where this idea of logically breaking down a large problem into its smaller components is mentioned.
And I’m thinkin like “Gee! I kinda love Plato, it sounds like he had influence on the logic behind programming… a little click on wordpress here… choose a theme… blah blah blah… and poof! Plato-was-a-coder was born! a up and coming game changing heavy hitting, influential blog in the world of coding… why between us and Buzzfeed, we’re attracting millions of viewers daily!
But after doing some research (google clicking) I found out something amazing about plato, and his connection to programming.
One of Plato’s famous theories is the idea of Forms. He posits that Things as we know ’em are not the real ideal reality as we perceive them to be, but are rather a representation of an abstract idea, which is the true ‘form’ of this object.
For example. We may view Iggy Azalea as being the true form of evil in this world. (And we may have a point there). But really, Iggy Iggs is only a representation – a material happenstance of the idea of evil, which is independent of its tangible expression, for tomorrow Iggy can quit the music world and become good. She only possess characteristics of this idea which we think we know. An idea which is expressed in many other material examples such as raisans in cookies, and Windows computers…
But Plato surmised that the real idea, the real abstraction is the ultimate ideal concept. a concept which every wanton philosopher must search for. Plato assumed this force to be goodness. Medieval Neo-plotonists believed it to be god. We know that it’s Donald Trump.
Now here’s the amazing part:
Programming used to be an extremely arduous endeavor. (Used to be?!). Writing a program, consisted of repeating an endless amount of loops, conditionals and more loops, and more conditionals, and more loops… with hundreds of lines of code needing to be repeated every time you had to preform a similar task.
Then the bright minds of our coding world, began assembling those hundreds of lined into cute lil functions and modules, eliminating the task of repeating yourself till you were blue in the face… er… till you got carpal tunnel.
But then came Object Oriented Programming… (fireworks, puff of smoke and much bravado inserted here). We wanted things to be easier, more efficient. We created the concept of Classes.
Plato has this Allegory of the Cave, where these folk are tied to the cave with their heads fastened, and can only see these shadows that are passing in front of them. These shadows are their reality, they assign them names. It is what is real to them… in the end I think one of them escapes and painfully adjusts to the reality of life outside, to the genuine objects casting the shadows… scholars tell us Plato was referring to his theory of forms, with the shadows being what we perceive as ‘the real thing’ and the reality being the forms – the templates for these expressions of the true idea.
The brilliant minds behind OOP decided that our classes should be like Platos Forms. an abstraction of the idea, a template which can give birth to instances of itself with similar attributes and abilities, or methods. making t programming far easier, for when we deal with objects, we can abstract and generalize an idea to its greatest form, thus eliminating needless repetition.
for example. you can have a Class of Flatiron_students. in a general sense, the objects of this class would all be extremely bright, exceptionally motivated, and nerds for all things code. (sounds glorious, but it’s true, although I’m a bit biased). then we can go about making Instances of this class, with individual names, and identities.
so when you look around you in your virtual chamber, and see split methods, each methods, and other such stuff. remember that these are just shadows. shadows of a truer more abstract idea. and then remember Classes. and jump and skip in joy and jubilation, for you have discovered truth! you have discovered the true reality.
This idea totally changed the way we program. and I think we owe a big thanks to Mr Plato for establishing this concept as far back as the 400s BCE, or to be more specific, the time they still used Windows computers.
And yes. Plato was a coder.
– I learned this all from this guy: Richard Farrars Blog