8 Reasons to Incubate your next Startup (App) in Ruby on Rails
Do you want to be happy?
The answer to that should be easy, right? I mean, it’s only human to want to be happy! And, as robotic as they may seem, Programmers are humans too, right? It only follows, then, for programmers to use a platform that was built for exactly that purpose!
No one puts it better than David H Hansson, the founder of Ruby on Rails:
Optimizing for happiness is perhaps the most formative key to Ruby on Rails.
David H Hansson>
What started with your abstract idea, seems to all make sense now. You’ve already managed to put together a team, while also convincing some more people (hopefully a few Angel Investors and Venture Capitalists) along the way! Thrilled but anxious, you’re all set to start your own firm! It’s supposed to be new, fresh, promising, right? What could go wrong (apart from the usual)?
After all, the hard part’s done (seemingly)! Now should be the easy and fun part, where you start breathing life into your idea. But, wait, before you do that, make sure your idea goes into the right shape and body! You don’t want your Application to feel trapped in the wrong body or the wrong shape!
So, how to do that? How to ensure that you don’t end up building a trans-app? that you create a body whose shape & features complement your idea to its very bone, all the while hoping no one else beats you to it!
The answer is simple: Ruby on Rails!
I’m sure you’re familiar with the notion of connecting Ruby on Rails with Startups. For many people without a technical background, Ruby on Rails epitomizes a startup; to them, it is the startup’s very core, foundation, and soul.
What’s a better way, then, to instill confidence in your startup, to make it look like the next Disruption than using Rails to build it? Many Angels and VCs would take this very choice as a show of confidence!
Not only to them but to the startup’s executives and developers as well! Most say they feel liberated and free when using Ruby. It unleashes their creativity and true Potential, previously restrained by other platforms. It’s their own way of rebelling against the bureaucracy.
I’ll try to convince you today why I am so strongly committed to linking Rails and Startups:
Rails blends with your Culture
It’s more than likely that if you want to start your own firm, to build and create something of value, then you aren’t driven purely by money. Startup founders tend to focus more towards building a legacy, to leave a mark. After all, every Tom, Dick, and Harry can make money, but only a few can be entrepreneurs.
As startup founders try to construct their ideas from scratch, they often feel burdened with the task of accurately translating such ideas into code. However, Ruby is a language that allows you to express yourself just like you would with English. As _why pointed out in his Poignant Guide, Ruby is not an ordinary computer or coding language, it’s a language period! Once you’ve learned it and can speak it natively, “you’ll be writing stories for a machine” through it.
Anyone with a sound mind can tell you that a verbatim and literal translation from one language to another will result in a loss of meaning. To be a master translator, one must be a native or near-native speaker of both languages. If you want your code to be perfect, you need such master translators (programmers), who can speak Ruby natively. Luckily, it’s not too difficult to learn Ruby, and there are many, many developers who specialize in it.
A Host of Developers at hand!
Finding a proficient developer in Rails is easier than posting it on Craigslist!
It should be effortless to find developers who not only are experts in Rails but who also can visualize your idea and what you want to create. Owing to the open-source nature of Ruby on Rails, a Rails developer will almost certainly be involved in contributing to open source projects. So, he likely shares your values and vision in building something more substantial than money. This would also make him a good cultural fit for your firm.
Quite interestingly (like previously mentioned), unlike other programming languages, Ruby was built to optimise programmer happiness (something that no other language focused on); as such, it places the developer’s “happiness on a pedestal”. Where most programs emphasize “one and only one way to do something”, Ruby rejoiced in its expressiveness and subtlety.
In a certain sense, Ruby transformed the way programming was done, and the way programmers work, function, and think. Perhaps that explains the seeming abundance of developers in Rails; many are hobbyists who’ve fallen in love with it.
It doesn’t burn your money or time up
Another one of the more potent reasons why startups love Rails is its efficient development time. Rails present a developer with ready-made plugins and modules that allow him to start building his application without writing and rewriting basic and repetitive code. It makes coding so easy that even a monkey can code!
(Well, maybe not literally)
The amount of time this saves cannot be overstated. On average, Rails teams can construct and fashion applications up to 40% faster than those using other frameworks.
Apart from cutting down substantial development time, Rails saves costs as well. Firstly, Ruby on Rails is the completely open source, so no costs (hidden or otherwise) at all. Secondly, Ruby on Rails advocates what it calls “ Convention over Configuration “. This approach saves both developer time and effort.
It does your chores for you!
The creator of Rails voices his productivity motto: “You’re not a beautiful and unique snowflake”. He believed that by giving up vain and smug notions of individuality, one can leapfrog the various mundane and repetitive decisions, and instead focus on areas that actually matter. Rails calls this the doctrine of “Convention over Configuration”
Rails axes down the thick, ever-growing and recurring branches of decisions that programmers face while developing applications.
Rails offer a plethora of Gems (its special libraries with pre-cut templates that allow developers to add almost any functionality) for miscellaneous purposes, available to download for free.
You may be wondering how you can create something new, something of value, something worth building if every aspect of your application can be designed with templates. Well, here lies the tricky part: knowing when to stray away from such conventions. If you want to truly build a unique application (which would give life to your fresh idea), then your app will need to have some truly original element in some fashion. (It could be 2%, 5% or 10%, but it’s there!)
Does the quick development time have an inverse effect on Quality?
While allowing for quicker development, Rails doesn’t compromise on Quality.
Any Startup in the Tech sector strives for excellent and bug-free quality applications. Bugs are the ultimate and the most common nuisance that can disappoint end users despite building an overall successful application. Rails place particular focus on bug-free development. It includes a mini-test tool. This is a test-suite that allows users to test various features including (but not limited to) expectation syntax, test bench-marking, mocking.
Furthermore, it encourages Test Driven Development (TDD) and Behaviour Driven Development (BDD) approach. Both enforce the doctrine of drafting automated tests before coding.
Given that these approaches have been correct, strictly and appropriately followed, they ensure a 100% code coverage with tests and a well-elaborated software architecture. Moreover, TDD reduces development costs by cutting the development time and terminating previous bugs.
Now, unless you are the startup of the millennium, the time saved in building and getting feedback on your Minimum Viable Product (MVP) is of the essence. Many a time, it’s the difference between success and failure. Rails’ TDD’s value here is immeasurable.
Rails further emphasize the best-possible software engineering practices like no other framework. The wide community of Rails promotes code that adheres to its KISS (Keep it Simple, Stupid!) and DRY (Don’t Repeat Yourself) principles. Consequently, applications built using Ruby on Rails feature consistent, maintainable, and testable code.
It Scales too!
What does every application, irrespective of platform or size, strive for? Visitors!
This is one of the major goals of all applications: to gain traction, to attract as many visitors as possible.
If you’re only beginning to start out, you might not be too worried about scale. But, it’s crucial to recognize your application’s and its respective framework’s potential to handle huge loads (requests per minute). You don’t wanna be in a situation where your app started gaining traction, but simultaneously, kept crashing because of poor scalability.
So, you should prepare in advance and make sure that your website or application can handle every visitor you intend to attract.
You might have heard of the application Shopify and how a few trolls claim that it was successful in spite of the scalable issues of Ruby on Rails. Well, to answer them and end this matter at once, here’s a tweet by Tobias Lutke, CEO of Shopify:
Its crazy that people are suggesting Shopify has been successful despite @rails. Shopify has been successful because of rails!
Tobias Lutke, CEO of Shopify
Shopify processes more than 4 million requests per second!
Furthermore, the RESTful architecture (Representational State Transfer) is deep-rooted in Rails. REST essentially entails how your web services connect with the outside world. Creating a REST API is almost effortless with Rails. So, Rest assured, should and when your business needs active and consistent interaction with the rest of the world, Rails will make that transition seamless.
It’s an open source platform, so is it secure?
As touched upon previously, Rails emphasizes security in all its features. Most security features already built and installed in the framework are enabled by default. When you use Rails, you follow the Secure Development Lifecycle, which assures total and complete security.
In addition, before every release, the Rails community tests and ensures the security of every plugin, update, and application.
What if I need additional Support?
It’s a recognized fact that Rails has one of the most active, vibrant and diverse communities in the programming world.
Rubyists (as they call themselves) write blogs, books, and organize meetups and conferences. They take part in hackathons (yes, it’s a nerd-thing, and yes, they do exist!), and are always happy to share.
That is undoubtedly the result of its open source framework culture.
In terms of startups, it follows that the community, while addressing your problems promptly, also can offer various useful, well-documented and tested plug-ins for every possible need. If there isn’t one suited to your needs, you could request it in the community, who would be more than happy to oblige.
In the interest of full disclosure, a few criticisms now
The way I’ve been raving about Rails, you might’ve already assumed my seemingly-obvious infatuation with Rails. You might presume that, like a crazed Apple fanboy, I’m blind to its flaws!
I wouldn’t blame you, after all, the post has been a little loudmouthed and pretentious, right? But, as you’ve managed to make it this far, I implore you not to declare me a Rails-crazed-fanboy just yet!
To those who say Rails isn’t efficient when compared to other languages, I ask how they define efficiency. I have already explained how, along with optimum results, Ruby saves both time and money. If that isn’t efficient, I don’t know what is.
Some will simply declare: “Ruby isn’t Java — End of argument!” That, ladies and gentlemen, is my definition of bias. It assumes that Java is objectively the best and that its dominance in programming is indubitable and eternal.
Some argue that Java is an enterprise-grade language, while Ruby is used only for the geeky, cool applications in social, mobile, and e-commerce sectors. So it’s not suitable to handle enterprise-level loads.
This argument is flawed: Ruby applications are built to webscale and can serve hundreds of millions of users, while enterprise-scale applications barely serve hundreds of thousands at best.
Thor Muller, CTO and co-founder of Get Satisfaction says:
Ruby on Rails offers more than just pure speed. We know it’s faster to develop an initial working product in Rails, so prototyping in Rails made a lot of sense for us. As we worked more with Rails, we realized it was also ideal for our work style and the types of personalities we wanted developing our product – particularly because our established developers like the elegance of Ruby language and Rails framework.
Thor Muller, CTO and co-founder of Get Satisfaction
I recently came across an article that, with a heavy bias, declared NodeJS to be much better than Ruby. While I’d agree that Node has its advantages, declaring Node as unequivocally better is inaccurate and misleading. To begin with, his post had Google trends as its primary source! (I don’t criticise Google trend’s content, but rather its authenticity). Add to that, the attempt to mask the true results by using misleading keywords (a search of ‘Ruby on Rails’ instead of ‘Rails’ decreases the numbers significantly and skews the stats). He uses this tactic for all his stats and graphs.
Finally, I’d just say that even if all those reasons weren’t enough, try Rails to be Happy! In the words of Hansson:
It transformed me from ‘doing programming because I needed programs’ to ‘doing programming because I fell in love with it as a mode of intellectual exercise and expression’
David H Hansson
There really is no other equally advanced, secure and fast tech for creating applications as Ruby on Rails. Don’t take my word for it, just give it a go. You won’t regret it! Just start coding!
What do you think? Have you used or have had any experience with Rails? Do comment and let me know!