Outsourcing Development Part III: Choosing a Web Framework

This article is about two things: what you should choose, and why we chose Grails. In our last piece, we told you why you should avoid building software from scratch. But many of the companies we advise and work with are startups who are innovating and need to do just that. This addresses the question of which web framework to choose for your project.

Once again I will defy convention and tell you that the technology your outsourcing partner uses is not that important. If anyone is telling you that PHP, Ruby, Python, Groovy, Java, Scala, JavaScript, etc., will have a huge impact on productivity or your timeline, they are inexperienced or lying. Sorry to be so blunt, but this has been known for a long time, at least since the seminal paper No Silver Bullet was written almost 30 years ago. That paper elegantly explains that the essential difficulties of software development – determining the business logic, overcoming integration issues, designing the user interface, etc – take far more time and thought than actually implementing the solution.

Therefore, it’s far more important to pick a team that understands what you need and why. A team that is just plain smart and experienced. If you are confident of their ability to execute your vision, you can be confident that they won’t choose a technology that is a poor choice for the task.

So why do we use Grails? If technology doesn’t matter, did we pick it out of a hat? No. It was very carefully selected. In short, it is a highly trusted platform with many developers, and allows for high productivity with the potential for high scalability. Curious to learn more? Think we misspelled Rails? Then read on!

Grails is built on the Java platform, and there are none more trusted than Java for critical web applications. Around 1997, Java took the web by storm and is still going strong. The majority of the world’s top sites use it within their company. They use it because it’s very fast, but also because when it comes to web technology, there have been more problems solved with Java than with any other language. And these solutions exist in the form of open source software that anyone can use.

It’s important to have a strong pool of developers as well. Java is one of the most popular languages in the world. According to Tiobe, it’s #2 , between C and Objective C, neither of which you’d use for a web app. It’s also the most common language for computer science curricula, so most graduates know it. We have over 15 years of CS graduates,1 not to mention everyone who learned it afterward.

Now, Grails doesn’t use Java directly, it uses a language called Groovy. But Groovy is more powerful than Java while being very easy to learn. 2 And Grails itself is trusted, too. Many major companies use Grails for mission critical applications, and the list is growing.

Productivity comes in two ways. First, it’s built on technologies well known to Java web developers, so it’s easy for them to learn. Second, it is known as a “full stack” framework, meaning it can handle both the user interface and database access and everything in between. That is where much of its power comes from, and it shares that with other frameworks like Rails and Django.

Finally, there’s speed of execution. Now, this is a hot button issue. The argument for many full stack frameworks like Rails is that they save you developer time, and you can use that financial savings for more hardware. But the speed difference between Rails and Django vs. Grails is significant. According to the latest web performance benchmarks,3 Grails is 4-5 times faster than the other two. Furthermore, when you need to speed up Grails, you can dip into Java. Going from Groovy to Java is trivial for a Grails developer, but going from Ruby to C (the language underneath) is not. We know this because more than one Rails shop moved speed critical portions of their app to Java.4  Twitter is perhaps the most famous example – all of your tweets run on Java.

Again, I recognize many developers don’t like me pointing this out. They think it’s irrelevant because if you have a lot of traffic, you can afford to spend a lot on hardware or rewrite your program. Maybe. But we like Grails because it gives us the flexibility to do both without huge changes to the software or the team.

Hope that helps! Feel free to ask questions in the comments, and if you enjoyed this, sign up for our mailing list below.

[mc4wp_form]

  1. My alma mater made it the standard language back in 1996. []
  2. And not just for Java programmers; Ruby and Python developers can pick it up quickly as well. []
  3. This was written after Round 8 and I chose the Fortunes test since it is most like a real world web app. []
  4. I also know this because Ruby and C are two of the 15 languages in which I’ve programmed. []