Язык программирования Ruby

Содержание

Слайд 2

Основная информация Класс языка: динамический, объектно-ориентированный Тип исполнения: интерпретируемый Появился в:

Основная информация

Класс языка: динамический, объектно-ориентированный
Тип исполнения: интерпретируемый
Появился в: 1995
Автор: Юкихиро Мацумото
Система типов:

 динамическая
Слайд 3

Ruby (англ. ruby — рубин) — динамический, высокоуровневый язык программирования для

Ruby (англ. ruby — рубин) — динамический, высокоуровневый язык программирования для быстрого и удобного объектно-ориентированного программирования-(методология программирования, основанная на представлении

программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования). Язык обладает независимой от операционной системы реализацией ,динамической типизацией,  и многими другими возможностями. По особенностям синтаксиса он близок к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Python, Lisp, Dylan и Клу.
Слайд 4

Создатель Ruby — Юкихиро Мацумото (Япония). Целью разработки было создание «настоящего

Создатель Ruby — Юкихиро Мацумото (Япония). Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в

разработке, языка программирования. В Японии Ruby стал популярным с момента появления первой общедоступной версии в 1995 году, однако наличие

документации только на японском языке сдерживало его дальнейшее распространение. Лишь в 1997 году появилось описание Ruby на английском языке, а в 1998 году открылся форум «ruby-talk». Это положило начало росту известности языка в остальном мире. Издано несколько книг на различных языках, в том числе на русском.
24 февраля 2014 года исполнился 21 год с момента анонса языка программирования Ruby. Такое событие разработчики решили отметить выпуском патча для Ruby 2.1, который назвали Ruby 2.1.1

Слайд 5

Хронология выхода версий

Хронология выхода версий

Слайд 6

Хронология выхода версий

Хронология выхода версий

Слайд 7

Хронология выхода версий

Хронология выхода версий

Слайд 8

Ruby — полностью объектно-ориентированный язык. В нём все данные являются объектами,

Ruby — полностью объектно-ориентированный язык. В нём все данные являются объектами, в отличие от

многих других языков, где существуют примитивные типы. Каждая функция — метод.
Ruby использует вызов по соиспользованию (call-by-sharing), хотя в сообществе Ruby часто говорят, что он использует вызов по ссылке. Для программиста, некоторые эффекты такого решения могут показаться неожиданными. Например:
a = "abcdefg"
b = a
b #=> "abcdefg"
a[4] = 'R'
b #=> "abcRefg"
Слайд 9

Область применения Для Ruby существуют несколько реализаций: официальный интерпретатор, написанный на

Область применения

Для Ruby существуют несколько реализаций: официальный интерпретатор, написанный на Си, JRuby — реализация для Java,

интерпретатор для платформы .NETIronRuby, Rubinius — написанная в основном на Ruby и базирующаяся на идеях Smalltalk-80 VM, MagLev — другая базирующаяся на Smalltalk разработка от компании Gemstone, Blue Ruby — реализация Ruby для виртуальной машины ABAP  .MacRuby— реализация для Mac OS с фокусом на максимальную интеграцию с возможностями операционной системы[18], mruby — реализация для встраивания в программы[19].
Официальный интерпретатор портирован под большинство платформ, включая Unix, Microsoft Windows (в том числе Windows CE), DOS, Mac OS X, OS/2, Amiga, BeOS,Syllable, Acorn RISC OS и другие. Для Windows существует специализированный установщик RubyInstaller и есть возможность запуска под Cygwin для большей совместимости с Unix.
Слайд 10

В языке есть 2 эквивалентных способа записи блоков кода: { puts

В языке есть 2 эквивалентных способа записи блоков кода:
{ puts "Hello, World!"

}
do puts "Hello, World!" end

Синтаксические конструкции

Ключевые (или зарезервированные) слова в Ruby обычно не применяются ни для каких иных целей. Вот их полный перечень:
BEGIN  END   alias  and    begin
break  case  class  def    defined?
do     else  elsif  end    ensure
false  for   if     in     module
next   nil   not    or     redo
rescue retry return self   super
then   true  undef  unless until
when   while yield

Слайд 11

Пример программы Небольшая интерактивная консольная программа, позволяющая переводить температуру из шкалы

Пример программы

Небольшая интерактивная консольная программа, позволяющая переводить температуру из шкалы Фаренгейта

в шкалу Цельсия и наоборот.
print "Введите температуру и шкалу (С or F): "
str = gets
exit if str.nil? or str.empty?
str.chomp!
temp, scale = str.split(" ")
abort "#{temp} недопустимое число." if temp !~ /-?\d+/
temp = temp.to_f case scale
 when "С", "с"
f = 1.8*temp + 32
 when "F", "f"
  с = (5.0/9.0)*(temp-32)
 else
  abort "Необходимо задать С или F."
end
if f.nil?
 print "#{c} градусов C\n"
else
 print "#{f} градусов F\n"
end
Слайд 12

Использование Ruby используется в NASA, NOAA (национальная администрация по океану и

Использование

Ruby используется в NASA, NOAA (национальная администрация по океану и атмосфере), Motorola и других крупных организациях. Следующие

программы используют Ruby как скриптовый язык для расширения возможностей программы или написаны на нём (частично или полностью).
RPG Maker (RPG Maker XP) — RGSS (Ruby Game Scripting System)
Amarok
SketchUp
Inkscape — скрипты для обработки векторных изображений
Metasploit
Chef, Puppet — системы управления конфигурациями
Redmine — багтрекер
XChat
Для KOffice разрабатывается проект Kross — механизм для поддержки скриптов, который включает Ruby.
WATIR (англ. Web Application Testing in Ruby) — свободное средство для автоматического тестирования веб-приложений в браузере.