Flexibility.
From 3D graphics to text processesing, assembler, device drivers to predicting the weather. There is simply no field of human endevour that hasn't been touched by computers in some way. Modeling social behaviour, whether it's voting patterns, exit flows from building or aircraft in panic situations or bidding at auctions. Even the most fundemental of human activities, child conseption, birth and rearing via ultrasound scanners, fetal heart monitors and baby alarms, they all involve and increasingly rely on computers and software. From the search for extra-terrestials to interfacing artificial eyes to the human brain--anything is possible.
As 14 y/o, I was one of the first year ever (in the UK) to study for the new CSE in Computer Science (there was no O'level yet). One of the first things we did was to visit the offices of a large company (Shell) that had a recently installed state-of-the-art mainframe. It occupied 2 floors and a total floor area of around 10,000 sq.ft. of air conditioned office space behind glass partitions with air-lock doors. The men and women inside wore white coats. A few weeks later they showed the Micheal Caine/Harry Palmer movie, The Billion Dollar Brain, on TV. This was 1972--it used to take years for movies to make it onto TV back then. I was hooked.
That year was the start of my fascination for computers and computing. With the exception of a couple of years recently when work-related stress combined with other troubles to quiet literally destroyed my interest in anything to do with computers, I have never really lost my passion for them, what they can do, what they might be able to do and the part I might play in that. My discovery of Perl was the renaissance of my interest.
Because it's something I can be good at. I am not musical. I can draw, but very, very slowly and without any real artistic flair. I was apprenticed as a mechanical engineer and showed some apptitude for it, even some skill, but very few mechanical engineers ever get to design a complete project, and even rarer is it that they get to design anything new. Once you've designed one towing bracket, seat belt adjuster or window winder mechanism, there is very little gratification in designing a second. As a programmer (I refuse to use the term software engineer), I have worked on OS components including the 2D graphics for a windowing system. Device drivers for TV/Teletext cards. A very large scale LAN/WAN automated software installation and maintainance system. Financial systems, high speed transaction systems, embedded software and process control systems. Despite the incredibly thorough and comprehensive compendiums of work by people like Donald Knuth and others, there are still individual problems that require individual solutions, that can be designed and implemented by individuals and small groups. If I wanted to design my own car, plane or house, I'd need many thousands of pounds, and many thousands of hours, and the end result may be unsatistactory. If I want to write my own language, I need a system that costs less than 1 thousand pounds, some software that comes with it or is free, time and inspiration. If the result is unsatisfactory,I can start over or enhance what I have.
Underlying my fascination is that maybe, just maybe, I'll invent a new algorithm, something that is unique. Unlikely as it is, the possibility exists and is can and still does happen. I'm not looking to make millions, but I would enjoy having found something I could put my name too. Small chance and small rewards, but enough to have kept my interest (with a couple of odd diversions), for 30 years. And that awe I felt as a 15 y/o is still alive. Suppressed maybe by the commonplaceness of it all. Somewhat jaded by the experience of the commercial world, but it's still there. It still amazes me that the 4lb laptop I'm typing on probably has more raw cpu power and several hundered times as much memory (though somewhat less permenant storage) as that multi-million pound, 10,000 sq.ft. monster I saw all those years ago.
I'm currently, and for the last nearly a year, in the position of having the time to explore all the half-baked ideas I have wanted to pursue for the last 20 years when the pressures of work, lack of free time, and life in general, did not allow me pursue. I won't be able to keep it up much longer, the ugly reality that living requires an income will bring it to an end soon, but I am determined to try as many of those ideas as I can in the meantime. When I started to recover my interest in programming, I taught myself Java. Enough to pass the three Brainbench Java certificates back when they were still free, but when it came to actually writing real projects in the language, I laboured. Not with the concepts of OO, I'd been doing those in Smalltalk and C++ for years, but simply the process of generating, testing and debugging the code. Forever falling foul of incompatibilties between releases of the class hierarchies. Struggling to work out which of the myriad variations-on-a-theme, of each of the oh-so-similar set of classes, I needed to use to allow me to implement the idea in my head. And all the time, there was simply no real forum for getting help.Then, through a quirk of family relationships, I got involved in something that brought me to Perl and PerlMonks.
Perl does it all. Quickly, easily and directly. Limitations of raw performance aside, which can and have been addressed by the Inline::C (since I recently succedded in building my own version of Perl), I've yet to encounter an idea or problem that I couldn't at least make a darn good crack at solving. any limitations being mine rather than of the language. At least to the point of deciding that the approach I was taking did or did not have merit. And, for now, that is enough. I'm far from having Merlyn's depth of knowledge of perl, tye's mathematical prowess, or Abigail's knowledge of algorithms, but I have achieved a state of "being comfortable" with perl greater than any other language I have used--a loong list. Very few of my programs so far have been greater than a couple of hundred lines and most considerably less, but each idea I have pursued has come to a state where I have taken it far enough to satisfy myself that the idea underlying it was either worth pursuing further at some later date, or going nowhere useful. Each and every piece of code I've written in perl has achieved some level of fruition. The same cannot be said for any of the other languages I have used. The difference is that perl appears to have a reasonable, low-effort, solution to every run-of-the-mill programming problem--out of the box. That means I spend less time and effort constructing the infra-structure of the overall solution I'm looking for and I don't get bogged down in the detail (despite the benchmarks). As I get more practiced and more problems under my belt, I gain the confidence to try out bigger and harder problems, and each and every time Perl is right there with all the tools I need to make a first, competent if incomplete stab at it.
Perl is like the Meccano constructor set I had as a boy. A few, well chosen, neatly dove-tailing components that can be stuck together in an infinite number of ways. The limits are your imagination, and where software is concerned, I still have the imagination of a boy. Anything is possible:).
In reply to Re: Fun in Programming
by BrowserUk
in thread Fun in Programming
by artist
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |