Ruby Experts: Why They Are In Love With Ruby/Rails

Posted by Naveen Bala at 09:32AM Dec 19, 2007

Comments[2]   RSS Email AddThis Social Bookmark Button

Ruby experts tell us why they are in love with Ruby/Rails. Recently, I attended a Ruby users group in Atlanta and I was very surprised to see over 50 people attending the usergroup on  a weekday evening, and nearly all of them have been active members of the usergroup for at least over a year. I could tell that they loved Ruby/Rails unlike anything I have seen in the the C++/Java community (languages I work with). The expert panel below will tell us why they are "in love" with Ruby/Rails.

Ruby Panel Experts

 

Satish Talim: Has over 29 years of IT experience and is a Ruby Mentor on rubyforge.org. Maintains rubylearning.com, a thorough collection of Ruby Study Notes for those who are new to the Ruby programming language and in search of a solid introduction to Ruby's concepts and constructs.

Peter Cooper: The author of of Beginning Ruby, he is a serial entrepreneur based in the north of England. He maintains Ruby Inside  to not only flex his creative muscles but also to provide the Ruby community with a human-edited digest of interesting Ruby news, tricks, and tips.

Alex Wayne: He has been Using Rails since before 1.0. He is the Author of FlexImage Rails plugin. Greatly enjoy pizza, beer and other yummy things. He is the Asst. Organizer of the North Bay Area Ruby Users Group.His Ruby site.

Alex Leverington: Developer of popular GPL'd IT support tool named SimpleTicket.

Abhay Kumar: He is a data junkie and software engineer, is an active member of the Ruby development community - has presented at Rails related events, has published a Ruby Gem and works professionally with Ruby. His Blog.

Adam Williams: 3 years of experience with Ruby and 6 years of experience with Java. He made the jump from Java to full time Rails and couldn't be happier.
His openSource work includes RDT, Open Sails, Radiant CMS, OFXRB , EaSSL.

Alex Kane: Alex Kane is a Software Developer who comes from a financial background and is currently consulting in New York and Tokyo. He now uses Rails to become more productive.  His Website.

Adam Keys: A software developer from Dallas, TX, he’s been working on a book about Web Services and Ruby that he hopes to finish before the galaxy collapses on itself. He also writes on his weblog, The Real Adam on topics ranging from captioned cats to Ruby and microformats.

Q: If you were to start afresh, would you learn Ruby again?

 

Satish Talim:  Definitely a *Yes* - for Ruby's simplicity, it's terse syntax, it's endless flexibility, the feeling that we can do whatever we want, whenever we need. For inexperienced programmers there's the plus side that the learning curve is very smooth. You can master the basics in a few days and grow alongside the language. In fact, Ruby can be a good entry-level language to learn and I am trying to convince the local educational authorities in Pune, India to make this a reality.

Peter Cooper:  Yes. I started by becoming interested in Rails first and then learnt Ruby by osmosis, but looking back it makes much more sense to learn Ruby first and Rails afterwards. Ruby is very powerful in its own right, not just as the supporting language for a Web framework.

Alex Wayne: Absolutely.

Alex Leverington: Absolutely.

Abhay Kumar: Yes.

Adam Williams: Absolutely. Though I will say I am thankful for my experiences with other languages.

Alex Kane: Absolutely.  I made the switch from Java to ruby about a year ago and haven't looked back (much).  Java is a great language but it's really verbose.  One Ruby is easier to implement is that there's simply less typing. I had lunch with Yukihiro Matsumoto (aka Matz; the guy who created Ruby) in Tokyo and he's a really sharp guy.  It's his vision that's made Ruby so easy to work with.

Adam Keys: Definitely!  Even beyond the opportunities knowing Ruby has afforded me, Ruby and the people involved with it have changed the way I develop software in a profoundly positive way.  I could have learned  about metaprogramming, DSLs, aesthetic and scaling elsewhere, but I don't think I would have learned it as quickly or as well as I've been able to as part of the Ruby community.
 

Q: What do you think is the most important feature of the Ruby language?

Satish Talim: Wow, that's a very, very hard question to answer. However, what I think I love best about Ruby is described by Yukihiro Matsumoto (Matz) "Ruby's a language that makes me productive while being fun to use." Specifically, blocks are important in Ruby. I'm always surprised by how much I can do with a method that takes a block.

Peter Cooper: The freedom that Ruby provides is very important. It's a very consistent language with a well established syntax at the base level, but if you need to you can dive in and change significant parts of how Ruby works on the fly. This power, combined with how easily you can begin building simple programs, makes it a great all-rounder language.

Alex Wayne: It's dynamism.  Being able to add/remove methods, reflect on the state of objects, and use meta programming tricks is what makes ruby so powerful and fun.

Alex Leverington: Ruby has a very consistent OO methodology, syntax, and uses messaging (similar to smalltalk). This combined with the 'natural english' syntax makes code very easy to read while still being flexible enough to create complex programs.

Abhay Kumar:It is designed, from the beginning, to be object oriented and is purely so
(no wrapper classes like Java), it's dynamic, it has a great regular
expression engine (and will become even better very soon), it's intuitive
and legible (a non Ruby linguist can actually ready through source and at
least partially understand what's going on), and it has a lot of syntactic
sugar

Adam Williams: Blocks.

Alex Kane: That's a difficult question to answer.  I love the fact that Ruby code is usually easy to read. It also has many of the Object Oriented features of Java but it's a dynamic language which makes it more flexible sometimes. If I had to pick the most important standard library it would be Enumerable. Take a look at it, it's really powerful but at the same time easy to use. Check out the syntax for writing a loop, it's really easy:

[1,2,3,4,5].each {|i| puts "Number #{i}"}

Adam Keys: At a language level, Ruby would not be Ruby without blocks.  The way they change how you program is worth any price of admission on their own.  Zooming out, I again have to note that the people around Ruby are fantastic.

Q: What Ruby forums would you recommend?


Satish Talim: Obviously the *ruby-talk forum* . It's the most active forum and you would find most of the top Ruby experts helping each other and all the newbies out there. This forum is the fastest and easiest way to learn and share knowledge. The other is my own *RubyLearning forum*  for Ruby newbies. I am actively involved here, helping all the newbies with their Ruby-related problems, questions. It has a vibrant community.

Peter Cooper: Unfortunately Rubyists don't tend to congregate on forums very much. The most popular forum for discussions is the ruby-talk mailing list  although there's also RailsForum.com which is very popular for Rails and Ruby developers alike.

Alex Wayne: Ruby Forum

Alex Leverington: None, #ruby on freenode is best

Abhay Kumar: I wouldn't unless you count ruby-forum (which is really just the ruby-talk email list)

Adam Williams: None in particular. I tend to look for solutions when I approach unfamiliar problems, and stay connected to great folks who will tell me when something interesting is going on.

Alex Kane: I like Ruby Forum .  It houses a number of ruby forums with gateways to Google groups as well.

Adam Keys: If you have the means, I think the best thing to do is to show up to a Ruby or Rails conference, whether its local or national.  Establish a relationship with as many people as you can and maintain it.  Without a doubt this is the best resource for getting beyond what the books can tell you.



Q: What books would you recommend to a newbie?


Satish Talim:


Peter Cooper: If the newbie knows literally nothing about computation, algorithms or what programming even means, I'd recommend Chris Pine's "Learn to Program." It covers programming from the very first steps and uses Ruby to do it. If the newbie knows they want to use Ruby, understands at least what programming is, and perhaps has another language under his / her belt, I'd recommend my own book, "Beginning Ruby" published by Apress. I wrote the book to fill this giant hole in the market, as existing Ruby books tend to assume you know what object orientation is and so forth. In its 650 pages, Beginning Ruby takes you through everything you'd need to know about the language to feel confident to make your own way. If the newbie is really an extremely seasoned programmer who's already familiar with object orientation (possibly a Java or Python programmer) then The Ruby Way or the "Pickaxe" books are the best bet.

Alex Wayne: Pickaxe, then Agile Web Development with Rails 2nd Edition

Alex Leverington
: Latest edition of Pickaxe

Abhay Kumar: The Ruby Way (Hal Fulton); Pragmatic Ruby (Dave Thomas)

Adam Williams: Programming Ruby 2nd Edition.

Alex Kane: I got started with "Ruby for Rails" by David A. Black.  It covers Ruby pretty well while digging in to Rails.

Adam Keys: If your background is programming, the Pickaxe is the way to go.  I don't have any other books solely on the Ruby language, but I don't think you can go wrong there.If your background isn't in programming, go for The Poignant Guide.  If you're a programmer, it might aggravate you.




Q: Name a programming language that you would like to learn? (if you had the time & resources, of course)


Satish Talim: Lua  - a powerful, fast, light-weight, embeddable scripting language.

Peter Cooper: PHP, surprisingly. I find it extremely inconsistent and the syntax poor, but there's no denying how useful PHP is nowadays and how easy it is to throw together very small Web facing apps with it.

Alex Wayne: C++, Objective C

Alex Leverington
: Lua

Abhay Kumar: Erlang (learning/using it now)

Adam Williams
: Erlang. We are seeing the dawn of the concurrent world

Alex Kane:
I'd like to learn Erlang.  It seems to have really cool process management, but I haven't had time to really get in to it yet.

Adam Keys: I would like to use Erlang on a real problem.  I'd also like to get a better understanding of Haskell and OCaml.  I can recognize them from a distance, but I don't yet _get it_ when it comes to those two languages.


I would like to thank the panel for sharing their thoughts with us. I am sure the answers will help everyone from a newbie with no programming experience to anyone who is looking to learn Ruby to extend their skills and, maybe, even the experienced Ruby hand can gain an insight or two.

You need to watch, Adam Keys's USS Ruby, a one act. Its Hilarious.





This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




Programming Language Book Sales to Predict Adoption and Retention

Posted by Naveen Bala at 06:28PM Dec 11, 2007

Comments[3]   RSS Email AddThis Social Bookmark Button

Introductory programming language book sales indicate the amount of interest in adoption. Note that I have stressed the word interest. Comparing the introductory level books for Php, Perl, Python and Ruby will tell us how well the advocacy efforts of each language is doing to generate interest in that language.

Intermediate to Advanced level book sales indicates the retention of that interest. 

Tracking book sales as an indicator of the market, has been used by Mike Hendrickson of O'Reilly in State of the Computer Book Market.

My interest in comparing book sales is to compare the adoption and retention interest of each language. You can check Antonio's Comparison of programming languages for more languages and how they fare in terms of book sales.

 Unlike, O'Reilly, I do not have access to BookScan data, so I went with Amazon.com's sales rank. Amazon also has the feature to list books by programming language and by levels (Introductory, Intermediate-Advanced). Since Amazon.com's Sales Rank is not linear but a log scale, I used an estimator function to translate the sales rank to predict volumes sold. (This function holds well but at very low ranks, less than 10, this function over predicts. We wont have a problem as no programming language book will have a sales rank that high.)

 Predicted Sales Volume per Year = 10080 * EXP(-2.4629 * LOG10(Amazon Sales Rank))*365

NOTE TO READERS:  The Methodology I used to Predict is inherently flawed as I had captured the sales rank at one point of time and tried extrapolating it to annual sales. Authors like brian (Learning Perl) pointed out this flaw as they had the actual book sales data. So until I track sales ranks over a longer period of time and check to make sure that the predicted volume approximates actual sales, I am removing the  estimated book sales data and the sales rank. I am leaving behind the list of books that were the top 5 in Amazon in each category.

 Php Introductory Book Sales
 Perl Introductory Book Sales
 
 Name
 Beginning Php and Mysql5
 Php5/Mysql Programming
 
 Name
 Learning Perl 4ed
 Beginning Perl 2ed
Python Introductory Book Sales
Ruby Introductory Book Sales
 Name
 Python Programming: Intro to CS
 Python Programming for Absolute Beginner

 Name

 Ruby Programming for Absolute Beginner


I used the same methodology for Intermediate to Advanced level. Here, there was a better choice of books for all the languages.

 

 PHP Intermediate/Advanced Book Sales
 Perl Intermediate/Advanced Book Sales
 
 Name
Programming PHP
PHP and MySQL for Dynamic Web Sites:
PHP Solutions: Dynamic Web Design Made Easy
PHP 5 Objects, Patterns, and Practice
PHP Cookbook
 
 Name

 Learning Perl 4ed

 Programming Perl 3ed

 Perl Cookbook

 Python Intermediate/Advanced Book Sales
Ruby Intermediate/Advanced Book Sales
 
 Name

Learning Python

Python in a Nutshell

Programming Python

Python Cookbook
Core Python Programming
 
 Name
 Agile Web Development with Rails
 Programming Ruby: Pragmatic Programmmer Guide
 Railspace: Building a Social Network
 Ruby Cookbook
 Ajax on Rails


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




How does Perl, Php, Python and Ruby compare in support resources?

Posted by Naveen Bala at 09:42PM Dec 10, 2007

RSS Email AddThis Social Bookmark Button

Language popularity is dependent on support resources like forums, groups and blogs. When we analyze the popularity of a language, we need to compare the support resources for each language. 

Everyone of us, from a newbie to an experienced hack, have run into road blocks time and again and have turned to these support resources for solutions and pointers. The support structure for each language plays a critical role in making it easy to adopt a language and to increase its popularity with an increasing user base.

So, how does Perl, Php, Python and Ruby compare in terms of support resources?

 The first comparison we make is the general term visibility in each search engine.

Term Visibility 

This gives an idea as to the number of sites out there that at least mentions the language. Granted, this is a very poor way to compare the number of sites devoted to each language but due to a lack of my imagination, I am going to use this for a very gross comparison. The TIOBE Programming index uses +"<language> programming" as a way to calculate the popularity of a language. Instead of using the phrase, we will use <language> AND programming as I think this is a less restrictive way of finding sites devoted to a language and is good at eliminating noise (as much as possible).

 Sites for perl php ruby python comparison
  Sites from Each Search Engine in Thousands
  Google Yahoo MSN Normalized
 PHP 10466.2 105  1
 Perl 48.2 30.5 42.5 0.46
 Python 44.1 24.1 15.5 0.39
 Ruby 33.1 22.5 23.2 0.32

The normalized column is a weighted  normalization using search engine market share, Google: 63%, Yahoo 32% and Msn 5%.

 

For every 100 sites for PHP, there are 46 sites for Perl, 39 sites for Python and 32 sites for Ruby.

Usergroups that Meet in Person

Usergroups that meet in person provides an excellent opportunity for anyone interested in that language to learn from the experts. The number of usergroups also indicate the motivation and dedication of the user base. This is a definite indicator of the popularity of that language. We compared the officially listed usergroups that is located in North America (US, Canada and Mexico). We used the number of user groups listed in PerlMongers, Python.org, RubyGarden.org and PhpUserGroups.org .

 Perl Python Ruby Phy Usergroups                         User Group Comparison
 PerlPerlMongers
120 User Groups
 PythonPython.org
 44 User Groups
 RubyRubyGarden.org
 117 User Groups
 PHPPhpUserGroups.org
 101 User Groups

My 2 cents: Come on Python enthusiasts, you need to do better if you need to grow Python's popularity.

Most Popular Forums

We compared the membership numbers in the most popular online forums to get an idea of the size of the user base for each of the language. The membership is of course not restricted to the U.S and like the term visibility is a rough indicator of the size of the user base.

Popular Perl forums

 TekTips.com32,346 registered members
 comp.lang.perl.misc4660
 PerlGuru 3656

 

Popular Php Forums

 PhpFreaks55182 registered members
 PhpDn 33985
 comp.lang.php 7033

 Popular Python Forums

 comp.lang.python11433 registered members
 tek-tips2046
 

Popular Ruby Forums

 Ruby-Forum.org 9470 registered members
 Railsforum 7558
 comp.lang.ruby 6443
RubyForums.com2968
 tek-tips.com 544

Usenet group, comp.lang is the common forum across Perl, Php, Python and Ruby, so it makes sense to compare the memberships of the usenet group.

 

 

 Php Perl Ruby Python comp lang membership

 

 

 

 

 


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




How Many Perl, Php, Python and Ruby Developers Are There?

Posted by Naveen Bala at 10:21PM Nov 20, 2007

RSS Email AddThis Social Bookmark Button

Current Availability of Perl, Php, Python and Ruby Programmers

 

 Companies choose a programming language for many reasons, but one of the top ones would be the availability of developers in that language. You don't want to start a development project with a language and realize that there are only a handful of people out there, who know that language.

Availability of experienced and talented developers is a key requirement of corporate adoption and retention of a programming language.( see Corporate Popularity  What Makes a Programming Language Popular )

How do we estimate the number of programmers experienced in each language?.

Rather than absolute numbers, it would be sufficient to compare the relative numbers of developers experienced in a particular language from a large sample of developers. This ratio estimate will more or less hold good in the general population.

To get an unbiased, large sample, we turned to the top 3 search engines, Google, Yahoo and MSN  to find the number of resumes on the web with a particular skill.  The hypothesis is that the likelihood that a Perl programmer will put his/her resume online is the same as that of a Php programmer, so on and so forth.

The query we used to find resumes is

                   (intitle:resume OR inurl:resume) LanguageName -intitle:jobs -resumes -apply

in the three search engines.

 

 Php Perl Python Ruby Resumes

 

Observations:  In Google Php results are about 6 times more than the next skill, Perl. Where as in Yahoo the results between Php and Perl were nearly similar. MSN showed Php to be 5 times that of Perl. What this tells us is that there is a large variation between the relative number of resumes for each skill in each search engine.

Resumes in Search Engines

  GoogleYahoo
MSN
 Perl 170 24775.1 
 Python 54.2 68 23.9
 Ruby 34.1 19.2 11.5
 Php 1050 274 375


As seen above, there is a wide variation in the raw numbers from each of the search engines. We need a normalized set of numbers that can say that for every 100 php programmers, there are 40 Perl programmer, 20 Python and 10 Ruby programmers, or something like that.

The first thing we did is to normalize the skills in each search engine. Then we assumed the relative market share of the search engine (totally arbitrary, needed a weighting factor of the search engines) and computed relative numbers. The relative market share of Google vs Yahoo vs MSN is about 44:29:13. To those, who have a keen eye, the market share of the three search engines come only to 86 and not 100. We scaled the search engine weighting numbers so that we had 100.

 Php Perl Ruby Python Resumes in Search Engines

 Resumes in Search Engine - Normalized

  GoogleYahoo
Msn
Combined
 Perl 0.16 0.90.2 0.42 
 Python 0.05 0.25 0.06 0.12
 Ruby 0.03 0.07 0.03 0.04
 PHP 1 1 1 1

 

 

Conclusion: The combined search engine column estimates that for every 100 PHP developers, there are 42 Perl developers, there are 12 Python developers and 4 Ruby developers.


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




Php, Perl, Python or Ruby Programmers - Who Earns More?

Posted by Naveen Bala at 08:38PM Nov 19, 2007

RSS Email AddThis Social Bookmark Button

Salaries Offered for Perl, Php, Python and Ruby Positions

 

Future salary is a significant motivator for somebody to learn a new language (use it for a living). We used the OdinJobs Market Statistics tool to help us analyze which skill pays more. The market statistics tool helps analyze salaries offered in jobs targeting junior-mid level programmers and  senior/Lead/Architect developers.

First we compared how salaries varied between a jr-mid level position and a senior level position within a language. The results are below.

 Perl Median Salary

 Perl Median Salary Comparison

 Senior level architects and lead programmers using perl earn 10% more than the developers. This is a median salary, which means a lot of variation in salaries is squished into a single number. In all jobs that required perl, the median salary was $80,560. The variations in median salary also varies according to locations but this chart has been generated for the entire United States.


 PHP Median Salary Comparison

  Median Salary for All Php jobs: $66,200

  Median Salary for Php Architects: $71,000

  Median Salary for Php Developers: $64,540


 Php Median Salary

 

 Python Median Salary

 Python Median Salary Comparison


Median Salary for all Python Jobs: $75,720

Median Salary for Python Architects: $80,310

Median Salary for Python Developers: $74,790 


 Ruby Median Salary Comparison

Median Salary for all Ruby Jobs: $74,150

Median Salary for Ruby Architects: $82,890

Median Salary for Ruby Developers: $ 73,880

 Ruby Median Salary

 


 


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




RECENT STORIES

Why Get Into Open Source - Hear from Real Open Sourcers

Open Source Participation - Whats in it for ME

Open Source - Career Enhancing Opportunity

Financial Turmoil - A Wake Up Call !

The Graduation Celebration is Over and Now on to the Job Search

Cool Fact Of The Week

Tips on Working with Recruiters

Business Intelligence Conference

Cool Fact Of The Week

So What You Were Fired


Archives

Search Corporate/Career Sites
keywords:
location:
Customize This for Your Website

Can You Make More Than Your Brother-in-law?
SkillLocation
Customize This for Your Website