My Furst Day In Scoohl

Old and New at the J.E. Cairnes School of Business & Economics. The chapel still has crosses on its roof, but it goes by “Lecture Hall 1” now

Well on Thursday morning I had my first ever lesson in programming. Weirdly, it was given in a disused chapel with stained glass windows. My course being multidisciplinary in nature, it’s taught in the business, the engineering and the arts faculties; the chapel is part of an old seminary the college bought and built into its school of business and economics. Where masses were once said, people are now taught advanced capitalism. I like to see that kind of continuity.

Surrounded by more impressive buildings constructed during the now almost legendary Age of Money, the chapel looks like it’s preserved in a museum. There are other curiosities kept here too. Do you see the wooden thing to the left of the picture? That’s a sculpture called Logos 1 by Michael Warren, transposed here when the prominent position it was actually commissioned for got built over. It was never exactly impressive I suppose, but it was at least dignified when it could be seen against the sky.

Though of course we made fun of it anyway. It was always a mystery how this timber was supposed to represent the concept of logos. Or indeed, how anything could. To quote Wikipedia:

The sophists used the term to mean discourse, and Aristotle applied the term to refer to “reasoned discourse”[4] or “the argument” in the field of rhetoric.[5] The Stoic philosophers identified the term with the divine animating principle pervading the Universe. After Judaism came under Hellenistic influence, Philo (ca. 20 BC–AD 50) adopted the term into Jewish philosophy.[6] The Gospel of John identifies the Logos, through which all things are made, as divine (theos),[7] and further identifies Jesus as the incarnation of the Logos. Although the term “Logos” is widely used in this Christian sense, in academic circles it often refers to the various ancient Greek uses, or to post-Christian uses within contemporary philosophy, Sufism, and the analytical psychology of Carl Jung.

Jesus Christ. One word can mean anything from an argument to… well, Jesus Christ. No wonder I’ve given up humanities for science.

So back to that first lesson – Business Applications Programming. Adding to the disorienting effect of the stained glass, the lecturer had close-cut steel grey hair, a tan and an American accent, lending the strange impression that I was being taught Visual Basic by a Marine sergeant. Well, I could use the discipline.

Somehow the lecture seemed simultaneously too slow and boring and too fast and unintelligible. Perhaps it was both, in rapid alternation. Not at all a gentle theoretical introduction, we got straight into the business of writing a program. But with a tool designed to be as simple to use as Visual Basic, that was little more than a matter of pushing buttons in the right order.

Yet at the same time there were a couple of tricky concepts introduced. In particular, the elusive one of Object Orientated Programming. I’m not really qualified to explain this to someone else yet, but I think in a nutshell programs used to be written with their functionality as the first priority, leaving the user interface as a bit of an afterthought. As they got more complex though, the interface would get more and more convoluted until it became practically unusable. So nowadays, you design the interface first and build everything around that.

Presumably the functionality goes to hell instead, but I guess that doesn’t show so much.

Another view of the Cairnes complex

14 thoughts on “My Furst Day In Scoohl

  1. All of my programming learning has been in Object Oriented Programming, starting in 1998 when it was still becoming a Thing.

    As I understand it, it’s a difference between Object Oriented and Procedurally Oriented, in which Procedurally Oriented is more like a script of what the computer needs to do to get from A to B, whereas Object Oriented is like a collection of different ways to get from A to multiple places and it’s waiting for the user to tell it where to go.

    Or something. I’m almost definitely not qualified to explain it, looking back at that last paragraph.

    1. I suspect it’s one of those things where it isn’t strange and confusing at all unless you were brought up in the Old Ways, in which case your soul cries out against this new anarchy. It may be difficult for us to define simply because we lack something to define it against.

      For me too, OOP is the norm rather than Procedural. Though this is mainly because (a) I read Douglas Coupland’s Microserfs back in the 90s, much of which was about that cultural change, and (b) my knowledge of procedural programming never got much beyond adding two numbers together in BASIC.

  2. All of my programming learning has been in Object Oriented Programming, starting in 1998 when it was still becoming a Thing.

    As I understand it, it’s a difference between Object Oriented and Procedurally Oriented, in which Procedurally Oriented is more like a script of what the computer needs to do to get from A to B, whereas Object Oriented is like a collection of different ways to get from A to multiple places and it’s waiting for the user to tell it where to go.

    Or something. I’m almost definitely not qualified to explain it, looking back at that last paragraph.

    1. I suspect it’s one of those things where it isn’t strange and confusing at all unless you were brought up in the Old Ways, in which case your soul cries out against this new anarchy. It may be difficult for us to define simply because we lack something to define it against.

      For me too, OOP is the norm rather than Procedural. Though this is mainly because (a) I read Douglas Coupland’s Microserfs back in the 90s, much of which was about that cultural change, and (b) my knowledge of procedural programming never got much beyond adding two numbers together in BASIC.

  3. Object-Oriented Programs means basically that the stuff you program are well, objects. It has nothing to do with interface vs. functionality, but everything to do with re-usability of these objects.

    An object is something permanent, and it has attributes. To take your interface, for example, you can have a “window”, which has certain properties, such as size and colour.

    In old-fashioned subroutines, you’d redraw “the window” or change it colour, not knowing whether there even was a window to redraw. Now you can spawn a bunch of objects of all sorts and kinds and then tell all the objects of the type “window” to resize or change colour, and the objects themselves decide whether the command is appropriate to them or not.

    This is not entirely right, but the important thing is, OOP is about the abstraction of the way you program here, namely that your code is creating and then manipulating ‘objects’.

    And an object can be anything, it doesn’t have to be an interface element. It can also be a representation of information like for example the description of a person. The person-object would have attributes such as a name, gender, birthday. And you would be able to manipulate it with instructions such as “jump around” or “write blog posts”, like you would be able to tell a window to resize or move to the right or left.

    Not that I’m a programmer, mind you.

    1. Thanks. That is, perhaps, the missing manual. I may be focusing overly on the interface because we’re taught to design that as the first step in writing the program.

      We’re also taught to just get in there and write programs without worrying about the theory, but I didn’t pay a lot of attention.

  4. Hi Richard! I was doing a Microsoft CP exam a while back in .NET programming and they had a great way of explaining object orientation on the webinar.
    The interface is Animal
    The base class Dog implements the interface Animal
    Dog has several methods, one being Bark() (methods being things that an object does)
    Now we have a class called Great Dane. It inherits from Dog() but also overrides in that when you call the Bark() method it goes “Woof!” whereas for the class Poodle which also inherits and overrides from Dog its Bark method goes “Yap!”
    Now I’ve either made that crystal clear or muddied the waters altogether.
    Btw I can’t believe they’re still teaching Visual Basic!!

  5. Hi Richard! I was doing a Microsoft CP exam a while back in .NET programming and they had a great way of explaining object orientation on the webinar.
    The interface is Animal
    The base class Dog implements the interface Animal
    Dog has several methods, one being Bark() (methods being things that an object does)
    Now we have a class called Great Dane. It inherits from Dog() but also overrides in that when you call the Bark() method it goes “Woof!” whereas for the class Poodle which also inherits and overrides from Dog its Bark method goes “Yap!”
    Now I’ve either made that crystal clear or muddied the waters altogether.
    Btw I can’t believe they’re still teaching Visual Basic!!

  6. Hi Richard! I was doing a Microsoft CP exam a while back in .NET programming and they had a great way of explaining object orientation on the webinar.
    The interface is Animal
    The base class Dog implements the interface Animal
    Dog has several methods, one being Bark() (methods being things that an object does)
    Now we have a class called Great Dane. It inherits from Dog() but also overrides in that when you call the Bark() method it goes “Woof!” whereas for the class Poodle which also inherits and overrides from Dog its Bark method goes “Yap!”
    Now I’ve either made that crystal clear or muddied the waters altogether.
    Btw I can’t believe they’re still teaching Visual Basic!!

Leave a Reply