With this huge move and all the unexpected problems we’ve had, I’ve had very little time these last couple of months to do much programming… or blogging! I can’t wait, I’m posting this from my phone.
More history you don’t care about
When I left high school in 2005, my first proper job was to write Perl scripts for possibly the friendliness boss I’ve ever had. He absolutely loved the language, and his enthusiasm rubbed off on me! I learned to LOVE CPAN and though I never did submit any of my own ACME modules I sure created lots of them! If I were learning the language today, I’d write one that just prints
The Bird is The Word until the hapless user types
Papa Ooom Maw Maw Maw.
ACME::Trashmen, I can just see it now!
Anyway after that I started part one of my studies and was inundated with Java. I use the word inundated because it did feel like a flood! I could understand what was going on and appreciated how the language was in some ways self documenting, but the huge, narly long lines of camel case drove me batty. Features like linked lists and generics<T> seemed nice, but felt more like a tacked on after thought in an attempt to look more like C#, a language I did in high school when I was a .net guy and didn’t really care for.
Then my mum really went south and programming took a back seat to amateur nursing. Then when she left I went through what I’ve retroactively dubbed The Ruben Troubles. But enough about that.
Yukihiro Matsumoto is really cute
Around that time while I was taking a break from university for aforementioned family reasons, I picked up the second edition of the pickaxe book and fell in love. Ruby was like Perl but was so schweet… to the point where I was thinking "this can’t be healthy!" If you’d been reading my blog for a while you would have read that I came this close to implementing my site in Rails at the time.
I don’t quite know why, but as if my brain is terrified of becoming specialised (and therefore successful) despite really liking Ruby I kept tinkering around with Python as well, and eventually grew to like it more. Despite the terrible design of my site here and the fact I like to ramble on continuously without not so much as one cohesive thought or succinct statement, I’m a huge fan of minimalism and Python is such a clean language. Not only that, it uses the white space for something! I mean, we all indent our code, it makes SO MUCH SENSE to USE it! Ruby still needs end statements or braces just like C and Basic, what’s up with that!?
Oh yeah now I remember why I got into Python: Django. Django is one of the nicest frameworks I’ve ever used. We just clicked. I really tried to like Rails and did my fair share of work with it, but we didn’t click. Despite what some mathematicians and computer scientists say, I think programming is a deeply personal thing, and sometimes things just click, and sometimes they don’t. I’ve done equal amounts of work in Ruby and Python (and WAY MORE in Perl and Java, groan!) and it just makes more sense to me.
This heading is just as useless as the other two
Ruby has some very beautiful language constructs (the iteration block is so friggen elegant and nice I want to give it a huge hug), but an equivalent Python application will [often] be smaller, a boon for people like me who do most of their development hunched over a small ThinkPad at a coffee shop or an Apple computer that has a screen that sacrifices vertical space to make it wider.
Nonetheless, for its lucrative advertising potential (RUBEN DOES RUBY!) and to shut you all up (Ruben… why don’t you do Ruby? Hey Ruben, do Ruby! Hey Ruben, Python isn’t for you, Ruby is! Hey Ruben, your name is a total fit! Ruben, where did I leave my keys?) I’ve decided to give it another shot and submit my next assignment in it instead of Python. Who knows, it’d be great to do some RubyCocoa stuff :).
#!/usr/pkg/env ruby -w class MugiChan def to_s return "Can Yui have this guitar cheaper?" end end if __FILE__ == $PROGRAM_NAME waifu = Mugichan.new puts waifu end
Sent from my iPhone
(one of these days I'll get rid of this thing)