📜 ⬆️ ⬇️

Ruby language: the history of formation and development prospects

Man was created for creativity, and I always knew that I love to create. Alas, I am deprived of the talent of the artist or musician. But I can write programs. I want the computer to be my servant, not the master, so I must be able to quickly and effectively explain to him what to do.
Yukihiro Matsumoto, creator of the Ruby language

Before anyone who wants to follow the path of a programmer, sooner or later there is a question of choosing the software development sphere (web, desktop, mobile, gaming, system, ..) and corresponding tools (programming languages, frameworks, development environments ...) . And here, as in construction, the important role played by the materials and tools that you use. In fact, they largely determine what ultimately will be built, how quickly, what properties it will have, etc.

For example, a builder working with wood will be inclined to calm and thoughtful activity, painstaking fitting of parts, the use of hand tools, individuality in the approach. At the same time, a bricklayer can act much faster, using a power tool and compensating for some inaccuracies with an extra trowel of the mortar :) Well, the concrete castor doesn’t bother at all, his task is to make everything as simple and reliable as possible in the shortest possible time, and who there he will be engaged in finishing and design of the premises for years - he is not interested.
')
So it is with programming languages: in each of the areas of software development there are usually at least two or three languages ​​that can, in principle, cope with the task. However, the approach to solving these languages ​​is usually somewhat different, and this raises the question of priorities in the development and individual preferences of the programmer. Ultimately, your thinking and understanding of what needs to be done and how to support it later is important. So it makes sense to choose the language in which you will be easier and more convenient to write, which will give you the opportunity to unleash your potential.

Getting to know a new language more or less closely usually takes at least a month. This article is designed to answer the question of whether to spend this month on Ruby, or it makes sense to look in the direction of other languages. I myself now also have a choice: to improve my knowledge in PHP (while I worked with him independently in freelance - and at a fairly simple level, now I have a desire to grow further) or to try "from scratch" in Ruby (immediately learned from using it, the latest trends in web programming and at the same time getting, I hope, a fairly modern and convenient tool for work).

After trying to figure out whether Ruby has a future, and if I have a place in it :), I reread several hundred articles, discussions, comparisons, etc. I will try to bring my thoughts in a more or less systemic form:

one.
Ruby was conceived in 1993 by the Japanese Yukihiro Matsumoto, who sought to create a language that absorbed from other languages ​​the best approaches that facilitate the work of a programmer. He acted largely according to the postulate of Abelson and Sassman: “Programs must be written so that people can read them, and only sometimes so that machines can execute them.” At the same time, Matsumoto really wanted this to be a true object-oriented, easy-to-use, high-level language. Thus, the main purpose of Ruby is to create powerful and at the same time understandable programs, where it is not so much the speed of the program that is important as a short development time, understandable and simple syntax. The language follows the principle of “least unexpectedness”: the program should behave as the programmer expects. He also inherited the ideology of the Perl language in terms of providing the programmer with the opportunity to achieve the same result in several ways. People are different, and for freedom they need to be able to choose: “I prefer to provide many ways, if possible, but to encourage or lead users to choose the best way, if possible .

2
In Japan, Ruby became popular since the first publicly available version appeared in 1995 (between 1995 and 2002, about twenty books about Ruby were published, and Ruby became a more popular language in this country than Python ). The acquaintance of the international community began after the translation of its documentation into English and the creation of the first mailing lists in 1998. After 2000, Ruby began to spread around the world, helped by the emergence of English-language books, primarily “Programming Ruby: The Pragmatic Programmers' Guide” and “Why's (Poignant) Guide to Ruby”. Until 2004, Ruby was not widely known in Europe and the USA, however, due to its capabilities and the large number of supported platforms, Ruby slowly but surely multiplied the ranks of its adherents. The real upsurge of interest in Ruby triggered the emergence of the Ruby-On-Rails (RoR) framework for web application development. RoR has become for Ruby killer application, the catalyst by which Ruby is now recognized worldwide.

3
The real leap in development and interest in using the language for serious commercial projects began after the release of Ruby 1.8.0 in 2003 and the new version of the Ruby on Rails 2.0 framework in 2007, which brought Ruby programming to a new level. Ruby on Rails includes pre-built functionality to solve almost all everyday tasks faced by modern web professionals. This means that the speed of development increases markedly. As proof, you can watch a video in which, using Ruby on Rails, you can create a full-fledged blog in just fifteen minutes. Unfortunately, the speed of the application itself was still quite low, and this was one of the reasons that the popularity of the language grew rather slowly. As one of the Russian developers stated in 2007: “If we talk about rails, then this is naturally a breakthrough. Everything that I have been doing for myself on my knee for 5 years was suddenly presented within the framework of a single excellent framework. Frustrating performance. And the scalability is quite decent, but servers for rail applications have to be increased more often than for Python and pearl barley counterparts. If it were not for this, we would have already gone on rails. So far, we are using in order to train new developers in the right approaches to development and for prototyping . In addition, it was still problematic to find hosting (especially free), on which it would be possible to place the application in Ruby.

four.
If up to version 1.8, the language developed while maintaining compatibility with previous versions, then later Ruby developers, led by Yakiquiro Matsumoto, decided that 100% compatibility should be abandoned for further progress. Therefore, the development of Ruby was divided into two branches: support for versions 1.8. * And the creation of new versions 1.9. *, Which are the forerunner of the next version of the language, Ruby 2. Major changes for the better came with the release of Ruby 1.9.1 in 2009 and Rails 3.0 in 2010, when most of the reproaches to the language lost their foundation and nothing else prevented Ruby from taking a worthy place among other programming languages.

Here is an example of significant changes in the speed of execution of applications in Ruby:




According to the TIOBE Programming Community Index , Ruby ranks 11th in September of 2011 (Python is 8th, PHP is 5th), which is 1.5% of the total market, which is not bad at all on a global scale;) In addition, if you turn to analytics Web And Scripting Programming Language Job Trends , then by August 2011 the situation will be as follows:



The first graph shows the number of job offers, and with it, in principle, everything is clear, it coincides with the conclusions of the TIOBE Index - there is a demand for Ruby programmers, and quite high, but it is lower than the demand for Python, and significantly lower than PHP, which is understandable - the terms of active use of these languages ​​are incomparable.



And here you can see how interest in various languages ​​is growing, and the pace of development of Ruby is impressive: over the past 2.5 years they have increased 2.5 times! This gives hope that Ruby has all the chances to find its niche in the near future and to keep quite a large part of the web development market in the future. And if back in 2009, Peter had doubted whether it made sense to publish the book The Ruby Programming Language in Russian, then at the beginning of 2011 it still came out , indicating that there was an increasing interest in this language and among Russian programmers. Especially inspired by notes like these .

There is also available analytics from the repositories of Open Source projects.



According to statistics from Black Duck Software, in January-May 2011, 1,153,059 commits (records) were published on Github, 624,989 on Sourceforge, 287,901 on Google Code and 49,839 on CodePlex. Here are the statistics on programming languages:

In addition, Ruby / Rails currently represents the implementation of almost all of the most promising technologies and programming approaches, such as test development (TDD), a full-fledged MVC concept implementation model, work with databases via ORM (ActiveRecord), design patterns (Design Patterns), using the Prototype JavaScript-framework (for simple work with AJAX), working with the distributed Git version control system ( Github.com ), and, of course, using it in the development of SaaS ( Cloud computing ), for example, on projects like Heroku.com , Engineyard.com , Basecamphq.co m .

However, here you need to understand that learning languages ​​and learning new technologies are different things. Learning new technologies is always worth it! Studying technology provides knowledge and experience (the main thing is that your programming language supports this technology). And experience in our difficult task is more valuable than certificates. Of course, new cutting-edge technologies are always some risks, no matter how good such technologies may be, and whatever qualities they may possess. These are the risks associated with terms, with personnel on the market, with their experience and level, and many other problems. However, as a conclusion, I would like to cite the words Yehuda Katz (the main developer and architect of Ruby on Rails at EngineYard), told by him at RailsConf in 2010: “I don’t know any Ruby developers; who are unemployed”;)

Source: https://habr.com/ru/post/131661/


All Articles