Good-bye Geddy

Well, ‘tis official, I’ve given up on GeddyJS. My original foray started out very polite and good and productive. But in the end, I had to walk away to something that was more ‘node’. Here's how it went down, step by step.

tl;dr: Geddyjs is RoR without the large community. Expressjs is a set of simple tools to get stuff done. I am learning this the stupid way.

I do front end, I do OOP

Let me first say I‘m not really, really a server thinker. I don’t really care about a stack. I don‘t really care about routes. I don’t really care about database layers or adapters or, you know, whatever.

On the other hand, I typically fight with other JavaScript devs for being too ‘scripty.’ I don't know. I just love the new keyword. I like to have one class for one concern, and that‘s pretty much it. Compiler or build errors make me feel warm and fuzzy and runtime errors (any way you throw them) make me feel sickly and dizzy. But that relegates me to a weird Product development plane which doesn’t exist in my world. You do websites, you do front end in my world.

OHAI, Ruby on Rails

Without knowing a lick of Ruby, one day I decide it would be an awesome idea to teach myself Ruby on Rails. It was awesome. It was probably the most accessible introduction to writing a server I‘ve ever had. RoR is largely automatic, and as I understood the basics of MVC or Router View Controller, it made sense. But RoR or Ruby (I don’t know which) isn't really OOP. And RoR sites don't really compile, at least not how I'm used to with Java, C#, C++ and ahem ActionScript. So I kind of just fizzled on RoR and gave up.

Well, Excuse Me, Mr. Geddy

And so I create THE WORLDS MOST AMAZING CLIENT SIDE APPLICATION. It‘s so awesome I’ll make millions on it. But there‘s one catch - it really should be on a server, not on a client. And guess what? It’s written in JavaScript using a MVC pattern with, among other things, Backbone.js. A coworker recommends node.js to me. Instead of doing the sensible thing and just copy/pasting my code and creating A SINGLE ROUTE (srsly, that‘s all it would take), I decide this is a great opportunity to make a brand new application for fun and later, down the road, after I’m a node master, I'll port my app to a node server. ^%($&(%)) idiot. It's ok, I call myself that all the time too.

Geddy

Geddy is RoR for js, let‘s not kid ourselves. It’s really new and baby-like and doesn‘t really have a big community. That means if I google a question, I typically spend too much time finding an answer, if I find one at all. That’s lazy. But it also doesn‘t support debugging (I’ve become fond of node-inspector) and it doesn't yet have a great API. I know a lot of hardcore bro devs love to say crap like “just look at the source” but srsly, tl;dr. Api docs are good for adoption and way faster than reading source. I could just break and peek into the objects available at runtime but, shrug, there's no debugging Geddy. So I just walked away.

Express

To be sure, I‘m not entirely sure how I would describe express, other than - it’s more node-y. It‘s RVM, but really it just sort of lays over node and provides some templating and routing and let’s me do the rest. It debugs perfectly and has good API documentation. So far I‘ve spent less time and built more. Mostly because I was comfortable with it. I made my route and I’m even getting everything split up int OOP-like modules. I've got a data fixture that will eventually be replaced by a mongodb database using mongoose. So for now, I'll ride off into the sunset focusing on what I really came for - using JavaScript to write a server application.