The Future of Ruby is Fail!
Thanks to Ilya Grigorik for initiating the discussion in the Indian Ruby / Rails community around the premise “Future of Ruby is Fail” (yes, somewhat tongue in cheek, but also serious), trying to get a feel for the concerns in the community. The focus of this discussion would be on the Indian market / geographical area.
RubyLearning is pleased to have with us, Ruby / Rails Gurus from Pune, India: Ashutosh Ambekar from Persistent Systems Ltd., Devendra Deshmukh from e-Zest, Gautam Rege from Josh Software Pvt. Ltd., Nick Adams from SapnaSolutions Pvt. Ltd. and Shabbir Merchant from Pragmatic Technology Solutions.
Q: The title of this blog post is controversial but many in the community are talking about it. What’s your quick reaction to this statement?
Gautam Rege>> Since you asked for my quick reaction, my answer is an emphatic “No, Ruby rocks!”. However, the thought did send a shiver down my spine! The reason put in one simple word – passion. Can a passion really die? Given the “Indian perspective”, the industry is adapting to Ruby, but slowly. A lot of companies are looking at Ruby with a fresh outlook than one which is dismissive in nature. It is going to take some time before Ruby becomes as popular as Java and .NET applications but my gut feeling tells me – its only a matter of time ! Sethupathi Asokan, my colleague who co-founded Josh Software with me feels that Ruby will ride on the Rails popularity. There are more takers for Rails and hence Ruby, than the other way round. So, as Rails gets popular, Ruby lives on!
Shabbir Merchant>> I think 3-5 years is a long time, but I already see that Ruby and Rails, although a popular platform in North America/Europe, has failed to gain traction in the Indian Market place. But I think I do not completely agree that it will fail completely but what can happen is that it will not penetrate the market, the way Java has done. I think mass penetration will not happen unless big companies like IBM, HP, Sun endorse it in a big way. Currently they are heavily invested in Java and a move to Ruby would be very challenging.
Ashutosh Ambekar>> No! Ruby won’t fail. It has been around for 10 years and still being actively developed. Ruby 1.9.x recently came out and is showing best performance numbers. Likes of Sun Microsystems and Microsoft are rolling in millions of dollars on their version of Ruby (which will adhere to “standard” Ruby). I have observed that software shops in the US considering Ruby (in some flavor) for developing their enterprise applications. With support from larger ISVs and programmer community bringing in frameworks based on Ruby (Ruby on Rails, Sinatra etc), I do not think Ruby will fail, it will evolve and will fuel rapid application development using meta-programming.
Nick Adams>> My first reaction would be to ask: ‘What do we mean by fail?’. I think if we mean a failure for Ruby to gain traction and massive uptake, perhaps. It is generally the case that for wide scale adoption of any new technology, big business needs to adopt it. This is unlikely for a number of reasons. However, I believe Ruby continues to see growth in many other areas, notably in web application development. I do not sense a failure for Ruby in the short or medium term. My quick reaction is surprise that there is talk in the community of a ‘fail’!
Devendra Deshmukh>> Very innovative and thought provocative blog post title. I believe Ruby won’t fail in the next 3-5 years but it will undergo substantial changes to get rid of current technology limitations. Ruby has inevitably became one of the top two or three strategic choices for start-ups and early stage web 2.0 and social applications. But since, other programming frameworks and tool-sets are learning Ruby’s lessons and unless we see cohesive actions from the Ruby Community, it looks like Ruby will get some serious competition in next 1-2 years. Improvement on Scalability, performance, security and deployment may help Ruby to maintain its leadership amongst its peers and competition as well. While reading various community posts, I am certainly seeing positive actions towards future.
Q: Imagine for a moment that in the long run Ruby did ‘fail’, what in your opinion would have been the causes of this failure?
Gautam Rege>> Adaptability and Availability of resources. I was arguing about the choice of technology for web-based banking software with a close associate of mine, who sits pretty high up in the technical think tank of a leading bank in India. I was told in no uncertain terms that .NET ASP, C# would be the choice of technology. Aghast at the response, I retorted saying that ‘whatever you build, I can build better and faster in Rails’. He said calmly – ‘I don’t deny YOUR skills, but what will we do when you are not around?’. There are hordes of .NET resources available in India from zillions of technical institutes who are churning out .NET and Java professionals. I don’t mean to say that .NET, C# are more popular but the more commonly taught languages are the ones which people in India tend to adapt to. There are a lot of people who know .NET, C# than Ruby. Currently, the situation is improving but it will be some time before large corporations adapt to Ruby. Having said this, currently the Indian market is flooded with Java and .NET resources and it is a fact that a lot of multi-tiered critical applications are built on these platforms and not Ruby. When anyone adapts to Ruby, they have to be sure of a supply of Ruby professionals. Solution, you may ask: We need to get Ruby taught in schools !
Shabbir Merchant>> I think if Ruby fails, the failure of Ruby could be attributed to multiple reasons. I think the most important one could be fragmentation of the community in terms of using different VMs or even due to different Ruby web frameworks. We have already seen this in the case of Rails and Merb. But thankfully this has been resolved by the merger. But such situations could arise again. The huge success of Java platform I think is that they have good leadership in place and a community process for single VM. Another reason for the failure could be attributed to the rapid changes in the framework which are sometimes essential but leaves lot of legacy things to be migrated. Another potential reason could be our inability to attract and make it easier for developers coming from Java/.Net/PHP world to move to Ruby.
Ashutosh Ambekar>> Too many choices each competing for the market place with their own “customization” over standard Ruby. Programmers may find it difficult to choose and stick to a flavor for long, or may give it up all together for another “stable” alternative. Functional programming languages become popular sooner with frameworks (like Lift etc.) which may be considered to be more scalable, secure, robust by software architects.
Nick Adams>> If Ruby were to fail (lost traction or suffered quality issues), it might be due to over dilution of the core developer community, resulting in some serious problems with its implementation. This might lead to developers switching their applications to another simple OO language with similar capabilities, such as Python. This was the fear of many, including Zed Shaw when he rather publicly declared his loss of faith in the Rails community and shortly after Ruby.
Devendra Deshmukh>> Failure will be certainly attributed to technology limitations mentioned earlier and divisive Ruby community. But the key factor would be emergence of better competitive framework. I think it is a possibility in the long run. This new framework may be derived from Ruby but supported by strong community or enterprise organizations like IBM or Sun.
Q: How is the Ruby market different in India than in say USA/Canada?
Gautam Rege>> The Indian market is the still a conservative one – people will not accept new things unless they see it working ‘somewhere else’. Bigger corporations take time in adapting to new technology and considering the man-power availability in India, prefer to keep an IT development team in-house. SMEs (Small and Medium-sized enterprises) are far more adaptable and open to newer solutions if they are robust and cost-effective. This is where I foresee (and hope) Rails making it big ! SMEs can benefit a lot from products and applications using Ruby. And this shall have its chain-reaction: Bigger corporations seeing this change shall start looking at Ruby. Technical and Training institutes in turn, seeing the need for Ruby shall start introducing it in their curriculum. Sethu (as he popularly called) feels that today there are more people fluent in Python, Perl and PHP than in Ruby. Is there a fear of ‘Yet another scripting language to learn?’ So, adaptability is a slow but steady process.
Shabbir Merchant>> I have executed some projects for Indian clients and for them the cost of development and impatience outweighs speed of development and all the goodies which Ruby/Rails brings with it. Good Rails developers who cam deliver practical applications come at a higher cost compared to a PHP/.Net/Java developers. Also, I have found that even small clients prefer to develop and maintain applications within their respective organizations instead of outsourcing it. Hence when they decide on developing an application it is easier for them to find a .Net/Java developer as their numbers are large.
Ashutosh Ambekar>> The main difference is that you need to educate the Indian VP engineering / decision maker about what Ruby (on Rails) is and how it will help them, giving them examples of the success stories (in the west). US/Canadian customers come with their homework and ask you to develop a solution using Ruby (on Rails). There are Indian startups whom I worked with and agreed on using Ruby (on Rails) but these are very few. Majority of the Indian software market still finds comfort in .NET/Java world – and for obvious reason – Ruby skills are still scarce to find in India. In the USA/Canada Ruby is being adopted at a faster pace – in the enterprise software area as well. It will be a while before this trend hits India as well.
Nick Adams>> I believe Ruby is a language of creativity. It makes doing otherwise complicated things simple, so you can throw together brilliant ideas elegantly and in fewer lines. I am yet to see creative development work taking off in India. Currently the core market for Ruby and frameworks such as Rails in India is rapid prototyping for US lead ideas, or outsourcing existing projects. Perhaps as use of the web in India increases, we may see this change.
Devendra Deshmukh>> Indian enterprise customers definitely are not aware about the technology benefits of Ruby and also lack internal Ruby resources to maintain systems. But many Indian product/Web 2.0 startups are adopting Ruby to a great extent. I have seen successful Ruby usage at many startups in-hand-in with agile practices viz. Scrum.
Q: What is your perspective on the future of Ruby in India?
Gautam Rege>> The future of India is the young software professionals. The biggest asset of India is man power, i.e. the resources. The biggest challenge unfortunately in India is ‘quality resources’. There has been a compliant for a long time that development quality of Indian professionals requires to be worked upon. However, with Ruby there is a very easy, clean and simple way to change this perspective. JRuby has added a completely new facet to Ruby and will encourage young Java professionals to adopt Ruby now! I am emphatic that programming fundamentals need to be taught and clarified very early – otherwise we end up writing code like standard procedural languages ignoring the concise and crystallized nature of Ruby eg. using blocks and iterators for one! This implies that the Ruby faculty also needs to be up to the mark ! The good thing is that a lot of students are interested in learning Ruby. So, I feel, as the number of Ruby resources increases, the future of Ruby in India will brighten. The numerous online local communities discussing Ruby and Rails are helping this cause.
Shabbir Merchant>> Here in India I have noticed that all organizations big and small are okay to outsource their development work. But when it comes to hosting and maintaining it, they want to hire someone inhouse. They insist of having someone inhouse to take care of project once it is deployed. They think it would be easier to find a Java/.Net guy to take care of the work. The low number of training institutes offering Ruby/Rails training affects the number of skilled manpower. I would specially like to highlight potential reasons it might fail in the Indian context. Ruby is still a technology which has not come into the mainstream in India. There are handful of applications built in Ruby/Rails in India for the Indian consumers. Also failure of Ruby/Rails could be attributed to a lack of skilled manpower. Although there are some training sources available in India. these are too few and whatever is taught gets outdated soon. Hence, I would say lack of quality and quantity of training institution could lead to its failure in India.
Ashutosh Ambekar>> Very bright! There is tremendous scope for Ruby in Indian SME segment – it’s fast to develop and market and cheap in terms of overall cost of ownership. I see more and more engineers showing interest in learning Ruby (we grew from team of 4 to team of 40+ in a year) and are enjoying it and are willing to take a bet on it.
Nick Adams>> I think the prospects are mixed. As passion for the web in India increases, and more developers turn to alternatives to Java, Ruby may gain some traction. I also sense that the current employment climate makes more entrepreneurs out of us, and that graduates trained in Java and C are increasingly interested in learning more modern languages such as Ruby. It may not be enough, however. Developers in India tend to follow the jobs market, currently centered BPO work in traditional languages, so if tech leaders can’t find a way to create a buzz around Ruby and create jobs, we may not see significant growth.
Devendra Deshmukh>> Being part of 100% exports oriented organization, I am definitely not an expert on the Indian Market. But from a resources point of view, I feel there is definitely a need of having more ROR programmers available in India. This constraint many a times goes against finalizing application/adoption of ROR in software/web projects.
Q: What are the drivers behind current adoption, what are the counter arguments?
Gautam Rege>> Cost and speed of development of Ruby applications and the flexibility to customize and change the application at a later stage beats all other programming platforms hands down ! Sethu adds that the Ruby gems today provide integration and access to the latest technologies like Amazon S3, etc. This ensures that Ruby is always in league with new technologies that become available. On the down side, I feel what needs to be strengthened is the source code protection (which does contradict the very premise of Open Source). Larger corporations require that their deployments be protected not only by system level security but at the source code level too. I have seen Thoughtworks Mingle encrypt their Ruby code to protect their IP, but will this become a norm or a novelty? Another problem with Rruby is development and deployment of security in tiered applications, especially in finance sector. No matter how much we try, we are not able to convince large financial corporates to get their applications built in Ruby. I hope someone out there contradicts me and tells me that this step has been achieved. People have long complained about scalability issues in Rails but I think that has been very well handled with current setups.
Shabbir Merchant>> Indian market is very cost conscious. I think at this point people are looking at Rails for doing medium sized apps. People do not want to build heavy traffic apps with it, due to affordability of good developers and good hosting providers. There are some Indian Ruby/Rails hosting providers but they are not skilled enough to keep pace with the rapid changes in the deployment options. It is much much cheaper to host an application in PHP/Java/.Net than do a Ruby/Rails application.
Ashutosh Ambekar>> Business drivers for current adoption are rapid development (with integrated testing) using frameworks like Rails, cost of ownership, deployment solutions available on the cloud, database support for most of the popular databases, ease of creating REST based web applications using Rails framework and last but not least, big ISVs are investing in and are embracing Ruby in some form or other. Something that is non-tangible but is still a driver is that engineers enjoy programming in Ruby – I do! However, frequently, there are questions raised on scalability of Rails applications. This is one of the major reasons why someone may not adopt Ruby based solution. Another factor preventing adoption as mentioned above is availability of skilled Ruby developers.
Nick Adams>> One driver behind adoption are probably jobs created by outsourced work from the US and Europe, both straight Rails outsourcing and client projects being developed in Rails. Another, and the more interesting driver, is the startup and entrepreneurial community. Founders and techies of the increasing number of web startups in India are looking to Ruby as their creative tool.
Devendra Deshmukh>> Most important business drivers as per my perception are rapid development and support for cloud deployment. This has really enabled start-ups to quickly come out with quick proof-of-concepts or pilot of their business ideas. Many have made bucks as well though VCs or early customers.
Q: Do you think the community will thrive in the long run?
Gautam Rege>> I have no doubt about this. In fact, I would venture out and say that India will probably be a Ruby application “deployment hub” instead of providing development only. I foresee a lot of SMEs at first and then larger Indian corporates embracing Ruby in the next few years.
Shabbir Merchant>> Although there are problems I still think the community will thrive all over, including India.
Ashutosh Ambekar>> Absolutely!
Nick Adams>> Yes, but how much depends on two things. First, if the work continues to come from the US and Europe, it will thrive. Second, news travels fast in India, especially in tech circles, and if we can manage to create a buzz in the small company and startup circles, it’s likely that Ruby will see a similar success here. It’s been great to see an increasing number of attendees and Ruby Fun Days and other such events.
Devendra Deshmukh>> I agree with others. Community will thrive and with more growth rate in emerging markets like India.
Q: What is your viewpoint about Indian RoR developers, the Indian environment, the Indian market, the type of applications being developed in India?
Gautam Rege>> I mentioned this earlier and will re-iterate that considering the conservative nature of Indian markets, Ruby will be embraced slowly. However, like the telecom revolution in India, once it catches on, I feel (and hope) that Ruby will become BIG .. of course not at the scale that telecom has grown in India but at least a noticeable one. There are currently quite a few Ruby and Rails training institutes in India which are VERY GOOD but I feel that till we hit the grass-roots i.e. schools, colleges and universities, the going will be tough. I believe Satish Talim has already started making the difference in Pune. Pune University has introduced Ruby in its computer science course syllabus – now thats an impressive start !
Shabbir Merchant>> I think a very small fraction of the Indian developers are skilled enough to deliver world class Ruby/Rails apps. People are not up to date with all the latest and greatest things happening in the Ruby/Rails world. I think this is partially attributed to the rapid changes in the Ruby/Rails world itself. The Indian development environment is very focused on Windows platform and you will find magnitudes of developers working on Windows platform. I think Windows should be considered an important platform if we want to attract more people to Ruby/ROR. There are stacks such as Bitnami and Instant Rails available for windows, but there are several Mac/Linux tools being used which do not perform well on Windows. From my experience and talking to developers here, I found that majority of them do their development in Windows and deployment is done on a Linux Server.
Ashutosh Ambekar>> Well, to start with there are not many RoR developers in India as compared to other popular technologies. Most of us at Persistent learnt it ourselves rather than taking any glucose from a trainer. There are few well known companies in Rails technology in India, however I do not see much contribution to the community from India. I am pretty optimistic that there will be more RoR developers going forward fuelling more RoR projects. In India, I think most of the applications getting developed would fall under web 2.0 / consumer web applications.
Nick Adams>> An interesting question I ask of my developers, is ‘what motivated you to learn Rails?’. Most answer ‘because my company had a project in Rails’. Some will tell you they learned it for fun, or to build an application of their own, but they are in the minority. I think this nicely summarizes the environment here, that it is more about jobs than creativity or experimentation. This is reflected in the relatively low number of Indian designed and developed Rails applications. We are trying to change that, but it requires a switch in the mindset of ordinary developers from seeing development as a job to seeing it as a passion and outlet for their own sense of creativity.
Devendra Deshmukh>> I believe Indian ROR developers are definitely best in class like their .NET/JEE peers. Most of the ROR developers in India as well as the ROR developers at e-Zest are self learned programmers. Most of them shifted from PHP and JEE due to personal likings or organization’s direction. Most seen Ruby applications are Web 2.0 and Social applications. Most of the Ruby projects are shorter in duration and with smaller team size. This results in not having proper career growth plan like established .NET/JEE is a challenge to address.
Q: Can you give us a roadmap of what you would want to see from Ruby to make it a success in India?
Gautam Rege>> I think localization support will play a big part to make Ruby a success in India. JRuby will give access to the vast Java localization library and Rails merging with Merb will get the best of best into the framework. SMEs will probably be the only ones who will adapt to Ruby soon. The number of SMEs in India is so overwhelming that the market will be a huge target sector. A lot of industries are trying to go “Paperless” and are now also ‘internet aware’. The cost of implementing an ERP or a distributed office is huge. Ruby and Rails can play a very big part in this to ensure that these requirements are met with cost-effectiveness and high quality of the application.
Shabbir Merchant>> We want more visibility to Ruby by introducing them as courses in colleges, more training centers and conferences devoted to Ruby. A Ruby/Rails conference would be good to start with.
Ashutosh Ambekar>> In the Indian context, to make it a success, Ruby has to reach colleges undergraduates and professors. Ruby should be used in the college assignments. These undergraduates are going to be next engineers and hence making them aware of the beauty and power of Ruby will certainly help. Community can also play a major role by answering the skeptics about scalability and security issues. Success stories of Ruby 1.9.x with Rails in production environment will certainly help. Since most of the Indian students use Microsoft environments, availability of better tools on Windows platform for Ruby (on Rails) will help greatly. Linux is getting popular gradually, so bundling the latest and greatest Ruby with the Linux distros will also help.
Nick Adams>> I think Ruby is great, but we need a roadmap for adoption that includes energizing young people who currently see Java and C++ as their only path, because of the jobs available. Going to talk in colleges and universities is one thing to be encouraged, as well as including business incubators and small development companies as potential adopters. Events and conferences will help, but we need some leadership too. It would be great to see more truly Indian web startups in Rails, as well as Ruby and Rails Gurus emerging from this side of the world. The talent is here, it’s time for the passion!
Devendra Deshmukh>> Ruby needs to become part of main stream IT education. It needs to become part of formal college education as well as standard IT training available at professional centers. Focus on past success stories and more visibility in media will definitely help.
Q: Anything else that you would like to add?
Ashutosh Ambekar>> At Persistent, we have created a center of excellence for Ruby and is currently staffed by 40+ enthusiastic engineers (and growing!). Looking at the current trend, we have developed IPR in the form of social networking accelerators. The accelerators help rapidly develop social networking portals by providing ready-to-use features; all we need to implement is the domain part which changes from portal to portal. Using the accelerators, we have developed a social networking portal for astrologers, astrology researchers and advice seekers as our own initiative and would be launching it very soon.
Nick Adams>> Thanks Satish!
Devendra Deshmukh>> e-Zest expert ROR team members are working on ROR from its nascent stage which is a long time and have overcome a great many technical and process challenges. We are currently developing product accelerators using Ruby. e-Zest provide complete ROR technology strategy and product development solution to ISVs and start-ups. Start-ups are fun, we understand their every changing needs due to dynamic market expectations, and we thrive on enabling their businesses. Ruby definitely has brighter future, I assure to interested current and future IT professionals that you will definitely be able to make a successful career with your Ruby skills.