Delphi's birthday: How I got started coding

Posted by on in Blogs

I bet you're expecting a post about how Delphi was my first programming experience and how I was a convert.  But it wasn't.  It was BASIC.  Not Microsoft Basic or Visual Basic - BBC BASIC on a 1986 BBC Master microcomputer.

A BBC Master microcomputer. I hooked mine up to a green monitor and later (wow!) a colour TV screen.
By Dejdżer / Digga, CC BY-SA 2.0, https://commons.wikimedia.org/w/index.php?curid=11670922 

The BBC boot screen. From Wikipedia. Public domain.
https://commons.wikimedia.org/w/index.php?curid=18674403

In the early eighties, the BBC - yes, that BBC, the television company - released a microcomputer aimed at education and learning. It was an amazing bit of a forward-looking, well-timed, and incredibly well-made product in a completely foreign area for the company. Since when did a TV broadcaster make computer hardware? But the BBC viewed it as completely within their purview: they had a strong role in education, and making affordable computers that students could learn on was, in their view, absolutely part of their role. It's a wonderful example of both out of the box thinking, and what can be done as a government-funded agency (the BBC is the UK's public service broadcaster, and so has very, very strict rules - and the ability to do something non-profit-focused.) In fact, ARM, who make the chips in your iPhone, grew out of the BBC microcomputer initiative. I love stories of how non-corporate, well-aimed initiatives have such profound worldwide effects. 

In Australia, where I grew up, the BBC broadcaster obviously didn't exist, but the BBC family of computers were popular throughout the Commonwealth in the UK, New Zealand, Australia, South Africa, etc.  I don't know, but I'd expect they were also popular in Jamaica, Canada, and other Commonwealth nations. My family bought one, but I didn't start using it for a few years until I was eight or so - my parents were afraid I'd use it too much. They were right. I was hooked.

BBC BASIC was surprisingly powerful, and there were many books available teaching you how to program. Pictured here is one of the ones by Usborne: you can download them now as PDFs (scroll down to '1980s computer books'; they are free to download.) With simple text, lots of pictures, monsters crawling over the pages, and titles like 'Machine code for beginners' - yes, targeted at the under-tens - they in combination with the BBC was the perfect way to learn programming.

Turbo Pascal...

I've dwelt on the BBC for some time because I doubt that many readers have heard of it.  It was never in the US, yet was a key part of eighties childhood for many soon-to-be programmers in many parts of the world. Also, I have amazing memories of it - the tone as it booted up and the TV screen flickered to adjust resolution; the smell of hot dust and hot chips; the sheer size of it (it was heavy) and the slowly yellowing colour of the plastic it was built from; the Break key, solution to all problems; and my racks of large, 5 1/2 inch floppy disks that stored the hundreds and hundreds of programs I wrote; the Intel chip that was added to the board through an add-on interface and you could boot into instead through some odd series of instructions, and DOS running with the GEM window manager. I don't own it or those disks any more, and I regret it.

But at some point, perhaps when I was ten, we got an IBM and with it a copy of Turbo Pascal 5.5.

Turbo Pascal was amazing. The PC was far more capable, and Turbo Pascal gave me a sense of the unlimited. Although TP5.5 was object-oriented, as was TP 7 we later got, I knew only procedural programming. Records were as far as I got: my programs kept state in global variables, were built in single units, and did (to me) amazing things with the graphics onscreen. I struggled to write a fractal renderer and read through a massive, three-inch-thick book demonstrating ray tracing, fractals and other image processing in Turbo Pascal; the book had an insert of glossy colour pages showing the results of each program. Second-hand DOS books gave assembly code for TSRs. When we got Windows 3.1, I largely ignored it and kept writing my DOS programs; I had a "screensaver" written in Turbo Pascal I invoked whenever I left the computer, and a login prompt fired by autoexec.bat before Windows executed, again written in Turbo Pascal.

Delphi

And then there was Delphi 1.

Turbo Pascal for Windows existed, but I never used it.  I jumped straight to Delphi. And it was Delphi that made my programming career.

You see, all the above were toys, and I was a kid playing with toys. Delphi was a tool and I could create - and learn - great things with it. Throughout high school, constantly upgrading from various magazine cover CDs, I ran Delphi on Windows 3.11 and then NT4.  I built a replacement Start bar for my Windows 3 computer, before discovering Calmira, code I struggled to understand. Some years later it was through Delphi, and an OpenGL renderer I built for a school computer graphics course (we had an open project; most people used 3D software to render an image, I built the renderer in what was, for me, huge, twelve thousand lines of code) that taught me the value of object-oriented programming. The concept took a surprising while to click but at that scale, representing the data it had to hold and behaviour variations it required, it was necessary - and elegant, and the first code using it was the particle effect simulator in the 3D engine. I learned algorithms by tracing camera paths and smooth interpolations, and matrices well before they were taught in math by handling OpenGL's.

In university, the final year computer science course had a year-long project done in tandem with an external company - the idea being to learn real-world programming skills and develop and complete a real project as a small team. Much of computer science doesn't give you the skills to function in a company, and this did. My team developed network filtering software, and I wrote the kernel driver in C... but I told my teammates to use Delphi for the user interface. We had the best UI of all projects.

In the years since, I moved to C++, and worked there for many years. I've traveled worldwide, written code at sea, seen (and hopefully helped at) one natural disaster, started a company, and joined Embarcadero - all because of my programming career. All that time I stayed in touch with Delphi, either encouraging its use at work or using it as a hobby language at home. When I reflect on the languages I've used (and that might be Objective C, or Java, or any of half a dozen others) and what led me to this career, it's not BASIC I remember. I have good memories, tactile memories - keyboard and heated chips - but it was not what led me here. They are memories of a kid playing, not really understanding. No, the code that led me to this career was Delphi: Delphi was the foundation of learning, and the cause of excitement that I still hold today - that thrill you get when wanting to write a bit of code.

I am very fortunate to be working at Embarcadero these days - I joined about eight months ago. You might not know that as well as being the C++ Product Manager, I also look after the IDE and debugger, and as a long-term user of Delphi and C++Builder, I have improvements I want to make and features to add. Over the next few months I hope to have some substantial things for not just C++ but also Delphi users as well; if you have subscription you'll get them. We have a wonderful product, one I was lucky to use, and one I am now lucky to, with my fellow PMs, shepherd and improve.

Happy 22nd birthday, Delphi!



About
Gold User, No rank,
C++ Product Manager, looking after C++Builder as well as the IDE.

Comments

  • Al Taylor
    Al Taylor Thursday, 16 February 2017

    David1 I didn't know you were a Skip!
    What part of Australia did you wander through?
    Excellent read by the way.
    Al.

  • David Millington
    David Millington Friday, 17 February 2017

    Thanks Al! I'm from Tasmania, originally.

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: