Oh my. A comment from Dewayne who has, if my memory is correct, been reading me since my days of Radio Blogging. Here it is:

Scott -

Would you mind letting us in on your thought process for learning Python as opposed to something else? Is this a new part of feedster or just a personal goal? I am asking because I too am seeking the next step in my personal education and right now I am leaning towards learning Ruby on Rails.

Dewayne Mikkelson

Heh.  That's like the best question anyone's asked me in weeks.  There are several answers:

  1. Personal. Yes it can be used for Feedster but I can't blog about how so I can't talk about *censored* where we might use *snakelanguage*.  So if I'm going to blog the learning process, which I've found is the best way to force myself to actually do something, then I've got to have a personal project.
  2. Support System.  Whenever you learn a new language, the support system you have around you makes a huge difference.  I know one person doing Ruby and he's busy as all heck so his ability to answer dumb ass questions is limited.  I know 3 Python programmers, one superb / world class, one damn good if not superb and one learning.  So I view my chance of "dumb question" help as 3x greater than with Ruby.
  3. I need some local tools.  PHP is a wonderful server side tool and its outstanding at what it does.  When you develop in PHP the way I do at Feedster many of the traditional scalibility issues go away.  But, what PHP isn't good at, is local apps.  Yes there's php-gtk but that feels like a hack to me.  Python is damn good even at Gui apps.  I'm astonished beyond measure that iPodder / Juice was developed in Python.  Given that my pre-web background was in traditional software development, I know just how hard cross platform GUI apps are and here's this little Open Source effort doing absolutely rocking work.  I want to understand better how the heck they do it.
  4. Its a More Advanced Language.  In Paul Graham's Hackers and Painters, he argues fiercely for the language's inherent "advancedness" (for lack of a better word) as being a more efficient problem solving tool.  I.e. you're more efficient (at least for some tasks) in VB over straight C and Perl over Fortran and so on.  Its a damn interesting argument and having read over the 1st part of a Python reference book, I'd have to agree that syntactically Python is more advanced than PHP. I'm curious to see if my immersion in PHP for 3 plus years either helps me learn Python or prevents me entirely.  I did a line count on the number of lines of code I've written to date in Feedster and its shockingly high.  If you assume that LOC measures are inaccurate even by 50% its shockingly high.
  5. It May Be Better Suited to Certain Types of Computing.  As I read through the Python stuff so far, I'm easily seeing that its a powerful language and I can see that its good for GUI programming and server side programming.  At least to me it appears to be less well suited to PHP's forte -- web apps.  Now this is interesting to me since most of 2005 I spent using PHP to do things it really wasn't meant to do -- back end data processing and job crunching.  Yes it worked and I was fine with it but I wonder if a better language might have done the job a little better.  This is a good opportunity to investigate it.
    Note: Simon will no doubt disagree with me.  I'm still learning and I could very well be wrong here..
  6. The Rails Question.  Ah yes.  Ruby.  I find Ruby very, very interesting and the advent of 37signals is clear that Ruby has powerful Geek Fu.  That said I feel a little bit like "Well I know how to develop web apps and Feedster has lots and lots of powerful libraries and constructs for it.  Do I really want to start from scratch?".  Not to mention the concerns you have with a large scale site regarding security, coexistence with other apps, etc.  I actually asked our lead admin to install Ruby on Rails on our dev box a few weeks ago and he's still making sure that he's comfortable with it being on there.  And I wonder if the lesson for all of us from 37 Signals isn't "use ruby" but "do what we do"?  We can develop crappy web apps in Ruby just like we can in PHP.  That said I did just order the new 37 Signals book.

So that's my thinking Dewayne.  If I was purely doing Web Apps then it would be different but I'm not just thinking that way.