Assembly
assemble [əˈsɛmb(ə)l]
assembly [əˈsɛmbli]
assembler [əˈsɛmblə]
To assemble - an aeroplane kit, Lego, IKEA furniture; form a coming-together of a group of people into an assembly, thereby becoming an assembler of - something...
An assembly - a collection of disparate parts made whole; a collection of individuals formed into a group, by an assembler...
An assembler - a melder of individual bits of stuff into a larger whole; a coordinator of people, organising them into a gathering or crowd (or mob)...
These words resonate slightly differently in the worlds of computing and software. Most people use devices now that they would not even think of as computers: smartphones, tablets, games consoles and even to an extent laptops and desktop computers themselves. The experience of their daily use is pretty much for the most part like using domestic white goods: fridges, cookers, washing-machines etc., you turn them on, press the appropriate button and off they go. Even smart TV's are pretty much plug & play these days. And the uses that even 'computers' and laptops are put to by most people are as interfaces to social media, by and large. Only a small subset of users would entertain actually programming any of these devices themselves - most would not even be aware it was possible, anyway.
This is altogether a very different scenario to the one faced by the earliest adopters of these technologies. In the 1970's a revolution happened. The rarified and stupendously expensive world of computing was suddenly opened up to the hobbyist through the development of the microcomputer, which shrank and cheapened the basic building-blocks of computing - hitherto the exclusive realm of corporates, governments and the military - to an (almost) readily-affordable level for Joe Public to get involved with.
The earliest machines were little more than things of academic interest, being incapable of being programmed to do anything of any practical use - but they demonstrated the basics of computing and programming to an audience hitherto excluded from that ethos - setting the world off on a trajectory that within a decade would set it on the course that finds us where we are today; with the technology and it's developmental underpinnings black-boxed and commodified, consumed in the service of some other activity. Almost back to square one with the technologies the sole province of the corporates, etc.; although there has more recently been a move towards teaching coding in schools again as the number of students with suitable skills leaving for further education had gone through the floor in the past twenty-five years or so, a situation that desperately needed addressing as, let's face it, someone's got to develop the software and systems that drive the stuff we 'consume' every day - someone has to write the code for the latest blockbuster game.
Which brings me squarely back to my early days with this stuff. When I first learned coding, there was a thriving hobbyist market for writing and selling early computer games - the birth of what has since become an enormous, multi-billion-dollar industry. This was kids (for the most part) writing stuff for the earliest machines: the late seventies and early eighties saw a lot of young people kickstart their own tech futures involved in just this sort of activity, often going on to form companies of their own and making not insubstantial amounts of money in the process. I can't claim to have been one of these 'kids' as I was already well into my twenties when I started playing with the technology. Past it, already.
But, it was an interest and even if I didn't have the skill or will to exploit that interest commercially, it stood me in good stead for the future, culminating in a challenging, rewarding, although ultimately unsuccessful business venture later in life.
Learning to write a program in Assembly code for an undergraduate student in the department of Brum Uni I was working in at the time, is probably my favourite 'let's have a crack at it and see if I can make it fly' moments. For anyone who knows coding, assembly language is the closest you'll get to actual machine code - the ones and zeroes that make any computing device actually function. It's pretty rarified stuff compared to the usual, higher-level programming languages that most things are written in, but sometimes, when you need the speed and in those days, the hardware was slow and storage space and memory at a premium, it was the only recourse open. I wrote a screen-refresh routine so that the student's BASIC program could write to the display in real-time, something impossible using BASIC instructions.
So I bought the book, worked it out on paper at home, programmed the thing on my lunch-breaks - and it bloody-well worked.
Soon after though, we moved here to Wales and I promptly left all that behind for a decade. Another chapter started, then another, then another...the story of my life.
I learnt to program in Fortran!!!! Had to punch your own cards. Remember them? 80 column punched cards. This would be in 1975. The computer was an ICL mainframe of some sort. We were given an assignment, normally to program some mathematical function or set of equations or series or suchlike . You would work out the program, punch the cards, wait to get your program scheduled and run and then pick up the resulting printout wrapped around your cards; normally the next day. More often than not it had aborted and you had to go through the whole process again. Loved it - but I was a nerd before the word was even invented. Happy days indeed!
ReplyDeleteTrust AOK. Phil.
I do remember 80 column cards, although the PDP10's in the department were out of bounds to me as a technician and the old mainframe was being broken up at the time. I did teach myself Fortran, though, just out of interest; but my mainstay were those brand-new micro's and a couple of Techtronix machines with dedicated (thermal!) printers which were used for graphing and an early form of CAD. I was allowed free rein on all this stuff because few of the students could actually use them at the time! The assembler routine I wrote simply fed a crude graphic representation of the output of a force-plate in realtime by poking data into the appropriate bit of screen memory, erasing, moving, poking, etc... I can't remember how big the program was - few bytes, probably - back in the days when an operating system and disk utils fitted on an 8" floppy! Happy days indeed!
ReplyDeleteTake care out there! Kel