History of programming languages: about the past, present and future of Ruby

    image
    Often, human rumor has been sentencing one or another IT product to “death” for years. If this does not happen, the rumor continues to wait patiently. And if someday a project closes, someone will certainly wait a moment and say: "But we said that this will happen."

    How many years in a row have PHP prophesied "death"? But it seems to him, if only that. And recently, he even began to develop more actively. The Ruby programming language is developing slowly, with a leisurely pace characteristic of the Eastern, and more precisely, Asian worldview. Naturally, there were those who heralded the imminent sunset.

    However, the Ruby community is livelier than all living ones, and some studies show that its popularity is growing again. Be that as it may, Ruby has managed to occupy a special place in the field of web development. How did its creators achieve this? What is happening to him now? What future awaits Ruby?

    The creator of Ruby, Yukihiro Matsumoto (aka “Matz”) tried to take the best of his favorite programming languages ​​(Perl, Smalltalk, Eiffel, Ada and Lisp) and combine the functional and imperative programming paradigms within the new language. He often repeated the philosophical thought that he was trying to make Ruby a natural, but not a simple language that reflected life.

    imageIn the fall, Matz plans to visit Russia. His visit will coincide with the next Ruby on Rails conference.

    February 24, 1993 is considered the birthday of the Ruby language. But on that day, only a name was invented for this language, and no code yet existed. Matsumoto chose between two variants of the name - “Ruby (ruby)” and “Koral (coral)”. The first option was chosen because it was a stone according to the horoscope of one of Matsumoto’s employees.

    The first public release of Ruby 0.95 was unveiled at the Japanese domestic news conference on December 21, 1995.

    Subsequently, three more versions of Ruby were published within two days. Even in earlier versions of Ruby, features that Matsumoto attached particular importance to were already included: object-oriented design, classes with inheritance, iterators, closure, exception handling, and garbage collection.

    Between 1995 and 2002, about twenty books on Ruby were published. In Japan, it has become a more popular language 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 the year 2000, Ruby began to spread around the world, which was facilitated by the advent of English-language books, primarily, “Programming Ruby: The Pragmatic Programmers' Guide” and “Why's (Poignant) Guide to Ruby”.

    Following the release of Ruby 1.3 in 1999, the first ruby-talk mailing list in English was launched, which showed a growing interest in the language outside of Japan.

    However, until 2004, Ruby was not widely known in Europe and the United States. Due to its capabilities and the large number of supported platforms, Ruby is gradually gaining an audience.

    In 2004, the Ruby on Rails framework appeared . It was created by David Heinemeyer Hansson in collaboration with 37signals , expanded and improved by the efforts of the Rails core development team and hundreds of open source developers.

    Tipping points


    The key events in the history of Ruby were the release of Ruby 1.8.0 in 2003 and the new version of the Ruby on Rails 2.0 framework in 2007. At this time, interest in using the language for serious commercial projects increased significantly.

    image

    “So, Rails has made Ruby popular. It is a fact. I became a Ruby developer, which in turn changed my career and gave me many amazing opportunities, thanks to Rails. Many rubists of those days went along the same path. We are all here thanks to Rails. In many cases, Rails actually had a huge impact on people, and literally improved their lives. People got better jobs, better opportunities and good money. This was a radical change in the terms of the “game” for many of us, ” wrote Piotr Solnica.

    If before version 1.8 the language developed, while maintaining compatibility with previous versions, then later Ruby developers, led by Yakihiro Matsumoto, refused full compatibility. Therefore, Ruby development 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 have occurred with the release of Ruby 1.9.1 in 2009 and Rails 3.0 in 2010, when most of the comments were taken into account and corrected.

    Achievements


    By 2011, almost all the most promising technologies and programming approaches were implemented in Ruby / Rails, such as development through testing (TDD), a complete model for implementing the MVC concept, working with databases via ORM (ActiveRecord), and design patterns (Design Patterns) , using the convenient Prototype JavaScript framework (for simple work with AJAX), working with the distributed Git version control system (Github.com).

    The framework has found application in the development of SaaS (Cloud computing).

    Ruby on Rails was used to create such popular sites as Twitter, SoundCloud, Airbnb, Diaspora, Groupon, Basecamp, GitHub, Hulu, Scribd, Kickstarter, Change.org.

    March 31, 2012 according to the results of the vote wasISO / IEC 30170 Ruby adopted.

    In November 2015 published version of Ruby 2.3.0-preview1. For several months now, the community has been monitoring the release of Ruby on Rails 5.0.

    According to data from June 2016, the TIOBE index, which measures the growing popularity of programming languages, showed that Ruby ranks 10th. However, this is 6 positions higher compared to last year.



    Miscellaneous Ruby


    There are several Ruby implementations: an official interpreter written in C, JRuby - an implementation for Java, an interpreter for the .NET IronRuby platform, Rubinius - written mainly on Ruby and based on the ideas of Smalltalk-80 VM, MagLev is another Smalltalk-based development from the company Gemstone, Blue Ruby - implementation of Ruby for the ABAP virtual machine, MacRuby - implementation for Mac OS with a focus on maximum integration with the capabilities of the operating system, mruby - implementation for embedding in programs.

    Over the years, the official interpreter has managed to port it to most platforms, including Unix, Microsoft Windows (including Windows CE), DOS, Mac OS X, OS / 2, Amiga, BeOS, Syllable, Acorn RISC OS and others. For Windows, there is a specialized RubyInstaller installer and it is possible to run under Cygwin for greater compatibility with Unix.

    Over time, Ruby and Ruby on Rails became almost synonymous - especially among the uninitiated. The fact is that the Ruby on Rails framework has become the default choice of programmers. It continues to evolve and remains free. This framework describes the components of a web application within the framework of the MVC (Model-View-Controller) template, and also provides ready-made integration with the application server and an interface for accessing the database. The specified tools are enough to create and run a simple blog or a private web page in a matter of hours.

    There are other Ruby frameworks.

    " MerbIs a project created by Ezra Zygmuntowicz. It started as a hack to make file downloads fast and thread safe. And he went an interesting way from this hack to a modular, thread-safe, fast full-stack framework for developing web applications. Merb had 3 modes: full-stack mode, API mode, and micro-mode in which it was trimmed to a minimum. This was the fastest thing that ever existed in the Ruby world. That was over 7 years ago, ”says Piotr Solnica.

    In 2008, the Merb team became part of Ruby on Rails.

    Sinatra - for microsites and microservices up to 50 lines of code. EventMachine - for asynchronous long-playing tasks. If you need to develop a small web application, you can use Padrino .

    “Padrino is the more sugar Sinatra. Convenient enough for small sites. And create api. An alternative to the more redundant and heavier Rails ”, writes the user of“ Toaster ”under the nickname frolin.

    Criticism


    What do Toaster users think about Ruby on Rails flaws?

    "The disadvantage that put an end to me on ruby ​​and rails is the lack of a sane DataMapping (a little more complex and effective analogue of ActiveRecord) with all its wonderful DAO \ Repository, Registry and so on." (Kirill Saksin, PHP-developer, Backend)

    1. Rail eats a lot of memory. The rail is generally redundant for small projects. Any Sinatra, Padrino and so on are better there.
    2. Difficulties in the long-term support of large projects.
    3. Problems for hosters. Creating and maintaining PHP hosting is much easier. Of course there are locum.ru and heroku, and that’s all.
    4. The personnel problem. Finding a [developer] in PHP or Java is easier.
    (Dmitry)

    “After writing a couple of three sites, I realized that, in principle, Rails and Ruby did not make sense to me, and returned to Django and Python. For me, from the scripting languages ​​of Python - everything is ours. And under Desktop you can write already and for mobile you can write with Kivy. Yes, and here Node.js is already with its asynchrony and capabilities in real-time applications. If the rubists do not come up with something in the coming years beyond the ordinary to popularize Ruby, he will simply die, because he will simply become useless to anyone. ” (Raidhon)

    For the client:

    1. No Wordpress. Yes! As soon as Wordpress is rewritten in Ruby, everyone will start using it right away.

    2. Can I have a Joomla website? It's just that our content manager is already used to her admin panel.

    3. And why hosting costs 200 rubles? My office neighbor won for 40 bought.

    For the programmer:

    1. And where are the braces?

    2. The magic. A lot of magic. It does everything "by itself", up to the quasi-versioning of the database by dates. One needs to get used to this, which not everyone is ready to do.

    3. It took me two days to be able to connect to mysql. Perhaps I am not the most experienced programmer, but the abundance of questions on stackoverflow, and not only suggests that half of those wishing to drop out at this stage and went to install Wordpress.
    (iliyaisd)

    Arguments for protecting Ruby


    Thanks to the detailed description of the standard that all Ruby packages and libraries must comply with, the development of add-ons is not difficult. Therefore, among the so-called Ruby Gems (from the English - gem) you can find modules for solving almost any task - from integration with social networks and third-party services to ready-made platforms for e-commerce.

    All you need to use a third-party library is to describe the dependence of your project on some library located in a remote or local repository, and the next time you build this library, it will automatically load into the application. It also simplifies the migration of the project between developers, since there is no need to manually share the dependencies to build the project, they write in one of the Ruby reviews.

    Regarding the advantages of this programming language, the Habra user, under the nickname urvalla, writes the following in his article :
    A programming language is not only syntax, a garbage collector, not only a language paradigm, and even not so much its philosophy, in the first place, it is the community and the code base that this community created. Especially now, in the era of OpenSource. And here at Ruby the first fat plus in karma.

    It is known that Ruby is slow. And it's hard to argue, because Ruby is an interpreted language. And which is characteristic, most often I hear this from those who write (exclusively) in PHP, which is also interpretable, and in terms of speed in synthetic tests is at about the same level. Most likely, these are echoes of the notoriety of old versions.

    In fact, I had to work with both Rails and Symfony2 - on real Rails applications faster with the same level of optimization.

    And do not forget that both the main load and the bottlenecks are often databases, and a web application is just a layer of business logic. And such a layer scales well.

    Present and future


    image
    Developers Conference on Ruby and Rails

    We talked with some Ruby developers about what is happening with Ruby now, and also got their opinion on the prospects of the project.

    Where is Ruby and its frameworks in demand today?

    - Ruby owes much of its popularity to the Ruby On Rails framework, so its main area of ​​application now is web development and everything related to it.

    What are his prospects?

    - A very strong community has formed around Ruby. Despite a slight decline in interest in the language recently, Ruby continues to actively develop and move forward.

    Can any language or technology be considered a possible "killer" of Ruby?

    - Nothing concrete comes to mind. There are Elixir and Crystal, but in my opinion they are still quite young, and you can use them only at your own peril and risk. Personally, I now look in the direction of Go, but not as an alternative, but rather as an addition, to solve specific problems.

    ( Alexander Tipugin . Ruby-developer of the TM company )

    Where is the demand for Ruby and frameworks based on it today?

    - The main specialization of the Ruby programming language and the Ruby on Rails framework is the development of startups. At Ruby on Rails, it is very simple and quick to create unique and technically complex projects that go beyond standard engines. Need a business card site - take Wordpress. Need an online store - buy Bitrix.

    But if you need a unique startup, which consists of “seven red lines and all of them should be perpendicular to each other, some of which should be painted in green, some should be transparent, plus one in the shape of a kitten” - this is the task for Ruby on Rails

    What are his prospects?

    - The language and framework continue to evolve, and the community continues to grow. This year, the creator of the language Yukihiro Matsumoto arrives in Moscow at http://railsclub.ru . Everyone is waiting for the fifth version of Rails, which should be ready in the near future.

    Can any language or technology be considered a possible "killer" of Ruby?

    - Hype around Ruby, which was in past years, subsides. Ruby is no longer trendy, but continues to be an effective tool for building startups. There are no killers.

    ( Oleg Balbekov , CEO Evrone )

    And in the end we will again give the floor to the user "Habr" under the nickname urvalla:

    There are many great languages ​​and frameworks for writing web applications, and Ruby with Rails is not a silver bullet that will kill all werewolf rabbits at once. Simply, in my opinion, if you take a set of important criteria, and not try to choose one or two of them, RoR really gets a lot of points.

    Including in maturity - this is no longer a hipster platform in which there is only potential, but also not an old man (but there are a lot of examples of both). And I think that he won’t become an old man for a long time, since both Ruby and Rails still have the potential for growth and development.

    Also popular now: