📜 ⬆️ ⬇️

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

image
Often, the rumor of people for years sentenced this or that IT product to "death". If this does not happen, the rumor continues to wait patiently. And if one day or another project closes, someone will wait for the moment and say: “But we said that this would happen.”

How many years in a row have PHP been prophesied for "death"? But it seems to him that even that. And recently, he even began to develop more actively. The Ruby programming language develops slowly, with the slowness inherent in the eastern, or rather, Asian worldview. Naturally, there were those who foreshadowed him and the imminent sunset.

However, the Ruby community is very much alive, and some studies show that its popularity is growing again. Anyway, Ruby has managed to occupy a special place in the field of web development. How did its creators manage to achieve this? What happens to him now? What is the future of Ruby?
')
Ruby creator 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 idea of ​​what Ruby is trying to make natural, but not simple, language that reflects life.

image In the autumn Matz plans to visit Russia. His visit will be dedicated to the next conference dedicated to Ruby on Rails.

February 24, 1993 is considered the birthday of the Ruby language. But on that day only the name for this language was invented, and no code existed yet. 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 presented at the Japanese domestic newsgroup on December 21, 1995.

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

Between 1995 and 2002, about twenty books about 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 2000, Ruby began to spread around the world, promoted by the emergence of English-language books, primarily “Programming Ruby: The Pragmatic Programmers' Guide” and “Why's (Poignant) Guide to Ruby”.

After 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 USA. Thanks to its capabilities and a large number of supported platforms, Ruby has gradually won an audience.

In 2004, the Ruby on Rails framework appeared. It was created by David Heinemeier Hansson in conjunction with 37signals , expanded and enhanced by the efforts of the Rails kernel 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 language for serious commercial projects increased significantly.

image

“So, Rails made Ruby popular. It is a fact. I became a Ruby developer, which in turn changed my career and gave me a lot of amazing features thanks to Rails. Many rubists of those days went the same way. 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 conditions of the “game” for many of us, ” wrote Piotr Solnica.

If, prior to version 1.8, the language was developed, while maintaining compatibility with previous versions, then later Ruby developers, led by Yakiquiro Matsumoto, abandoned full compatibility. Therefore, the development of Ruby was divided into two branches: support for version 1.8. * And the creation of new versions 1.9. *, Which are the forerunner of the next version of the language, Ruby 2.

Serious changes for the better 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.

Progress


By 2011, almost all the most promising technologies and approaches to programming were implemented in Ruby / Rails, such as Test Development (TDD), a full-fledged MVC concept implementation model, work with databases via ORM (ActiveRecord), Design Patterns , use Prototype's convenient JavaScript-framework (for simple work with AJAX), work with distributed Git version control system (Github.com).

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

Ruby on Rails has been 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 voting , the ISO / IEC 30170 standard in Ruby was adopted.

In November 2015, Ruby 2.3.0-preview1 was released. For several months, the community has been following the release of Ruby on Rails 5.0.

According to June 2016, the TIOBE index, which measures the growth in popularity of programming languages, showed that Ruby ranks 10th. However, it is 6 positions higher than last year.



Miscellaneous Ruby


There are several implementations of Ruby: the official interpreter written in C, JRuby is an implementation for Java, an interpreter for the .NET platform IronRuby, Rubinius is written mainly in Ruby and is based on ideas Smalltalk-80 VM, MagLev is another Smalltalk-based development from the company Gemstone, Blue Ruby - Ruby implementation for the ABAP virtual machine, MacRuby - implementation for Mac OS with a focus on maximum integration with the operating system capabilities, mruby - implementation for embedding into 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 installer RubyInstaller 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 for programmers. It continues to evolve and remains free. This framework describes the components of a web application within the MVC pattern (Model-View-Controller), and also provides out-of-the-box integration with the application server and an interface for accessing the database. This toolkit is enough to create and launch a simple blog or private web page in a matter of hours.

There are other Ruby frameworks.

“ Merb is a project created by Ezra Zygmuntowicz. It began as a hack to make file uploads fast and thread-safe. And he walked an interesting path 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 cut to the minimum. This was the fastest thing that ever existed in the Ruby world. That was more than 7 years ago, ”says Piotr Solnica.

In 2008, the Merb team joined Ruby on Rails.

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

“Padrino - more“ sugar ”Sinatra. It is convenient enough for small sites. And creating api. The alternative, to more redundant and heavy Rails, ” writes the user“ Toaster ”under the nickname frolin.

Criticism


What do the Toaster users think about the shortcomings of Ruby on Rails?

“The disadvantage that I put an end to on ruby ​​and rails is the lack of imputed DataMapping (a slightly more complex and effective analogue of ActiveRecord) with all its wonderful DAO \ Repository, Registry, and so on.” (Cyril Saksin, PHP-developer, Backend)

1. Rail eats a lot of memory. Rail is generally redundant for small projects. There better go all sorts of Sinatra, Padrino and so on.
2. The difficulties of long-term support for large projects.
3. Problems for hosters. Creating and maintaining PHP hosting is much easier. There are, of course, locum.ru and heroku, and that's about it.
4. Personnel problem. Find a [developer] in PHP or Java easier.
(Dmitriy)

“After writing a couple of top three sites, I realized that, in principle, Rails and Ruby do not make sense to me, and returned to Django and Python. For me, from scripting languages ​​Python is our everything. And under the Desktop, you can write already for mobile phones with Kivy. Node.js is already there with its asynchrony and capabilities in real-time applications. If the ruby ​​doesn’t come up with something beyond the ordinary for the popularization of Ruby in the coming years, he will simply die, as he will simply become unnecessary to anyone. ” (Raidhon)

For client:

1. No wordpress. Yes! As soon as Wordpress is rewritten in Ruby, it will immediately begin to be used by all and sundry.

2. Can I have a Joomla site? We just have a content manager already accustomed to her admin.

3. Why hosting costs 200 rubles? My officemate won over 40 bought.

For the programmer:

1. Where are the braces?

2. Magic. A lot of magic. It does everything “by itself”, right up to quasi-versioning of the date database. It is necessary to get used to this, that not everyone is ready to do.

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

Ruby Protection Arguments


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

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

About the advantages of this programming language, the user “Habra” under the nickname urvalla in his article writes the following:
A programming language is not only syntax, garbage collector, not only the paradigm of the language, and not even so much its philosophy, first of all - it is the community and the code base that this community has 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 that is typical, most often I hear it from those who write (exclusively) in PHP, which is also interpreted, 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-life Rails applications, with the same level of optimization.

And do not forget that the main load and 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
Ruby and Rails Developer Conference

We talked with some Ruby developers about what is happening with Ruby now, and we also learned their opinion about the prospects for the project.

Where is Ruby and frameworks based on it these days?

“Ruby owes its popularity to the Ruby On Rails framework, so its main scope now is web development and everything related to it.

What are his prospects?

- A very strong community has been formed around Ruby. Despite a recent decline in interest in the language, Ruby continues to grow and move forward.

Can any language or technology be considered a possible Ruby “killer”?

- 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 am now looking in the direction of Go, but not as an alternative, but rather an add-on, to solve specific problems.

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

Where is Ruby and frameworks based on it these days?

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

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

What are his prospects?

- Language and framework continue to evolve, and the community - 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 as soon as possible.

Can any language or technology be considered a possible Ruby “killer”?

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

( Oleg Balbekov , CEO Evrone )

And at the end we will again give the floor to the user “Habra” under the nickname urvalla:

There are many excellent 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 is really gaining a lot of points.

Including maturity is no longer a hipster platform, in which there is only potential, but also not an old man (there are a lot of examples of those and others). And I’m not going to be an old man for a long time, since Ruby and Rails still have potential for growth and development.

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


All Articles