Good bye 2010

As usual, it’s time to make my year end post. I’ll keep it relatively brief.

A few changes this year. This spring, I got kind of fed up with Apple, their control-happy policies, and the general direction they are heading. After 3 years of being 100% Mac, I switched back to Windows. It is an action that I not only do not regret the tiniest bit, but as Apple continues to evolve in the same direction, I’m happier than ever that I switched when I did. This is not to say that I’ve abandoned all iOS development and have thrown away my Mac. I still own two Apple computers. Both are plugged in and booted up and ready for action at all time. I have an iPhone, and iPad, an iPod Touch and a 5G iPod. They aren’t going anywhere. But the machine I open up in the morning and use all day long is my Sony Vaio, and I’m very happy with it. I’m not shoving it down your throat. If you’re happy with Apple, far be it from me to try to change your mind. I’m OK, you’re OK, right?

Around the same time I switched back to Windows, I also came into the ownership of a Google Nexus One. It took a while to really get used to it, as it’s definitely not the polished experience that the iPhone is. But I forced myself to stick with it for a week or so and really started to love it. From my viewpoint, the main difference was that it was MY phone, not Steve Jobs’. I could do pretty much whatever I wanted with it. Change the lock screen, change the task switcher, add memory, change the battery, put my icons where I want them, install unsigned apps, have live gadgets on the home screen, etc. etc. Once I got used to it, the iPhone just seemed unbearably sterile. Unfortunately, the model I had was a T-Mobile version, so I couldn’t get 3G on it with my AT&T sim. I suffered with Edge for a several months, but finally the wifi connection and even the Edge connection started getting really flaky. One day in September, just couldn’t connect to anything, so it was back to the iPhone.

Coming back to the iPhone, I have to admit, I really did appreciate the slickness of the UI. But I didn’t fall back in love with it. To be honest, I knew it was only a stopgap until the new Windows Phones came out. I got a Samsung Focus as soon as they came out and I absolutely love it. It is without a doubt the best phone I’ve owned. Note – it’s far from perfect. It’s a v1 product and it shows in many ways. But regardless of all that, there is so much RIGHT about what Microsoft did with it. I’m really excited to see where it goes in the coming years. I don’t expect it to overtake or even match Android or iOS any time in the near future, if at all, and I don’t really care. As long as I can continue to own one and see it improve, I’m a happy camper.

As for mobile development, I didn’t do much at all most of the year. But this autumn and winter I worked on one major and one minor iOS projects at Infrared5. After being away from Objective-C for so long, it was pretty bizarre trying to get back into it. It took a couple of days before it stopped feeling like I was typing with my toes, but eventually I got back in the groove. I played with Android dev briefly, but never really dove into it that much. But in October, I got my hands dirty with Windows Phone dev, with both XNA and Silverlight, and it has blown me away. I might even say it’s revitalized me as a developer. For a large part of the year I was on a very tough, frustrating project. It wore me down quite a bit. But with Visual Studio and C#, it’s like starting from scratch – in a good way! All the excitement without the learning curve. After many years of Flash development, writing ActionScript is almost second nature to me. But after just a couple of months in Visual Studio, I feel like I’m more at home with C# than I ever was with ActionScript. It’s a very, very similar language. If you took AS3 and removed all the little things that annoy or distract you and pull you out of the “flow” of coding, and replaced them with a whole bunch of little things that just work exactly the way you would expect them to, you’d have C#. And if you took Flash Builder and … no, that’s just not going to work. There’s no comparing Eclipse to Visual Studio.

Speaking of IDEs, after working in VS for a few months, and then going back to XCode… it really dawned on me just how bizarre an IDE that really is. I’m really trying not to bash any particular technology, but I can’t help feeling like XCode was designed on an anti-matter planet in an alternate universe by some bizarre aliens on really strong acid. I’m not even talking about the language – just the IDE. I sometimes find it hard to believe that it was created by and for programmers. I know it’s not “wrong”, just different. Most IDEs are relatively similar, like most western human languages are pretty similar. I may not speak Spanish, but I can see it and read the words even if I don’t know their meaning, and can catch a bit of a hint of what’s being said. Same with most IDEs – you can quickly find your way around them for the most part. But diving into XCode is like being dropped in an Asian or Middle Eastern country where everything just looks like random scratchings or scribbles to your unfamiliar eye. That’s what XCode is like – just a completely foreign programming paradigm. Again, not saying it’s bad or wrong. You live with it long enough and you become fluent in it. But boy is it different.

Also in the summer I got into Processing quite a bit. Far more than I ever had before. I’ve kind of drifted from it again, but it was a great experience. I’m sure I’ll drift back around to it again before long. This largely came about from my conference session for 2010, “Programming Art”, in which I covered a bunch of different tools and languages for creating algorithmic and generative art, including Context Free Art, Structure Synth, Processing, the Hype Framework, and others. I also really enjoyed getting my head around Structure Synth, and got a bit revived on it just recently with the newly released integrated raytracer. Fun stuff!

On a personal basis, it was a year of health. I ran over 1000 miles, lost a good deal of weight, and reverted the trend of my blood sugar and blood pressure, which were edging into borderline problem areas. I think I also did more travelling this year than I have in any previous years, with trips to San Francisco, Minneapolis, Kortrijk Belgium, Toronto, Japan, back to San Francisco, and Edmonton.

Well so much for keeping in brief. In summary, it was a year of trying new things and going back to old things, learning new platforms and languages. Going forward, I don’t think it’s possible, at least not for me, to be a “Flash Developer”, or an “iPhone Developer” or be stuck in any single platform. Now more than ever, there is just too much diversity and you have to have a foot in every camp. If someone needs a game or an app these days, they can’t really just release a single version of it. They’re going to need an iPhone version, and Android version, eventually a Windows Phone version, and some kind of web presence with it. Are you going to just ask for one slice of that pie? Are they going to farm out their app to 4-5 different shops, one for each platform? As a company at the very least, you need to be able to do it all. Ideally as a developer as well, you need to be able to do as many of those as possible. I know that’s where Adobe is trying to be strong with the iPhone and Android packagers for Flash. I’m still not convinced those are the solutions for most projects though. Native will always win.

As for 2011, I assume the fist good chunk of the year I’ll be doing a lot more WP7 dev. And since the XNA codebase is 99% the same for WP7, Windows, and XBox games, I look forward to releasing some stuff for Windows desktop and XBox as well. I’m sure I’ll also play with the new Mac App Store stuff, and more iOS stuff too. The WP7 game I’m working on now will definitely need an iOS port. But who knows where I’ll go from there?

8 responses so far

  • polyGeek says:

    Sounds like you had a good year and you’re in a good place. I hope next year continues more of the same for you.

    Wish I had your talent for being a multi-language developer. I don’t guess MXML and AS3 count as two different languages, right? 🙂

  • David Jumeau says:

    Interesting article. Thanks for sharing your experience. Have a great 2011!

    David

  • adehaas says:

    Inspiring article, pushing me even more to get my feet wet in different waters 2011, thx. Have a great year, looking forward to your follow ups.

  • Luke Peters says:

    Sweet dude, good stuff. I’m just getting into learning ASP.NET, VB and C# – I’m using Visual Studio. I’m definitely excited to be diving into these new (to me) languages and others also.

    I’m breaking out of my primarily front-end-developer shell 🙂 haha

  • Ugur says:

    Keith, i feel like you´re among the more open minded ones of those coming from the flash scene initially and you´re of course free to have your opinion on these matters but i think you´re painting a quite off picture there on several areas.
    I see that in several places right now, mostly done by people not that thrilled about Apple now and while that´s ok i feel like the accusations are largely quite off.
    For example Apple is meanwhile by many portrayed as doing the most closed platforms and being most restrictive.
    Let´s see:
    -Wasn´t Apple the one who opened up app creation and selling on mobile platforms way more to average joe developer than most competitors did before?
    -Next up: yes, Apple does review Apps and approve/disapprove them based on the rules they make up, but without judging whether that is a good thing to do or not, this is only a new thing to many of us coming from the “no rules” web distribution world, way harsher and stricter rules have been put onto distributors of retail games and apps for consoles and partially pc game portals for many years, again, what Apple did there was actually a step towards less regulation compared to those.
    In a similar vein Apple has a much more proactive (and i think better) approach to age rating for content, which wouldn´t be possible to work like that without them reviewing the apps and making (halfway) sure the age rating the developer set fits to the content of the app.
    Many don´t consider this point but this side means a lot of time and money saved for developers and publishers due to not having to go through the outdated age rating certification systems. Many indies couldn´t get any content out there if they´d have to pay for age rating certification in all sorts of territories.

    Then you also said:

    got kind of fed up with Apple, their control-happy policies, and the general direction they are heading

    I think such a view could have been more understandabl in the brief timespan, in which Apple enforced stricter rules on which tools could be used to create/release apps for the iOS devices. Before that timespan one could use pretty much any tool/middleware/language and now that they made the rules way less strict again one can again use pretty much anything one wants to get an app together.
    Compare that to the windows 7 platform for example where there is as far as i can tell only support for creating apps with a small amount of MS made tools/languages, no support for using any other framework or middleware like flash, udk, unity etc.
    So there MS is a lot more closed and restrictive and that´s one of the ends i´d definately like them to open up a lot on in the future (because i do think win phone 7 is a nice platform).

    And just a short note on Android because that is by many seen as the most open and least restrictive platform:
    Well, to be honest, that on some ends only applies to geeks like us who can get their own OS (version) etc on there and customize things as they want (but then for them they could equally get just as much freedom on an iOS device by jailbreaking it).

    For the actual consumer joe, let´s say my mom, for her some of the Android devices out there would feel more restrictive on many ends, because for example Android is also quite open to device manufacturers and carriers on ends the iPhone and windows phone 7 isn´t,
    which in some cases leads to good things, but in other cases leads to someone maybe buying a device with manufacturer customized OS, carrier skin, lots of junk apps on there preinstalled he can´t delete and an OS which he can´t upgrade to the next Android version when that comes out, next to maybe also even lacking the core google apps like the Marketplace because the manufacturer or carrier or some other middleman company thought it would be a great idea to skip google certification or just put an own store with small selection of apps on there.
    On such ends it feels like quite a lot of freedom for users when they can buy a device and not have any manufacturer or carrier specific junk on there and get auto notified of an OS upgrade and can just click a button to install it.

    As bottomline:
    Yes, i´d like all platforms to open up more to the developers and users and just like you i actually develop for all sorts of platforms, it is totally right that more and more platforms emerge and it is always a good idea to at least be able to support all the major more promising ones.
    I think you wrote a nice post there on that end, just felt like it was a bit off in how you portrayed the different platforms.

    Anyway, happy new year, may we all work on nice stuff for exiting platforms and gadgets in the new year! =)

  • Kent says:

    I agree with you on the IDE thing. I use visual studio almost exclusively at my day job and am much more comfortable with it than any other IDE. I have gotten use to XCode but I feel as though I am not as good at it as I should be. I hear tell that the new XCode is much better so I am hopeful for a better future on that front.

  • Julio Garcia says:

    It is somehow reassuring to know that I am not the only AS3 programmer who is enjoying the “c# dark side”. Actually I like the UX concept of the WP7 very much. It kind of reminds me of what Adolf Loos and Mies van der Rohe did in architecture a century ago. I am tired of the fake glass, fake wood, fake metal, fake leather, fake … that defines the fake 3D surfaces of a lot of current interfaces (iOS and Android, for example). I think that going on a different direction trying to define a graphic language true to the medium is the right way to go.

  • Robert says:

    @Julio,

    Don’t worry, there are quite a few of us out there. While I don’t have the opportunity to use it much in my current place of employment, I really do enjoy programming with C# and Visual Studio in my off hours. While AS3 and AVM2 is light years beyond AS2 in making sense, C# does it one better.