Shashank Daté has been in the IT industry for about 20 years. He immigrated to the US in 1994. He had been a consultant at various Fortune 500 companies since then and founded his own company, Reevik Inc. in 2002. He has been a big proponent of the Open Source technologies in general and Ruby in particular and has contributed to the Open Source in various capacities for the last four years.
Prior to immigrating to the US , Shashank worked at C-DAC, Pune, and was part of the team, which developed award winning applications on the Param Supercomputer built by C-DAC.
Shashank will be happy to take further questions from members on Ruby. Please email your questions to rubyqa@itvidya.com
Q: Shashank, when and how did your Ruby journey begin ?
A: Back in March 2002, I was working on a project which required me to develop a "SQL Query Parallelizer" on Windows. I was looking for a lightweight (scripting) language which would have threading support. I looked at Perl and Python and at that time I didn't like the support they provided (Perl's threading was simply broken). I accidently came across the "PickAxe" book in a store and found a simple 15-line solution on Page 113 for almost the same problem I had. Moreover it was cross platform and open source. I tried it out and it just worked! I had a prototype built in a day. I immediately fell in love with the language (Ruby) and have been using it for almost every assignment where it makes sense since then.
Q: What were you coding in prior to Ruby ?
A: I was mainly in C, SQL and UNIX shell programming for my professional needs. For hobby projects I had dabbled with Smalltalk and Scheme (my other favorite langs).
Q: Why are you such a big fan of Ruby ?
A: Ruby has a nice blend of Smalltalk and Scheme, and yet allows me to program in my (admitedly old, C-fashioned) way if required. It stays out of my way and I can code at the speed of my thought. If sophistication is required, I can always refactor the code. I like the design philosophy and am quite happy with the current implementation. Besides, the community is super-decent and stands out when it comes to welcoming newbies.
Q: Have you found any limitations with programming in Ruby and RoR ?
A: Yes, sometimes the unavailability of libraries or documentation limits the use of the language. I am interested in doing some embedded programming and Ruby in its current incarnation is not really suited for that kind of work. As to Ruby on Rails (RoR), there were times when I had to use it against legacy databases and found it a little inconvenient ... some more work was required and I did not have the luxury of time to finish it off.
Q: Do you think Ruby has the potential to be a mainstream programming language ?
A: Absolutely! There are some areas where it may not be a good choice (for example,where speed is absolutely essential). But for most of the Agile programming scenarios, Ruby can certainly make its mark. Especially at places where Domain Specific Languages are needed.
Q: What are the good resources you recommend on Ruby for beginners ?
A: Here are some online resources (which will have links to other sites):
Ruby Main Site: http://www.ruby-lang.org/en/
Wiki: http://wiki.rubygarden.org/Ruby
Documentation: http://www.ruby-doc.org/
Q: Which are the applications you have written in Ruby that you are proud of?
A: The "SQL Query Parallelizer" (which is unfortunately not open source) and an interface to Lego Mindstorms Robotics Kit: http://rubyforge.org/projects/lego-mindstorms/
Q: How fast is the Ruby momentum growing in USA ?
A: In leaps and bounds ... judging from the traffic on mailing lists, IRC chat channels, Books being published, jobs being offered, and crowd at the conferences.
Q: What is the opportunity you see for Indian Developers if they gain Ruby expertise ?
A: I see huge potential for _all_ smart (Indian or otherwise) developers to get a competitive edge if they learn and master Ruby. Mainly due to the rapid acceptance of the "Ruby on Rails" web application framework.
Q: What are your personal ambitions in US and in India ?
A: I have three:
1. To build a top notch team of super smart programmers who can build software products that are a delight to use and provide services that are impossible to resist.
2. Contribute to Open Source in a big way.
3. Explore the Constructionist model of learning using computers.