I have been hacking around for a few weeks with some web app frameworks in order to prototype a few application ideas. Now I'm not a developer by trade, I consider myself to be a ‘technical’ BA (see my earlier post on business analysts) and I’m always interested in learning new technologies.
With this in mind, I started playing around with Django (I’d been toying with Python and natural language processing so Django was a natural extension) and then gave Rails a shot after hearing people buzzing about it for a few years.
“I came for rails but I stayed for Ruby”
I heard this phrase many times when reading through the mountains of posts on the subject and it couldn’t be more accurate. Like I said earlier, I’m not a developer but I can read and make vague sense of most mainstream languages but I have never seen anything so intuitive and obvious as Ruby. The syntax is clear, it doesn't contain a lot of onerous escaping semi-colons or braces, or use excessive indenting, it just reads so cleanly. Conventions like using question marks (empty?) just make so much sense and makes reading and writing Ruby so easy.
Up and running with a new Rails app in 5 minutes
It really is incredibly easy to create a basic skeleton app in 5 minutes (assuming you have an environment setup already – which is max 30 minutes anyway!). Using generators and gems like awesome twitter-bootstrap gets you not just a basic skeleton but also an incredibly functional UI framework ready to build upon (I love you twitter-bootstrap!).
Less focus on arduous scaffolding, more time to prototype!
For me, the beauty of Rails is being able to quickly mock-up up an idea without spending several hours building the scaffolding before I can put in anything useful. I can draw a quick data model and a few UI sketches on paper and translate this into Rails in under 30 minutes to get my idea out of my head and into something real.
I’ve tried in the past to transpose my ideas in different ways, sketching UIs on paper, building PowerPoint/Prezi presentations of key concepts, Balsamiq mock-ups and stream-of-conscious sessions into text files, but they never went anywhere because they were always abstract – there was no ‘easy’ step to transition to something real. I’d always get lost / sidetracked choosing platforms, technology stacks and eventually find myself looking at a detailed jQuery library on some low-level UI element that probably had nothing to do with my app in the first place.
Something tangible, something flexible
Rails gives you powerful tools to get something out quickly and then build upon with a robust toolset (RSpec, Cucumber) to ensure you aren’t cutting corners and allows your 10 minute prototype can transition into a robust application.
Sure there is a learning curve, but its the easiest of the bunch (IMO) powered by a beautiful language and backed by a vibrant and vocal community.
Let the ideas flow…
With that said, lets see if any of my half-baked ideas eventuate into anything other than personal playgrounds – Github be ware, I feel a large amount of commits coming from this ‘non-developer’..