Monday
Mar222010

There and back again, Part 1

To celebrate moving my blog to Square Space, and the release of my first Mac product, I wanted to document my journey. It may bore you to tears, or you might find it interesting. This is the story of how I started with Apple products, left it for a while, then have returned.

My first real computer was an Apple IIe with two floppy drives. I taught myself Basic on that computer. My first real program of any significance was a cricket (the sport for all my US readers) simulator. No graphics, just a simulation of a cricket game. It used random number generation to simulate the game. It also tracked the stats for all the players, including the bowlers. It really wasn't that great of a game, but it gave me the desire to learn more. Unfortunately, I was on the edge of the Australian outback at the time. Needless to say, there was no internet, or heck even anyone that knew what an Apple computer was out there.

A few years later, my dad got one of the Mac SE computers and I spent way too much time on it. It had this awesome submarine game on it, and was just an amazing computer. I learned how to do some stuff with HyperCard, but mostly played games on it. My next computer was an Apple IIgs. Also spent way too much time playing games on it. I think someone gave me a Pascal compiler for it, but without a book or really anything to show me what to do with it, I really never developed any apps for it. Eventually moved into the workplace, but it soon became hard to keep an Apple on my desk. I was working on mainframe computers, but decided that the future was in PCs.

Thus began a long period of time working in the Windows environment. Yes, I remember the first version of Visual Basic. Also remember a key mistake by Microsoft for not having a C/C++ compiler to go along with a visual designer. Needless to say, Borland C++ was kicking their tail during that time (even if they didn't have a visual designer either). I wrote a good bit of C, C++ and Visual Basic code over a period of several years. Then I found a new love of my life, Delphi. I still to this day think that Delphi was a breakthrough product. Yes, it was Pascal, but it WASN'T freaking Visual Basic. It was a real language that actually compiled real code. And besides that, the Delphi IDE was actually written in Delphi! That is a feat that few have since been able to accomplish (Yes, I'm looking at you Visual Studio & XCode). Delphi was superior to anything at the time and I wrote a TON of code with it. But it had one primary drawback in that it was hard to find developers who could handle it (Pascal that is).

So pretty much Microsoft messed it up and hired one of the key Delphi developers to create a new monstrosity called .NET. Eventually our company decided to move to this new environment. It was easier to find developers who could develop with it, and it had one nice thing going for it: C#. It was really more like Java (bleh), but had enough C/C++isms in it that it appealed to me. And for building Windows apps, it performed quite well. I've spent several years now building up an application suite that uses .NET. We have even provided a linux version of the product that utilizes the mono .NET runtime. This product is in active use at some companies you would recognize the name of.

My journey back to the Apple platform proceeded in several steps. First of course, Apple had to change directions. My first encounter with this new Apple was a program for Windows (isn't irony fun?). It was a mp3 app called iTunes. First of all, it looked great. And second, it was the best music app for Windows, hands down. I'm a music nut who listens to music while I code, and in the car, and on the treadmill, etc. So this was a big deal for me. And there was that whole iPod thing, but I actually didn't get one till very late in the game. For me, this put Apple back on my radar. From here on out, I would start paying more attention to what they were doing.

I eventually traded one of my PCs for a G4 desktop Mac. Really didn't have anything specific to do with it, just wanted to see what it was like. I think this was running Panther.  Installed XCode on it to see what it was like to develop apps for. Then I saw it. Yes, that dreaded syntax feared by many. ObjC. OK, let's just say that my first impression was anything but flattering. It looked scary. Heck, it WAS scary. With no book, no websites, nothing to learn it from, I just gave up and didn't really try. I eventually sold that Mac, but it had left a reasonable impression (some of the apps looked and worked quite well).

My next step towards Apple fandom was pretty much an accident. My friend is a Pastor at a small church, and was looking to release teachings and such on the internet. So I started doing some research and found that there was this new thing that iTunes was now supporting: Podcasts. I remember listening to some random podcast and thinking, wow this is weird but strangely compelling. Those early days of podcasts led me to something I thought was a developer podcast: Daily Source Code. Regardless of what you might think about that show, he talked about his Apple products constantly. This of course led me to other Apple related podcasts. Eventually landing square on the rock that is Mac Break Weekly. Again, regardless of what you think about these shows, they spurred my curiosity in the platform and in Apple itself.

Fast forwarding a bit, through the indoctrination of these shows, I became a true fan. I purchased my first brand new Mac and loved every second of it. It is still my primary laptop, a Mac Book Pro. I did some Ruby on Rails development with it, and started to learn XCode & ObjC. This time, I found some websites and purchased the Hillegass book. It was still very hard to get used to Interface Builder and how Mac apps should work. So I never got something to the stage where it could be released. Not that long after, the iPhone was released and I was enamored with it. I wasn't in the first group of users because I was stuck in a Verizon contract. Plus at the time you couldn't develop apps for it. I was almost sucked into the Android SDK until it was announced that the iPhone would have an SDK. That started the next phase of my journey. (See part 2 for the iPhone section of my story).