By: Raji Ayinla, Codesmith Intern
When my friend pitched his startup idea to me, I had to come up with a language that could be used to write code for both a landing page and a mobile app. After some research, I came up with a list of pros and cons that you can also use to decide to which language you’d want to commit.
- Node is the future. Just take a look at Google Trends. You want to be able to sell to VC’s the scalability of your company, and Node’s rising popularity provides a stable model of growth.
Ruby on Steroids
With the rise of the Node/Express/React super team, Ruby on Rails seems to have diminished in the eyes of developers. It doesn’t help that Ruby has recently fallen to 8th on RedMonk’s language ranking, the lowest it’s ever been. Then you have the rise of Machine Learning, Big Data, and A.I. – only some of the many futuristic keywords repeated ad nauseam at Google’s keynote events. Python has monopolized this data-driven area of research, which in turn has dented Ruby’s popularity.
With that being said, here are some pros and cons of starting your startup with Ruby.
- Ruby has one of the most active dev communities out there, and that means great documentation and amazing open-sourced dependencies, or “gems”. You want to use a React library within your Rails app? There’s a gem for that!
- Ruby code is simple, yet expansive. The rubyist philosophy of “there’s more than one way of solving a problem” can be a bit overwhelming at first, but once you’ve mastered a few methods, you’ll be in awe of the seemingly countless tools at your disposal. Say goodbye to polyfills.
- I swear, Harry Potter invented Rails. Ruby’s framework is by far the most magical concoction. With a single rails g scaffold command, you can create an entire blog. The routing system is excellent and once you learn all of Rail’s nuances, you will scale projects quickly.
- Ruby has a major kryptonite: Sloooow performance. Just look at the chart.
To quote Jules Winnfield, “That is one slow mother——”
- Rails’ red screen of death may make you pull your hair out. Oftentimes, debugging a Rails app can cause nightmares due to its abstract nature. Once the magic wears off, you’re left with long stack calls and nested folders to scavenge through.
Python’s Tango with Data
Jeff Knupp, a Python programmer, posted a great article that deftly explains why Python is rising in popularity. In short, the language is a tool for statisticians and has given rise to the job description of “data scientist.” Recent developments in Deep learning, a technique that patterns machine learning off of the neural networks of the brain, has opened up the field of A.I. If your startup is going to exhibit any form of intelligence, having a Python codebase may be the way to go. Here are some Python pros and cons:
- Like Ruby, Python is readable. It is also dynamically typed so that exceptions are raised, leading to more pain-free debugging processes.
- Python is ideal for computational tasks because of its buffer protocol, which allows C extensions to be built out of Python, which can then be used to create powerful computational libraries.
- The Django framework is similar to Rails in that a developer gets everything they need to scale a web app out of the box. The advantage, though, is that Python’s principle that “explicit is better than implicit” means that there are fewer abstractions.
- Because of its focus on computation, Python is not a speed demon. In fact, it’s a fraction slower than Ruby…by 0.7%
- Python is restrictive. Dynamic typing is double-edged in this case in that it causes more errors, most of which show up only at runtime. This means a longer development process. The compiler also enforces its own style upon the programmer, forcing them to indent and space correctly lest they be hit with loud error messages.