At the inception of our project, my colleague and I had the opportunity to choose the technology stack. Since we were both Java peeps it seemed natural to start designing the app, a REST based service, using the new Spring 3.0 MVC stuff. We even started to watch some videos on Spring Roo to get it off the ground. The reality of our situation though is that we were developing one of many systems to the client. The other system is being developed in Ruby and the majority of developers at the client are also Ruby developers. Based on this, we decided that sticking with Ruby would be a better fit for the client.
There were two factors easing the discomfort of taking on a new technology to deliver a system on schedule. The first is the relatively simple nature of the application. It's a REST service that does some simple checkout process with moderate performance requirements. Nothing brutal. The other is having an extremely talented Rubiest on my team. Toby's been more than happy to help convert a Maven loving Java dude like me over to the crimson side. I knew with him around this was my best chance to build my first non-trivial Ruby system.
So far it's been a fun ride and after a few weeks it feels like I'm finally starting to breathe some air. The syntax and conventions are starting to become familiar and the ability to navigate stack traces and documentation is improving. Another great ancillary effect is that the functional and dynamic aspects of Ruby have been connecting some of the disjointed dots which surfaced during my brief studies in Clojure.
I do however miss terribly the luxuries that stricter syntax and strong typing enable, especially for tool support. Please refrain from the real coders don't need an IDE spiel. I miss strong refactoring support, especially because my newbie Ruby needs a lot of it. Static analysis and code completion are also wonderful for learning new syntax and API's. Knowing which methods are available to call on a variable is nice. Being able to click through to the source code of that method or see the doc in a tool tip on hover is very nice.
But I'm always happy to learn even if it means re-learning how to learn.
I will be blogging some of the things I banged my head against in order to help others new to Ruby, allow current Rubiests to laugh at my newbieness now, and most importantly allow me to laugh at myself later! Stay tuned.
So far it's been a fun ride and after a few weeks it feels like I'm finally starting to breathe some air. The syntax and conventions are starting to become familiar and the ability to navigate stack traces and documentation is improving. Another great ancillary effect is that the functional and dynamic aspects of Ruby have been connecting some of the disjointed dots which surfaced during my brief studies in Clojure.
I do however miss terribly the luxuries that stricter syntax and strong typing enable, especially for tool support. Please refrain from the real coders don't need an IDE spiel. I miss strong refactoring support, especially because my newbie Ruby needs a lot of it. Static analysis and code completion are also wonderful for learning new syntax and API's. Knowing which methods are available to call on a variable is nice. Being able to click through to the source code of that method or see the doc in a tool tip on hover is very nice.
But I'm always happy to learn even if it means re-learning how to learn.
I will be blogging some of the things I banged my head against in order to help others new to Ruby, allow current Rubiests to laugh at my newbieness now, and most importantly allow me to laugh at myself later! Stay tuned.