Ruby (again)

Well, today... I did it.

I asked the Lead Programmer if we could put our foot down and say: "From here on out, we will write for windows in C#, and for the browser in Ruby."

I was surprised I asked... I had been telling myself to hold off on asking that for a few months... but I'm not good at keeping secrets and I'm impatient when it comes to asking questions: especially questions that improve my lifestyle. So... out it slipped.

I was also surprised at his reaction. I expected him to say "No, and shut up about Ruby already, freak!" But he started by saying "that would be cool", and then arguing on my behalf, saying that "we have more Ruby experience than ASP.NET". (ASP.NET is our current alternative, not counting ColdFusion, which... well... is fine for informational websites, but not for doing actual work. And even for informational websites, it's so much more painful than Rails.) He also pointed out the fact that ... well.. Ruby is free. So it's not like it's a risky investment in that respect.

He didn't want to make a decision, but suggested I "call a meeting" with all the programmers (at least the four core programmers), and argue my point.

I've told myself I would hold off on calling this meeting for a week or two.

We'll see how patient I am with that decision.

...Man, I am such a Kool-aid-drinker when it comes to Ruby. ...And Agile. ...And OO.

Does that make me a chump? (Thanks, Andy.)

Speaking of Agile, we had another pair-programming session (actually, trio-programming, yuk yuk) today. Our code is finally starting to "do stuff". It's a scanning program, and we have it building a list of all the items that need to be scanned (for a given order). That was cool. Today we added the functionality that, when you scan one of the items, it "checks" the item off of the list.

When the program worked, all three of us jumped out of our seats, hooting and hollering.

...Made me feel like a toddler who giggles when he hits the button and the catepillar sings an out-of-tune digital song.

We (programmers) have one of the best jobs on the planet.

Speaking of the scanning software, it's actually quite cool: it talks to a table with a list of barcode patterns (because we don't know the acutal number to be scanned, we only know kinda what it's supposed to look like): we read the patterns out of the DB, run through all the items on the order, and when one of the patterns match, we mark that item as "scanned" (which does all the appropriate work, including ticking off the checkbox in the display). The RegEx includes groups, so that a Strategy Pattern can tell the Barcode object what to do with the number it scans, including all kinds of study-specific work. So something like "^6([AP])(\d{5})$" returns two strings, the first of which tells us what kind of drug it is, and the second which bottle number it is. The initial '6' is just a flag to tell us we're scanning a bottle number: we don't need to remember it. ...That's just an example: the code is actually extremely extensible.

We're all rather proud of ourselves, so far. :)

No comments: