Why do you think people don't like Ruby?

14 replies
In the past 7 years I've work with almost every programming language that is used these days ... Pascal, Delphi, C/C++, PHP, Java with MS SQL Server and with Oracle both in enterprise and desktop settings, C# & .NET, little of ASP.NET and ADO.NET with LINQ, some Perl scripting, Python and Java for Google App Engine, Python with Django (very briefly), VB.NET on desktop, bash & awk & bunch of Linux utilites, even low level programming in Assembler for AVR, and of course HTML, CSS, Javascript, jQuery, Prototype, Scriptaculous ...

But nothing I've seen so far can compete with my experience with Ruby & Rails in past year. Compared to everything else I've worked with so far, the productivity boost was just incredibly amazing. I was suddenly able to solo things that I couldn't imagine of doing before. And most of all, I enjoyed it more than anything.

Everything about Ruby seems to be so amazing, but I find a lot of people hate it. I know a lot of Java programmers who are threatened by it's simplicity and power at the same time. Here is my summary
  1. Gem system - how come no other language has this?
  2. Amazing community
  3. Very intuitive - if you have the right mindset, you learn VERY fast
  4. Self explanatory code - you can basically understand how to use something even if you've never seen it before
  5. Simple tasks are dead simple
  6. Intelligent defaults
  7. Metaprogramming - offers options that no other language has, Java reflection or C++ RTTI is not even close
  8. Readable code - meaning you write less code, so it's easier to scan through larger project
  9. Constructs like blocks make A LOT of things dead simple

Here are some counter-arguments
  1. Ruby is slow - Compared to raw C++ and Java speed? Yes. But as we all know, language is the last thing that comes into play when we talk about speed. Uneless it's very specific case like simulations etc. JRuby speed is basically the same as Java.
  2. Too much magic - If you don't understand Ruby metaprogramming, then it will be magic. But then you have the same problem with any other language. If you do understand it, then you don't have this problem.
  3. Ruby is evolving too fast - This might be problem in huge enterprise settings where backwards compatibility is #1 priority, since Ruby in constantly evolving. But JRuby can be solution here.
  4. Metaprogramming gives programmer too much power - Being able to change anything at runtime can be dangerous
  5. Rails doesn't have as much support as PHP on cheap hostings - This IS an issue.

I might have oversimplified some things to keep this short, so I hope you won't mind.

Did I miss something? What's your standpoint on this? Why do you think people don't use Ruby?
#people #programming #ruby
  • Profile picture of the author powerspike
    At my "day job" we recently had a look at ruby, and a few other languages, we have been a php shop for almost 10 years. At the end of the day these were our main reasons
    1) not enough commercial support or available programmers (ie hard to hire either on a job by job or as a f/t position).
    2) PHP was a lot more forgiving for learners + amount of people we could get was large (more forgiving = hire beginners and still get some things done).


    Personally, until it gets getting support in the way of commercial support (mainly hiring programmers easily), it won't get a big uptake in the business world like php has.

    PHP has a very low barrier to entry and ruby has a pretty high one in the same regards. Don't get me wrong, it's a good language, but a higher barrier to entry means a lower uptake.
    {{ DiscussionBoard.errors[2748193].message }}
    • Profile picture of the author darthdeus
      Originally Posted by powerspike View Post

      not enough commercial support or available programmers (ie hard to hire either on a job by job or as a f/t position).
      Sadly, but I have to agree with this. Same problem is with finding a job as Ruby programmer ... In my country it's like 1 job offer for every 100 PHP/Java

      Originally Posted by mikeonrails View Post

      To answer your question, a huge pain point is deployment. With PHP you just upload the files and are good to go. With Rails, you are best off setting up source control like GIT and dealing with setting up the right stack for hosting the app.
      This is true only for very small apps. If you have running app that people are using, you can't just copy over files With Ruby you have capistrano which makes deploying and rolling back versions a lot easier. It actually solves all the problems that you would have to solve yourself with larger PHP projects.
      Signature
      Visit our website - Internet Marketing Tools on Darthopia

      And join the newsletter to get the Affiliate Sins Report with MRR!
      {{ DiscussionBoard.errors[2749493].message }}
      • Profile picture of the author mikeonrails
        Originally Posted by darthdeus View Post

        This is true only for very small apps. If you have running app that people are using, you can't just copy over files With Ruby you have capistrano which makes deploying and rolling back versions a lot easier. It actually solves all the problems that you would have to solve yourself with larger PHP projects.
        I agree that having source control is much better than copying files over. I use capistrano on my VPS. But for many of the programming questions asked in this forum(screen-scraping, form submissions, email scripts), the Ruby on Rails framework may be overkill. For those, pure Ruby or PHP files that you just upload and forget would be best.

        Some good examples of appropriate Rails projects from this forum are:
        Membership Site
        Content Management System
        Email Marketing System
        E-commerce site
        Forum
        etc...

        I'm working on a few of these types of projects. Ruby on Rails makes it 10x easier and much more fun.
        {{ DiscussionBoard.errors[2750189].message }}
        • Profile picture of the author shinepuppy
          Love ruby... love it even more after 1.9 release where threading and timers work appropriately

          Rails is a completely different ball of wax. Once you know it, well, you can create a feature rich blog from scratch in less than 10 minutes. But getting to that point is the struggle!
          {{ DiscussionBoard.errors[3269003].message }}
  • Profile picture of the author sharp
    Buddy loves ruby... we went to hire some work done in ruby... $$$! Bummer. It may be twice as productive, but it costs us 5x as much to hire work done. We'll sure revisit it our next project though and try again.
    {{ DiscussionBoard.errors[2748276].message }}
    • Profile picture of the author orvn
      Straight to the point:
      RUBY is WONDROUSLY DELIGHTFUL.


      I started learning it a week ago and I think I am in love guys. She treats me so well and is so simple in her complexity, not to mention all the naughty little tricks.

      To be frank, I've never been able to transition into a programming language this easily. SO GOOD.
      Dare I say it may soon be my favourite OOP language? And I'm only getting started, just began working with a Rails environment 3 days ago.
      Signature
      Orun Bhuiyan[@orvn] [linkedin] See what I've been doing lately by visiting my marketing agency's site. SEOcial specializes in content marketing and integrated optimization. We create conversions for businesses by gracefully connecting the realms of design, development and marketing.

      {{ DiscussionBoard.errors[2748439].message }}
    • Profile picture of the author mikeonrails
      I'm loving Ruby(and Rails) as well.

      I think it can initially be intimidating to see 11+ folders/subfolders filled with code you haven't written. The learning curve stems from the fact that mentally you have to keep track of how everything connects...eg. understanding the implications that routing has on how you pass variables in forms and between pages. But once you understand how things work, it is a dream to work with.

      To answer your question, a huge pain point is deployment. With PHP you just upload the files and are good to go. With Rails, you are best off setting up source control like GIT and dealing with setting up the right stack for hosting the app. And sometimes, you don't want to do all that to make a simple 20-line script. Companies like Heroku are changing this.

      Another thing i'm not a fan of is Javascript integration in Rails. There are tons of helper functions which are useful, but sometimes I feel it gets in the way. I tend to ignore the JS helper functions and code straight with JQuery, which is just as awesome as Rails when doing client-side stuff.

      Despite a few quibbles, I think Ruby/Ruby on Rails are awesome. One person can literally create something like a small-scale Twitter over the course of 2-3 weeks.
      {{ DiscussionBoard.errors[2748453].message }}
  • Profile picture of the author caesargus
    I have yet to try ruby, but it has appealed to me, and has been on my todo list for a long time. I keep hearing how wonderful it is, I'll eventually bite the bullet and start learning it.
    {{ DiscussionBoard.errors[2748459].message }}
  • Profile picture of the author twmaffun
    I like ruby, dont know much/much about it, but how can it be slow? Doesnt it use a C backend?
    {{ DiscussionBoard.errors[3269015].message }}
  • Profile picture of the author Peter01
    It hugely depends on your audience. If you studied Computer Science and can easily switch gears into a new language, Ruby is what you should switch to from PHP. I generally believe in sticking to what you know rather than keeping up with the latest thing, but Ruby - and Rails - is a huge bonus for web companies now.

    Additionally, if you are a mediocre or better Ruby developer there are so many career opportunities it is ridiculous. I can easily think of companies in USA, UK and remote working desperate for rails developers.


    My biggest problem with Ruby was fixed in 1.9 (threading) and Rails is simply fantastic. It is somewhat immature compared to PHP, but the level of innovation is much higher. Stuff like Heroku and such originate from the Rails world - not the PHP world - it's more bleeding edge.
    {{ DiscussionBoard.errors[3269811].message }}
  • Profile picture of the author wayfarer
    Originally Posted by darthdeus View Post

    JRuby speed is basically the same as Java.
    Unfortunately this is far from true:

    Example Benchmark <- Java performs 50 times faster in this benchmark, though it's far from definitive, and optimizations could surely be made to the Ruby code. 50 times slower than Java is not as bad as you may think though. Also, this test was back in 2008, things have probably improved somewhat since then.

    I've read a few times that jRuby isn't quite "ready" yet. Eventually, in theory, they should be able to make it go as fast as Java, much as was done with the Scala language.

    Although, I have nothing against RoR, I think it's a great technology. It's true what you say about language being a low priority when it comes to speed. Most of the lag of web-applications comes either from the database or the browser. Even with something as relatively slow as PHP (which I use almost daily), the programming language only accounts for something like 1% of the total execution time, maybe less. Of course this all depends on what is actually being executed, but generally speaking, this is true.
    Signature
    I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
    {{ DiscussionBoard.errors[3270165].message }}
  • Profile picture of the author stma
    Deployment is always an issue - I develop for myself in rails and ruby. Trying to sell the site or the script in those two languages is an issue.

    I've got a site making 500 a month that I'd love to sell because I don't have time to maintain it. Every buyer (at any price) backs out when they find out they can't just slap it over to cheap host 101.
    {{ DiscussionBoard.errors[3270710].message }}
  • Profile picture of the author JPRoss
    We looked at Ruby and I know our team liked it, but picked django instead, which is very nice!
    {{ DiscussionBoard.errors[3272498].message }}

Trending Topics