URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 88812
[ Назад ]

Исходное сообщение
"В день двадцатилетия проекта представлен релиз языка програм..."

Отправлено opennews , 24-Фев-13 20:27 
Спустя ровно 20 лет с момента основания проекта 24 февраля 1993 года представлен (http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is... первый релиз новой ветки языка  программирования Ruby 2.0 (http://www.ruby-lang.org).  Ruby - мощный и динамический объектно-ориентированный язык программирования, отличающийся высокой эффективностью разработки программ и вобравший в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.  Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3.  

Ruby 2.0 продолжает развитие ветки 1.9.x и не содержит революционных изменений, и несмотря на ряд существенных новшеств, сохраняет полную обратную совместимость с Ruby 1.9.3. Также отмечается, что в отличие от 1.9.0 выпуск 2.0.0 является полностью стабильным и готовым для внедрения. По словам разработчиков, благодаря внимательному отношению к обеспечению совместимости с существующими приложениями, миграции с ветки 1.9 на 2.0 должна пройти заметно легче, чем с 1.8 на 1.9.

Популярные проекты, такие как Rails и tDiary, уже проверены на полную совместимость с  Ruby 2.0. Тем не менее ряд изменений в новой версии может привести к нарушению совместимости, например, в качестве кодировки по умолчанию в Ruby 2.0 используется UTF-8; удалена поддержка библиотеки Iconv; нарушена совместимость ABI (требуется пересборка библиотек-расширений); #lines, #chars, #codepoints и #bytes теперь возвращают результат с типом Array вместо Enumerator; Object#inspect теперь всегда возвращает строковые значения.

Основные (http://blog.marc-andre.ca/2013/02/23/ruby-2-by-example/) улучшения (https://speakerdeck.com/shyouhei/whats-new-in-ruby-2-dot-0), добавленные (http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_0/NEWS) в Ruby 1.9.3:

- Ключевые слова в качестве аргументов: например, кроме "1.step(20, 2)" можно  писать "1.step(by: 2, to: 20)" c определением метода как "def step(by: step, to: limit)", что значительно улучшает читаемость кода;

-  Поддержка конструкции "Refinements" ( Module#refine) для повышения безопасности внесения изменений в код на лету ("monkey patching (http://en.wikipedia.org/wiki/Monkey_patch)"). Например, можно применить "рафинирование" к глобальному классу в контексте только определённого модуля, при этом изменения будут применены только к указанному контексту. Возможность отмечена как экспериментальная, поэтому не исключается, что логика работы  в будущем может поменяться;
-  Новый способ расширения классов при помощи конструкции Module#prepend, позволяющей добавить модуль в начало цепочки вызова;
-  Поддержка литерала "%i", предназначенного для упрощённого создания  массива символов ("KEYS = %i[foo bar baz]" вместо "KEYS = [:foo, :bar, :baz]");
-  Поддержка переменной __dir__, которая возвращает путь к директории текущего запущенного файла (например, File.read(__dir__ + '/.config')
);
-  Использование кодировки UTF-8 по умолчанию. При указании символов в кодировке UTF-8  в скриптах отныне больше нет необходимости в использовании таких ухищрений как спецкомментарий "# encoding: utf-8";

-  Новые методы Enumerable#lazy (http://ruby-doc.org/core-2.0/Enumerable.html#method-i-lazy) и Enumerator::Lazy с реализацией
"ленивых" перечислений, не выполняемых сразу, а только при непосредстенной необходимости в данных. Lazy-перечисления работают примерно в два раза медленнее обычных;-  Новые методы Enumerator#size (http://ruby-doc.org/core-2.0/Enumerator.html#method-i-size) и Range#size, позволяющие вычислить размер перечисления без его выполнения;
-  Поддержка метода "#to_h" для преобразования класса в хэш (car = Car.new('Toyota', 'Prius', 2014); car.to_h # => {:make=>"Toyota", :model=>"Prius", :year=>2014});
-  Переход на Onigmo (https://github.com/k-takata/Onigmo) (форк Oniguruma), новый движок для выполнения регулярных выражений;-  API для обработки исключений в асинхронном режиме;
-  Поддержка системы динамической отладки DTrace, при помощи которой можно организовать диагностику работы скрипта во время его выполнения;
-  TracePoint - улучшенный API для трассировки приложений;
-  Оптимизация производительности сборщика мусора, за счёт задействования техники маркировки по битовым картам;-  Оптимизация работы конструкции  Kernel#require, что позволило заметно ускорить запуск Rails;-  Оптимизация работы виртуальной машины-  Оптимизация производительности операций с плавающей запятой;


URL: http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is.../
Новость: http://www.opennet.me/opennews/art.shtml?num=36211


Содержание

Сообщения в этом обсуждении
"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 24-Фев-13 20:27 
Ура, товарищи!

"Ruby 2.0"
Отправлено Аноним , 24-Фев-13 20:27 
Ура, ура, ура!

"Ruby 2.0"
Отправлено Аноним , 25-Фев-13 09:39 
По твоей же ссылке
> Фонетическая транскрипция:ˈruːbi

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 24-Фев-13 20:44 
А рельсы всё-таки поломало :3
Из-за того, что видимость Kernel#initialize_dup сменили с public на private.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Andrey Mitrofanov , 25-Фев-13 09:34 
> А рельсы всё-таки поломало :3

Как, ты ещё не вкурсе, что они 4 раза за минорный релиз переписывают список рекомендованных версий руби на своей давнлоад пейдж?? Тогда поделом же.


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 25-Фев-13 14:09 
Нет, не слышал. Лишь бы на новую версию языка не 5 лет мигрировали, как питонолюбы, остальное неважно.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Арс , 25-Фев-13 19:13 
Фикс то уже давно есть в edge, но непонятно почему его они его не добавили в 3.х перед выпуском релиза руби. :(

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Kriss , 24-Фев-13 20:59 
Вообще такого не может быть чтобы Руби было 20 лет

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 24-Фев-13 21:01 
Отрицание реальности - это так весело.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено V , 24-Фев-13 21:12 
Да о нём общественность узнала только году в 2008-м, и то только благодаря rails и навязчивой рекламе MVC.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено exn , 24-Фев-13 22:01 
2006м

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Michael Shigorin , 25-Фев-13 11:19 
> 2006м

Общественность -- начиная с 2000, поскольку вышла книжка Programming Ruby (http://ruby.osdn.org.ua/pickaxe -- в альте местами водится как ruby-doc-extra).  Вот до Энди с Дэйвом и впрямь приходилось сильно сложнее, насколько понимаю...

PS: опять забыл, что запятые к ссылкам прилипают; объехал.


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено kemm , 24-Фев-13 22:45 
Вот и выросло поколение... (c)

Фришный portupgrade появился году так в 2000ом примерно (в портах с 2001го точно). Намекнуть, на чём он написан?


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 25-Фев-13 08:12 
Слишком долго мы терпели это г-но, слава богу теперь есть portmaster.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Клыкастый , 25-Фев-13 16:09 
ну что сказать... portmaster, как ни крути, практичнее и красивее.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Anonim , 24-Фев-13 22:10 
"Ruby was conceived on February 24, 1993 by Yukihiro Matsumoto" (c) http://en.wikipedia.org/wiki/Ruby_(programming_language)

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено лох , 25-Фев-13 10:35 
conceive -- задумать, запланировать, имеет также значение "зачать".
или мне кажется, или возраст ребёнка обычно не от зачатия измеряют? а то так можно  сказать, что вася из деревни мухоловщина запланировал руби ещё за 15 лет до мацумото.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 24-Фев-13 21:37 
tDiary -- популярный проект?

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 24-Фев-13 21:54 
> "1.step(by: 2, to: 20)"

Вот это я понимаю, ООП головного мозга. Единичка? Объект!


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено exn , 24-Фев-13 22:01 
dsl

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено антонимус , 24-Фев-13 22:22 
Будешь смеяться, но даже nil - объект. И всё это вместе - скрипт, а не компилируемое приложение. Но ведь тебя и не просят отказываться от любимого C

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено all_glory_to_the_hypnotoad , 25-Фев-13 01:29 
что число объект это вполне нормально, но полный треш давать возможность прямо у литерала числа вызывать метод. И, конечно, тупо запихивать генераторы и прочую хрень в методы числа. В общем, не ООП это, а помесь функциональщины, перла и привычки вносить фичи в ЯП в стиле php

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 25-Фев-13 01:39 
> полный треш давать возможность прямо у литерала числа вызывать метод

Почему? Недостаточно паршиво для тебя?


"В день двадцатилетия проекта представлен релиз языка..."
Отправлено arisu , 25-Фев-13 06:45 
Алан Кей стыдливо забивается в угол и краснеет.

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 25-Фев-13 11:21 
> 3.times { |e| puts e }

0
1
2
=> 3
Я конечно не фанат ООП, но по мне, так вполне себе вменяемо


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 25-Фев-13 15:38 
В перле-то как раз по уму сделано.

http://perldoc.perl.org/perltie.html / Tying scalars


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 25-Фев-13 16:13 
То, о чем вы пишете, это "увязывание" переменной и класса Perl (прошу извинения, если я ошибаюсь в терминологии).
А оригинатор этой ветки негодует об объектной сути литерала (точнее, численного литерала, м.б. потому что, например, объектность списочного литерала для него вполне применима).

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 26-Фев-13 20:42 
Вот это и есть "по уму".
У нас уже есть объект "скаляр", у него уже есть простой, понятный, привычный и удобный для работы с этим типом объектов интерфейс. (А у массива или хэша - свой)
Хотите объектности - пожалуйста, реализуйте этот интерфейс в своем классе.
А навязывать всем под видом ОО идиотизм в виде "всё есть класс, наследуемый от одного корня, с одним и тем же интерфейсом" - несколько туповато, из этого получаются чудовища типа число.умножь_себя_на_десять().

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 06-Мрт-13 16:07 
Что в этом чудовищного? Стандартную инфиксную нотацию 2 * 2 никто не отменял, это же не лишп.

"В день двадцатилетия проекта представлен релиз языка..."
Отправлено arisu , 25-Фев-13 06:46 
> Вот это я понимаю, ООП головного мозга. Единичка? Объект!

что, тяжело неучем расти, да? иди, что ли, читай про Smalltalk, откуда у драгоценности растут лапки. про Self ещё можешь потом почитать, тоже полезно будет.


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Safort2 , 24-Фев-13 22:39 
А на сколько сильно возросла производительность?

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено anonymous , 25-Фев-13 02:25 
"возросла"? А ты оптимист. :-)

"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено Аноним , 24-Фев-13 22:41 
Пару лет назад о нем все узнали, а оно уже страшнее C++

"В день двадцатилетия проекта представлен релиз языка..."
Отправлено arisu , 25-Фев-13 06:48 
> Пару лет назад о нем все узнали, а оно уже страшнее C++

для укушеных симульным псевдооп всё, что на цпп не похоже, страшно.


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено CPP , 25-Фев-13 13:54 
> Пару лет назад о нем все узнали, а оно уже страшнее C++

Что значит страшнее C++?


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено XoRe , 25-Фев-13 20:14 
>> Пару лет назад о нем все узнали, а оно уже страшнее C++
> Что значит страшнее C++?

Ещё более неканонiчно (с) адепт ANSI C


"В день двадцатилетия проекта представлен релиз языка програм..."
Отправлено анноним , 28-Фев-13 17:59 
perl 2.0