Saturday, August 04, 2007

Learning the learns

I've been learning the Facebook platform these last few weeks and before that I was getting our prototype into a state ready for review. Coding day and night, and as Paul put it the other day "learning the learns". I knew I'd need a widget strategy for our product and as soon as Facebook launched their platform last May I quickly knew that FB was going to play a big role in that strategy. As soon as I returned from my last trip to SF a couple of weeks ago, I jumped into learning the Facebook platform markup language (FBML), and really started coding in earnest with django rather than with PHP.

Oh yeah.. lots of learns. Re-tooling my rusted tech skills to actionscript, javascript, python, linux, and apache has taken longer than I'd hoped (three months to learn it all was unrealistic!), and developing while you're learning something new sometimes feels like you're trying to ride a 10-speed in molassess.* I'm used to developing very quickly on an iSeries, and so have had to change the expectations I place upon myself as I now produce code more slowly; some skills translate from my former hacker life - on the one hand I can design a database, normalize it in my head, and get it modeled & implemented very quickly. On the other, I'll make basic mistakes in code that put me behind schedule by days, or I'll hack together programs that require later re-design. My debugging skills are getting back up to top quality, which is good, and I know of more efficient frameworks now that I seldom needed on an iSeries.

I commented to a friend that music production was a much faster process than consumer web product development. His reponse was that it wasn't - just stick with what I'm doing and eventually it'll be as natural as walking. He's right, of course - and what I should have said was that music production feels like a faster process.

However, all this being said - back in January I had no idea how to code in as, js, python, how to use django, or how to develop an application on Facebook. Now I can do all of these things, and even launched a small app on FB the other day. I gave myself one week to get it functioning, and another week to polish it to a rudimentary state for launch. I'm not really taking advantage of the platform's incredible access to a huge social graph yet - that's by design - and the program I created is at the limits of my javascript expertise as of last Friday. But as I learn, and as users respond, I'll enhance the app, change it, and connect it further to points of engagement into FB's social graph. At the moment I'm not proud of it - the UI still needs work, and the overall functionality will be improved as I figure out how to do what I want, and how to implement what Paul has designed. (Hint: It's cool!).

I attended the L.A. Facebook Developer's Garage last weekend and asked a couple of people to "beat the crap" out of my app - in other words, review it with a critical & professional eye and offer constructive criticism. Thanks to Max, Kareem, Ryan and Otis for taking a look and offering said criticism. As a result, I changed the program and am much happier with the results. As I built my app, I paid no attention to flow, or design - a HUGE contradiction to my usual development philosophy: design first, then technology. However, as an exercise to learn some hacking skills, I broke my own rules. Jump into the code, quickly, and start swimming.

I'm looking forward to getting back into Flex, but have been having a blast with django and python. This stuff is very cool. Once I'm back coding in AS3, I'll be implementing the cairngorm framework, which is a very lightweight MVC microarchitecture that provides a very easy-to-maintain framework on which to hang code. I'll never go back to coding RPGLE on an iSeries, ever again if I can help it. While the iSeries is a fantastic piece of hardware, and I'd love a new one with a linux partition the size of Montana, I can't go back to the mind-numbing tedium of 1980s-style shitcode.

I'm also looking forward to more of the business stuff. Unlike many hackers I've met, I like the business work of business. But in the meanwhile, I'm getting closer to the point where coding for the web is as easy as walking.

If you're an as(2 or 3) or js coder, and interested in some side-work, send me an email.

*Orson Welles is alleged to have said that working in Hollywood was like 'trying to ride a tricycle in a barrel of molasses' or words to that effect.

No comments:

Post a Comment