Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why Ruby on Rails? - Feweb - September 2014

samant
September 16, 2014

Why Ruby on Rails? - Feweb - September 2014

1. “Why Ruby on Rails?” by Nicolas Jacobeus (@jacobeus) and Stéphane Amant (@stephamant) from Belighted

2 -> 6. After spending some times learning and using classical web development languages such as Php, Python, and even C, Nicolas Jacobeus found out that Ruby and the Rails framework was the perfect match in order to create Belighted, a web and mobile development agency.

7. Belighted crafts impressive tools with passion since 2008 and is the biggest Ruby and Rails company in the Belgium french-speaking region.

8 -> 10. Ruby is an object-oriented language and allows you to express yourself as you desire because the language is multi-paradigm (functional, logical, …). Ruby is also the perfect language to create DSL, thanks to it’s ease of expression and meta-programmating capabilities.
Rails is a web framework. It offers you a pragmatic set of tools for your projects as itself is based on a real project called Basecamp. Key foundations behind Rails architecture are all the opinionated choices that led to its building and the mantra “Convention over Configuration”.

12. We’ll now present you some of the greatest advantages and so-called disadvantages of Rails based on our daily practice at Belighted.

13. Advantage 1: The ruby syntax is concise, expressive and as readable as it gets. We can even say that your code will be human-readable and thus self-documented. These traits will produce quality code faster, and offer easier maintenance.

14. Advantage 2: Ruby is deeply object oriented. This pushes you further within your creation process, allowing you to easily create DSL (domain-specific language), another drastic improvement to productivity, readability and maintainability.

15. Advantage 3: Rails is all about a community too! Ours is widely open to newcomers (RailsGirls, Ruby User Groups, …), innovative and always at the edge of new tech trends (ie: Pre/Post assets processors lately). You can feel a real entrepreneurial spirit built-in (with so many companies using and supporting Ruby and Rails such as Github, Heroku, …).

16. Advantage 4: Plenty of open source and up-to-date “gems” (Ruby libraries) and tools exist and are maintained by teams and companies (all of this is mostly available on rubygems.org and hosted on Github).

17. Advantage 5: The ecosystem within Ruby On Rails is packed with powerful tools: from IDEs such as RubyMine to deployment tools (Capistrano,...), specific terminals (pry,...), versioning (git,...), dependencies management (bundle,...), task execution (rake,...). All of these free, open-source and supported by the wide community we talked about before.

18. Advantage 6: all the previously advantages considered together (Ruby and Rails is built upon principles of “Convention over Configuration” and is opinionated, all the existing gems and tools covering plenty of domains, the productivity gained with the Ruby syntax) allows anybody using Rails to implement features faster than ever in small projects as well as enterprise-level applications, while keeping an excellent code quality. Making Rails the perfect prototyping tool.

19. Advantage 7: Your usage of Ruby and Rails will be supported by a bunch of online learning platforms and material (CodeSchool, RailsCasts, RubyTapas, …) and a comprehensive book collection. Furthermore, thanks to Ruby’s readable code, you could self-learn the best practices by reading the code of existing gems.

20. Advantage 8: In a world in which Javascript one-page-applications and mobile client applications are becoming more and more frequent, Rails brings you an easy API creation process by default without need of additional resources, making Rails the perfect backend companion of your app.

21. Advantage 9: We can all agree that computer security is a huge matter in itself, and most of us are no experts in this field even if we know the basics threats. But Rails is there to help you. First of all: the framework integrates all the basic and well-known protections against known security issues such as SQL injection and cross-site-scripting (XSS). Furthermore, Ruby and Rails is frequently and efficiently patched as soon as a vulnerability is discovered..

22. Advantage 10: With 10 years of existence, all the successful projects developed by big and small companies all over the world, Rails is no longer a tiny and obscure framework but has currently a really good reputation as web development framework, and its usage keeps rising.

24. Disadvantage 1: Some users complain about the fact that Rails’ hosting is less easy and spread than PHP counterparts but consider Java and Glassfish and you’ll see that’s peanuts in comparison. Furthermore, the number of hosting offers is growing and open-source tools such as Capistrano are pushing your deployment process towards a professional level for free.

25. Disadvantage 2: There are some complains about a so-called lack of performance compared to compiled applications in C, Java or … but to be honest, whatever the language, the real issue with performance is the network and the machines between server and client and rarely the code itself. In addition, each release of Ruby and Rails has improved upon the framework’s performance.

26. Disadvantage 3: “Rails is too edgy and we have the feeling of not being stable compared to competitor frameworks like the Java ones”. This statement makes you forget that’s in the roots of Rails to be always on the edge of the latest tech trends and thus it will stay like this by definition. But a real good advantage for prototyping fresh new applications.

27. Disadvantage 4: Saying that the framework and its ecosystem (all the tools, gems and additional complementary languages such as js, css, …) have a hard learning curve compared to PHP, is forgetting that principles such as “Convention over Configuration” and all the opinionated choices already made allow you to get things running quickly. Yet, you will indeed need to understand all those choices and patterns to master the framework in its entirety. Scaffolding exists as learning support and prevents you from delivering sub-par code. And finally a wide documentation support (books, websites, …) and big and active community are also available.

28. Disadvantage 5: No recognized companies support the framework (in the way Google supports AngularJS, or Oracle for Java) but there is a wide and active community, and plenty of smaller companies (compared to Google) who support gem development and running projects. Few of them will suddenly die or disappear.

29 -> 30. Hall of fame of Ruby on Rails projects that encounter a great success all over the world.

31 -> 32. Belighted already crafted a wide variety of products for big and well known companies to smaller startups.

33. A nice and useful tools tailored to improve your company management proudly crafted by Belighted using Rails: Scale. Have a look at: getscale.io

34. Thanks everybody. Follow us via our twitter (twitter.com/belighted), our facebook page (facebook.com/belighted) or our website (belighted.com)

samant

September 16, 2014
Tweet

More Decks by samant

Other Decks in Programming

Transcript