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

Исходное сообщение
"Релиз языка программирования Ruby 1.9.2"

Отправлено opennews , 18-Авг-10 22:19 
После 20 месяцев разработки представлен (http://www.ruby-lang.org/en/news/2010/08/18/ruby-1-9-2-is-re.../) релиз языка программирования Ruby 1.9.2 (http://www.ruby-lang.org/). Ruby - относительно молодой, мощный и динамический объектно-ориентированный язык программирования, отличающийся высокой эффективностью разработки программ и вобравший в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. По заявлению разработчиков, Ruby 1.9.2 проходит более 99% тестов из набора RubySpec (http://www.rubyspec.org/), оценивающего обратную совместимость с прошлой версией языка.


В новой версии представлены следующие основные улучшения (http://svn.ruby-lang.org/repos/ruby/tags/v1_9_2_0/NEWS):

-  Добавлено более 60 новых методов для классов Array, Complex, Dir, Encoding, Enumerable, Enumerator, Float, File, Hash, IO, Kernel, Integer, Thread, Time и т.п.
-  Представлен новый API для работы с сетевыми сокетами, поддерживающий IPv6;
-  Добавлены новые кодировки, среди ко...

URL: http://www.ruby-lang.org/en/news/2010/08/18/ruby-1-9-2-is-re.../
Новость: http://www.opennet.me/opennews/art.shtml?num=27660


Содержание

Сообщения в этом обсуждении
"Релиз языка программирования Ruby 1.9.2"
Отправлено Аноним , 18-Авг-10 22:19 
Незнаю как другие, а я Ruby перестал использовать как раз из-за этих пресловутых 99% совместимости с прошлой версией. Обратная совместимость должна быть 99.9999%, иначе получаем раскол, с кучей людей продолжающих сидеть на 1.8.6 и 1.9.1.

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 18-Авг-10 23:46 
1.9 -- pre-2.0 ветка, если мне склероз не изменяет.  А в 2.0 заведомо обещали, что будут ломать то, что вылезло всё-таки боком из 1.6/1.8.

Другое дело, что дистрибутивы потащили 1.9 вслед за разработчиками, а вот стоило ли оно того -- ой не знаю (как и apache 2.0.x, которому бы тоже лучше было называться 1.9.x).


"Релиз языка программирования Ruby 1.9.2"
Отправлено Аноним , 19-Авг-10 00:02 
>1.9 -- pre-2.0 ветка, если мне склероз не изменяет.  

1.9.0 был тестовым релизом, начиная с 1.9.1 пошли стабильные версии.


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 00:08 
>>1.9 -- pre-2.0 ветка, если мне склероз не изменяет.
>1.9.0 был тестовым релизом, начиная с 1.9.1 пошли стабильные версии.

Немного не о том пытаюсь вспомнить: 1.9 предполагался как некий переходный и не для широкого production-применения или не так, а именно как продакшн.  Припоминается первое, но зуб не дам...


"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 09:33 
Использовать Ruby? Ну-ну..
Полагаю вы ничего более-менее серьезного на Ruby не написали, иначе бы знали, чем хорош Ruby.

"Релиз языка программирования Ruby 1.9.2"
Отправлено аноним , 19-Авг-10 21:06 
Если бы вы что-то серьезное написали, знали бы, что такое совместимость.

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 23:27 
А мы плавали, знаем.  Похуже, чем у тикля, но и там бывает.

"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 20-Авг-10 11:35 
Угу... В конце концов мозги человеку даются, чтобы думать. Если вы бездумно на продакшн систему ставите новые версии, то вы сами себе злобный буратино. Тем более что старые версии никто не отменял...

Нормальные бизнес-приложения в процессе жизненного цикла постоянно дописываются дорабатываются. Миграция на новые версии осуществляются в процессе доработки и сами по себе являются вполне себе доработкой. Если разработчик не гнушался писанием юнит-тестов и внимательно читает changelog, то перевод приложения потребует минимум усилий.


"Релиз языка программирования Ruby 1.9.2"
Отправлено Аноним , 18-Авг-10 22:53 
Лучший язык ,для тех кто ценит свое время и любит качественно работать, стал еще лучше

"Релиз языка программирования Ruby 1.9.2"
Отправлено аноним , 18-Авг-10 23:21 
Ценить свое время в ущерб времени пользователя - большое зло. Но факт заключается в том, что на ruby вообще ничего ценного не написано. А если напишут, это будет только грустно.

"Релиз языка программирования Ruby 1.9.2"
Отправлено к , 18-Авг-10 23:27 
Ну да... Metasploit конечно же абсолютно ненужная штука.. Говорите за себя при таких заявках.

"Релиз языка программирования Ruby 1.9.2"
Отправлено аноним , 19-Авг-10 04:55 
Абсолютно ненужная, подтверждаю.

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 00:00 
>Ценить свое время в ущерб времени пользователя - большое зло.

Хм, то есть если написанный скрипт будет отрабатывать не за секунду, а за минуту, но живой человек бы провозился полдня -- то это тоже "в ущерб"?  Особенно если учесть, что как правило -- "за секунду" и не надо, и писать никто в этом веке не раскачается.

Вот пример из загашника, слепленный за час или около того на коленке у заказчика и изредка пригождающийся мне и другим: http://fly.osdn.org.ua/~mike/works/misc/arp2dns+dhcp.rb

>Но факт заключается в том, что на ruby вообще ничего ценного не написано.

Факт заключается в том, что Вы врёте.  Примерно так же, как MSP-остолопы, катящие бочку на линукс посредством модемов и маршрутизаторов с этим самым линуксом унутре.

>А если напишут, это будет только грустно.

У человека с таким отсутствием сразу и вкуса, и такта даже неинтересно спрашивать, что он-то сам написал не наводящего тоску. :(


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 19-Авг-10 20:14 
> Вот пример из загашника, слепленный за час или около того на коленке у заказчика и изредка пригождающийся мне и другим: http://fly.osdn.org.ua/~mike/works/misc/arp2dns+dhcp.rb

Эммм... Мне почему то кажется, что указанный скрипт можно было своять за те же полчаса и на любом другом скриптовике. Да-да - на ПХП. Это чтобы похоже наступить на больную мозоль :) Но тем не менее, безотносительно 'другого языка' - я как-то не заметил в скрипте каких-то фич, наличие которых именно в руби позволило сделать его понятным, эффективным и вообще самым-самым. Скрипт как скрипт. Таких миллион рожается каждый день..


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 20:39 
>Мне почему то кажется, что указанный скрипт можно было своять за
>те же полчаса и на любом другом скриптовике. Да-да - на ПХП.

Да разумеется.  И на шелле тоже, только со структурами данных неинтересно вышло бы (там пришлось позже расширять формат вывода и наличие именно _структурированных_ сильно помогло, помнится).

А не хотите баловства ради сваять за пару минут на любом другом скриптовом языке аналог вот такого фрагмента -- открыть файл, вытащить содержимое в array (попутно обкусывая whitespace), если что не так с открытием-чтением -- внятно ругнуться?

begin
  File.open(IGNORE) do |f|
    f.each do |mac| ignored << mac.chomp end
  end
rescue
  puts "** unable to open #{IGNORE}, accepting all MACs" if DEBUG
end

> Скрипт как скрипт. Таких миллион рожается каждый день..

В том-то и дело.  Мне как раз для такой "подножной автоматизации" ruby является вторым после шелла выбором.  Чуть сложнее цикла-пайпа -- и уже задумываюсь, стоит ли выписывать на шелле или осмысленно сразу нарубить.

PS: на всякий -- относительно регулярно пишу ещё на схеме, а хакать порой доводится более или менее всё, что горит.  Так что сопоставлять есть с чем :)


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 19-Авг-10 21:37 
> А не хотите баловства ради сваять за пару минут на любом другом скриптовом языке аналог вот такого фрагмента -- открыть файл, вытащить содержимое в array (попутно обкусывая whitespace), если что не так с открытием-чтением -- внятно ругнуться?

Ммм...

$path = 'test.txt';
if (($data = file_get_contents($path)) === false) {
    echo "Failed to read input file '$path'\n";
} else {
    $lines = array_map('trim', explode("\n", $data));
}

не? Всего лишь как пример. Впрочем, всё то-же самое можно сделать и на любом другом скриптовике с теми же самыми трудозатратами. Мало показательный тест. Вид сбоку ни чем не отличается.


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 23:29 
>Вид сбоку ни чем не отличается.

<s>whitespace не обкусили.</s> Простите, глаз к вечеру замылился :)

Для меня отличается -- потребление памяти на здоровом файле будет отличаться дословно в разы.  Ну и читабельность/элегантность (кхе) кода тоже.


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 19-Авг-10 23:37 
><s>whitespace не обкусили.</s> Простите, глаз к вечеру замылился :)

array_map и trim там не просто так :)

>Для меня отличается -- потребление памяти на здоровом файле будет отличаться дословно
>в разы.

А на приведенном в оригинальном примере - не будет?

PS: Добавим пару строк, поменяем file_get_contents-для-ленивых на fopen/fread и с памятью будет как минимум ни чуть не хуже. Это ещё три строки кода. Если as is.

> Ну и читабельность/элегантность (кхе) кода тоже.

И поехал флейм о фломастерах..


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 20-Авг-10 00:15 
>><s>whitespace не обкусили.</s> Простите, глаз к вечеру замылился :)
>array_map и trim там не просто так :)

Да-да, разумеется :)

>>Для меня отличается -- потребление памяти на здоровом файле будет отличаться
>>дословно в разы.
>А на приведенном в оригинальном примере - не будет?

Говорю, в моём примере идёт построчное чтение, обкусывание и набивка в массив.  В Вашем -- сперва всасывается весь файл, потом куда-нить небось заскладируют временно массив от explode(), потом продублируют до конца рантайма в $lines.  Перед завершением чтения потребление памяти будет отличаться в (хорошо если)два..три(более вероятно) раза, и то если пробелов немного оказалось.  Где-то посредине различие будет ещё больше, но в абсолютных цифрах конец важней.

>PS: Добавим пару строк, поменяем file_get_contents-для-ленивых на fopen/fread
>и с памятью будет как минимум ни чуть не хуже. Это ещё три строки кода.
>Если as is.

А сделайте?  Просто следом вылезет проверка ошибок, и это ещё три строки кода, а там уже и полэкрана.  То есть если лениво -- выходит плохо, а если по уму -- выходит куча строчек.

>> Ну и читабельность/элегантность (кхе) кода тоже.
>И поехал флейм о фломастерах..

Ну почему же, давайте приведём к одному знаменателю ТТХ сравниваемых кусочков (или свой предложите, если хотите) и спокойно сравним.  Я ж не вредности ради и не чтоб оппонента ниже плинтуса вкатать.  Мне оппонент дороже времени, раз оно на него находится.

А на PHP тоже можно писать красиво, но он к этому, увы, не располагает.  Патчить-то тоже много чего доводилось (например, расширения и немного потроха TYPO3).


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 20-Авг-10 00:27 
> А сделайте?  Просто следом вылезет проверка ошибок, и это ещё три строки кода, а там уже и полэкрана.  То есть если лениво -- выходит плохо, а если по уму -- выходит куча строчек.

try {
    $f = new File('test.txt');
    $lines = array();
    while (($line = $f->read(array('filter' => 'trim'))) !== false) {
        $lines[] = $line;
    }
    ||
    $lines = $f->readAll(array('lines' => 'trim'));
    ||
    <you name>
} catch (Exception $e) {
    echo "Error: {$e->getMessage()}\n";
}

Так лучше? Класс File займет ровно 30 строк. Один раз на всю последующую жизнь. При желании можно закинуть в какой-нить PECL или ещё какой порноресурс. А можно и не закидывать бо там таких творений уже и так сотни лежат - выбирай не хочу. Его нет 'в базе'? Ну что ж. >90% полезных и реально используемых вещей и так нет 'в базе'. Независимо - в руби или в пэхапэ или в в прости господи перле. Замечу, что CPAN != 'base'.


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 20-Авг-10 00:36 
[как понимаю, s/'lines'/'filter'/]

>Так лучше?

В части обработки ошибок по крайней мере уже подешовле на целый файл. :)

>Класс File займет ровно 30 строк.

Ну так и вклеили бы, как раз полтора экрана и будет... и сравнение наглядное.

>Один раз на всю последующую жизнь.

Не-а.  Потому что сейчас это одна частная задача, завтра -- другая, ну и пошло-поехало -- изобретать Ruby на PHP.

>При желании можно закинуть в какой-нить PECL или ещё какой порноресурс.

...ну Вы поняли :)  Можно, конечно -- но детям такое на факультативе я рассказывать не буду, стыдно.  А рубишный вот всё раскачиваюсь почитать в родном lic145.kiev.ua.  Разумеется, рассказывая и про слабые стороны -- всё-таки глубокие циклы на интерпретаторе крутить не стоит.


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 20-Авг-10 00:50 
>[как понимаю, s/'lines'/'filter'/]
>
>>Так лучше?
>
>В части обработки ошибок по крайней мере уже подешовле на целый файл.
>:)
>

Сигнализация об ошибках через исключение - это всего лишь один из способов сигнализации об ошибках. И совсем не в руби или пхп его 'придумали'. И совсем не всегда он подходит а уж тем более является 'единственным правильным'. Так что от того, что я чуть-чуть перевел код в плоскость ООП он, код, не стал ни на йоту лучше. Впрочем, как и хуже. Оба примера *полностью* отвечают поставленным в изначальном ТЗ условиям. И, не имея каких-то дополнительных данных, их невозможно разделить на лучше/хуже. Они оба идентичны.

>>Класс File займет ровно 30 строк.
>
>Ну так и вклеили бы, как раз полтора экрана и будет... и
>сравнение наглядное.
>>Один раз на всю последующую жизнь.
>
>Не-а.  Потому что сейчас это одна частная задача, завтра -- другая,
>ну и пошло-поехало -- изобретать Ruby на PHP.

Сэр хочет сказать, что RTL руби (или любого другого языка) полностью покрывает его потребности к ф-ти, заложенной в предполагаемой области применения тех или иных объектов из RTL (в данном случае - доступа к файлам)? Завидую. Мне пока что не встречалась такая всеобъемлющая RTL. Всегда есть что-то, что не в писывается или отсутствует в 'стандартном' дизайне.

>>При желании можно закинуть в какой-нить PECL или ещё какой порноресурс.
>
>...ну Вы поняли :)  Можно, конечно -- но детям такое на
>факультативе я рассказывать не буду, стыдно.  А рубишный вот всё
>раскачиваюсь почитать в родном lic145.kiev.ua.  Разумеется, рассказывая и про слабые
>стороны -- всё-таки глубокие циклы на интерпретаторе крутить не стоит.


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 20-Авг-10 00:38 
>>>Для меня отличается -- потребление памяти на здоровом файле будет отличаться
>>>дословно в разы.
>>А на приведенном в оригинальном примере - не будет?
>
>Говорю, в моём примере идёт построчное чтение, обкусывание и набивка в массив.
> В Вашем -- сперва всасывается весь файл, потом куда-нить небось
>заскладируют временно массив от explode(), потом продублируют до конца рантайма в
>$lines.  Перед завершением чтения потребление памяти будет отличаться в (хорошо
>если)два..три(более вероятно) раза, и то если пробелов немного оказалось.  Где-то
>посредине различие будет ещё больше, но в абсолютных цифрах конец важней.

Вжжжжжжжик - блямс! - сказала японская пила и заглохла
Ага!!! - обрадовались русские мужики
(с) старый боян

Обычно при формировании тех или иных технических заданий указываются разумные граничные условия применимости. Ну хотя бы примерные. Хотя бы эмпирические, исходя из предполагаемой предметной области. Мы вот тут файлик читаем. В массив. На руби или на пыхе - не важно. А что там за файлик? Сколько он весит? И где мы его читаем? И как первое соотносится со вторым? Мы парсим нечто подконтрольно здесь-и-сейчас? Мы делаем что-то конкретно направленное но для реюза? А может мы делаем некий универсальный инструмент с неопределенными граничными условиями ибо мы их не знаем? Или что-то другое? А может мы вообще дураки, что пытаемся впихнуть его весь в память не суть важно как ибо ну не влезет апачевский лог с гугла.ком в память КПК вне зависимости от языка?

В каждом из случаев получится совершенно разный код. К нему требования совершенно разные. Причем не зависимо от используемого языка.


"Релиз языка программирования Ruby 1.9.2"
Отправлено Gular , 19-Авг-10 05:14 
Puppet вполне себе вменяемая и нужная вещь.

"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 09:37 
>Ценить свое время в ущерб времени пользователя - большое зло. Но факт
>заключается в том, что на ruby вообще ничего ценного не написано.
>А если напишут, это будет только грустно.

Из того что могло быть ценным для вас, ничего. Вам можно назвать массу продуктов полезных для меня, например, только вы ничего не поймете из этого. Не доросли еще, видимо.


"Релиз языка программирования Ruby 1.9.2"
Отправлено delirium , 19-Авг-10 20:45 
Мда, а как же redmine? Вроде многие используют.

"Релиз языка программирования Ruby 1.9.2"
Отправлено аноним , 18-Авг-10 23:19 
> UTF8-DoCoMo, UTF8-KDDI и UTF8-SoftBank

Это что за кодировски такие? Свой UTF, ни с чем не совместимый? Зачем поощрять такую ересь её поддержкой в языке?


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 00:06 
>Зачем поощрять такую ересь её поддержкой в языке?

Правильно, задавите заодно сам UTF-8 как неосновное представление юникода, пока вышли на охоту.


"Релиз языка программирования Ruby 1.9.2"
Отправлено аноним , 19-Авг-10 05:02 
>Правильно, задавите заодно сам UTF-8 как неосновное представление юникода, пока вышли на
>охоту.

Задавите себя, или вникайте в суть дискусси, прежде чем бред писать.


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 16:43 
>>Правильно, задавите заодно сам UTF-8 как неосновное представление юникода
>Задавите себя, или вникайте в суть дискусси, прежде чем бред писать.

На пальцах: "штатным" является UTF-16, а UTF-8 сам по себе кровавый хак ради облегчения жизни семибитус вульгарис L.  И вообще UTF-ы тоже хак по сравнению с UCS-ами.  Так будете их всех мочить или попкорн возвращать придётся? :)

С одной стороны -- понимаю Ваш довод, с другой -- а шо им делать остаётся: стандарты хороши тем, что есть из чего выбрать.  Мы тоже когда-то писали для каждого опсоса свой уникальный переходник, от XML-RPC до чего-то, документация к чему сквозила "настройкой бибисы".  Работать-то надо.


"Релиз языка программирования Ruby 1.9.2"
Отправлено аноним , 19-Авг-10 21:08 
>На пальцах: "штатным" является UTF-16, а UTF-8 сам по себе кровавый хак
>ради облегчения жизни семибитус вульгарис L.  И вообще UTF-ы тоже
>хак по сравнению с UCS-ами.  Так будете их всех мочить
>или попкорн возвращать придётся? :)

Это все бред, от вас другого и не ожидал, собственно. Если уж говорить о штатности, штатной будет только 32битная. UTF-16 это вообще бесполезная ересь.


"(offtopic) диалекты юникода"
Отправлено Michael Shigorin , 19-Авг-10 23:45 
>Если уж говорить о штатности, штатной будет только 32битная.
>UTF-16 это вообще бесполезная ересь.

Любезнейший, а идите-ка RTFM http://userguide.icu-project.org/unicode -- и прежде чем вопить "ересь", подумайте о полном адресном пространстве Unicode 2.0 в ~21 бит и о том, как часто нужны дополнительные пять, если пользоваться кодированием с переменной длиной представления символа.  Ну или сразу переходите на клингон, хоть выглядеть как-то будет. :)

PS: если что, мне UTF вообще несимпатичны.

PPS: и возвращаясь к теме обсуждения -- если Вы пишете сферических коней в вакууме, которые не интероперабельны вообще ни с чем по определению, ну так и возвращайтесь к ним.  А мы пожмём плечами, порадуемся за японцев и заодно -- что у нас NTT/DoCoMo нету вместе со своими кирпичами и диалектами.


"(offtopic) диалекты юникода"
Отправлено northbear , 21-Авг-10 11:06 
>PS: если что, мне UTF вообще несимпатичны.

Честно говоря, удивлен. Чем они так тебе не угодили?

Вообще мне тоже не очень понятно, в чем заключается специальная поддержка этих кодировок. Реализацией сортировки смайликов, что-ли?  


"(offtopic) диалекты юникода"
Отправлено Michael Shigorin , 21-Авг-10 20:11 
>>PS: если что, мне UTF вообще несимпатичны.
>Честно говоря, удивлен. Чем они так тебе не угодили?

Узостью заточки под обратную совместимость с ASCII за счёт всего остального мира.


"(offtopic) диалекты юникода"
Отправлено northbear , 23-Авг-10 14:18 
Э-э... А как бы ты хотел? Как сделал бы ты? Только не надо про заточку под украинскую кодировку. :)))

В любом случае ASCII это база для 90 процентов вычислительных платформ.

Если бы этой заточки бы небыло, то UTF-8 до сих пор был бы мертворожденной кодировкой или был бы еще одной трансазиатской кодировкой.
Понятно, что необходимость анализировать значение байта каждый раз, чтобы правильно обработать символ, это лишняя нагрузка на систему и геморрой, но это меньшее из зол на мой взгляд.


"(offtopic)"
Отправлено Andrey Mitrofanov , 23-Авг-10 14:29 
>Э-э... А как бы ты хотел? Как сделал бы ты?

Глобализация на дворе! ХХ1-ый век. Пора размер байта увеличивать. До 13-14, в военное время - 15-ти. Ну и биты тож немного %) подрихтовать.


"Релиз языка программирования Ruby 1.9.2"
Отправлено anonymous , 19-Авг-10 10:25 
В общем-то, эти кодировки используются японскими мобильными операторами для своей работы. По большей части там описаны символы всяких смайликов дополнительно к основной UTF8 (таки да, японцы настолько упороты, что напилили три несовместимых друг с другом конкурентных стандарта смайликов). Если вспомнить, что Руби пришла из Японии, то неудивительно, что данное нововведение они рассматривают как большую фичу.

"Релиз языка программирования Ruby 1.9.2"
Отправлено joke , 19-Авг-10 00:35 
толсто

"Релиз языка программирования Ruby 1.9.2"
Отправлено crank , 19-Авг-10 08:23 
В 1.9.2 из ruby.h удалили макрос STR2CSTR (который был obsolete со времен Ruby 1.6). Из-за этого на 1.9.2 перестал собираться ruby-odbc 0.99991. Фикс тривиальный, но неприятный осадок остался. На кой хрен удалять шлак в минорном релизе? Больше 5-ти лет оно там висело и никого не трогало, почему в 1.9.0 не удалили, а только теперь?

"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 09:43 
>В 1.9.2 из ruby.h удалили макрос STR2CSTR (который был obsolete со времен
>Ruby 1.6). Из-за этого на 1.9.2 перестал собираться ruby-odbc 0.99991. Фикс
>тривиальный, но неприятный осадок остался. На кой хрен удалять шлак в
>минорном релизе? Больше 5-ти лет оно там висело и никого не
>трогало, почему в 1.9.0 не удалили, а только теперь?

Все сразу не вычистишь. Тут скорее разработчику ruby-odbc надо по шапке дать. Когда он последний раз в исходники залазил?


"Релиз языка программирования Ruby 1.9.2"
Отправлено crank , 19-Авг-10 11:37 
>>В 1.9.2 из ruby.h удалили макрос STR2CSTR (который был obsolete со времен
>>Ruby 1.6). Из-за этого на 1.9.2 перестал собираться ruby-odbc 0.99991. Фикс
>>тривиальный, но неприятный осадок остался. На кой хрен удалять шлак в
>>минорном релизе? Больше 5-ти лет оно там висело и никого не
>>трогало, почему в 1.9.0 не удалили, а только теперь?
>
>Все сразу не вычистишь. Тут скорее разработчику ruby-odbc надо по шапке дать.
>Когда он последний раз в исходники залазил?

ruby-odbc - это вообще отдельный разговор :(

Я сетовал на потерю совместимости в минорном релизе. Было бы классно, если бы разработчики Ruby придерживались semantic versioning (http://semver.org/)


"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 12:50 
>Я сетовал на потерю совместимости в минорном релизе. Было бы классно, если
>бы разработчики Ruby придерживались semantic versioning (http://semver.org/)

Думаю, они стараются придерживаться. Имеет смысл обратить внимание разработчиков на этот косяк.

В данном случае, скорей всего, какой-нибудь вновь принятый, молодой, деятельный товарищ проявил излишнюю инициативу. Команда разработчиков это не не один человек, это группа ребят в разных концах земного шара, и зачастую говорящие на разных языках. Несогласование это обычное дело.


"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 09:49 
Актуальный релиз. С UTF'ом там до недавнего времени был легкий бардак, что мне казалось весьма странным, учитывая происхождение автора языка.
IPv6 - тоже в тему. Как раз начали потихоньку экспериментировать с IPv6 у себя в офисе. Пора уже осваивать...

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 16:46 
>Как раз начали потихоньку экспериментировать с IPv6
>у себя в офисе. Пора уже осваивать...

JFYI перед тем, как: http://netch.livejournal.com/tag/ipv6


"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 20:44 
М-да... Жесть. Будем читать вместо стивена кинга...

"Релиз языка программирования Ruby 1.9.2"
Отправлено Sugar , 19-Авг-10 11:41 
Кто подскажет, с чего лучше начать приобщаться к Ruby?

"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 12:16 
Сильно зависит от вашего опыта в программировании. На чем, сколько и какого рода приложения писали...  Ну и от нужд собственно. Какие задачи вам нужно решать.

"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 12:58 
Настоятельно рекомендую. Мне, кстати, в свое время, сильно помогла замечательная русскоязычная статья на RSDN: Ruby - новые грани.
http://www.rsdn.ru/article/ruby/ruby_edges.xml

Мне она понравилась тем, что там без лишней воды, кратко, но вполне понятно описаны основные вкусности Ruby.


"Релиз языка программирования Ruby 1.9.2"
Отправлено Sugar , 19-Авг-10 18:04 
>Настоятельно рекомендую. Мне, кстати, в свое время, сильно помогла замечательная русскоязычная статья
>на RSDN: Ruby - новые грани.
>http://www.rsdn.ru/article/ruby/ruby_edges.xml
>
>Мне она понравилась тем, что там без лишней воды, кратко, но вполне
>понятно описаны основные вкусности Ruby.

Ага, спасибо, интересная статейка, автор сходу показывает основные фишки Ruby.
Мне вот интересно, увидел что в Ruby тоже есть фигурные скобки, можно ли вместо этого:
  class MyClass
    def initialize
      @attr = ’value’
    end
  end

Писать вот так:
  class MyClass {
    def initialize {
      @attr = ’value’
    }
  }

Или такое в Ruby не приветствуется?


"Релиз языка программирования Ruby 1.9.2"
Отправлено Митра , 19-Авг-10 18:13 
Нет, так не получится,
{} используют в основном для границ блоков, хешей.

"Релиз языка программирования Ruby 1.9.2"
Отправлено Sugar , 19-Авг-10 18:24 
Спасибо, со скобками мне как-то привычнее

"Релиз языка программирования Ruby 1.9.2"
Отправлено Sugar , 19-Авг-10 17:57 
Опыт небольшой: паскаль в школе изучал, shell - немного админиские скрипты писал, как только немного вник в Perl, для себя понял, что shell - для чего-то чуть более грандиолзного, чем небольшие скрипты, адски сложен.
А вообще дело было так - хотел краем глаза глянуть Perl, в итоге ухнул с места в карьер, Вот щас изучаю Perl, пишу кое-что для себя, автоматизируюсь, на работе для начальства тоже написал полезные вещи.
И вот щас захотелось Rubi глянуть, говорят там ООП красивое, интересно , я вообще это ООП плохо понимаю, т.к. по образованию не прогаммист. =))

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 20:30 
>как только немного вник в Perl, для себя понял, что shell
>- для чего-то чуть более грандиолзного, чем небольшие скрипты, адски сложен.

Да, поскольку он не создавался как _язык_ программирования (и не умеет сколь-нибудь сложных структур данных).

Шелл хорош, когда нужно склеить уже существующие утилиты.  Особенно если пайпами.

>И вот щас захотелось Rubi глянуть, говорят там ООП красивое, интересно

Правду говорят.  Здесь есть такая штука как mixin'ы -- можно контролируемо наследовать свойства из нескольких мест: мы можем нарисовать модуль, в котором определены константами цвета, и другой, в котором определены формы и методы пусть нахождения площади и объёма -- и унаследовать в классе "мяч".  А потом порождать объекты класса "мяч", которые могут варьироваться по цвету и форме естественным образом.  И это гораздо лучше подходов как Java и прочих с простым наследованием, так и C++ и прочих с множественным :)

http://ruby.osdn.org.ua/pickaxe/html/tut_modules.html

>я вообще это ООП плохо понимаю, т.к. по образованию не прогаммист.
>=))

Ну как раз рубишный стиль тогда и стоит посмотреть, он ненавязчивый и голову не раскалывает.  Можете почитать эти главы для плавного введения и "поподробнее":

http://ruby.osdn.org.ua/pickaxe/html/intro.html
http://ruby.osdn.org.ua/pickaxe/html/tut_classes.html
http://ruby.osdn.org.ua/pickaxe/html/tut_methods.html

(вся книжка с оглавлением -- на http://ruby.osdn.org.ua/pickaxe/)


"Релиз языка программирования Ruby 1.9.2"
Отправлено Sugar , 20-Авг-10 18:02 
Спасибо большое за ссылочки.

"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 19-Авг-10 20:53 

>И вот щас захотелось Rubi глянуть, говорят там ООП красивое, интересно ,
>я вообще это ООП плохо понимаю, т.к. по образованию не прогаммист.
>=))

На счет ООП красивое, не знаю. Ruby это инструмент, типа топора. Можно срубить перекошенный сарай, а можно хоромы. Зависит от того в чьих руках инструмент.
Один из принципов Ruby: Красивый код - эффективный код.
С точки зрения поддержки и развития так оно и есть.

Вообще, мне в свое время тяжело дался переход от процедурной парадигмы программирования к объектной. Долго перестраивал мозги...


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 19-Авг-10 23:31 
> Один из принципов Ruby: Красивый код - эффективный код.

т.е. если перевести на язык конкретики то как всегда - 'разброд и шатание'. Ведь, согласитесь, кому-то нравятся стройные а кому-то - в теле. Кому-то высокие а кто-то без ума от умеренных. А некоторые вообще любят все, что шевелится. И каждый считает, что его выбор - вполне красив. И ведь каждый из них по-своему прав и отказать ему в его правоте нельзя. Или таки ребята уже вывели универсальную формулу красоты шо fits all?


"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 23:52 
>т.е. если перевести на язык конкретики то как всегда

Разные языки и -- внимание! -- сообщества поощряют разные стили.  Руби годится для довольно широкого диапазона выразительных подходов (а также и для невыразительных), некоторые пишут "по-алгольному", некоторые -- "по-перловому", но красивый код читывал и такой, и сякой.  Вот совсем некрасивого не припомню (на шелле это едва ли не правило, скажем -- см. Кернигана-Пайка для сравнения со средним по больнице скриптом).

PHP поощряет неряшливость, Perl -- неразборчивость, Java -- многословность, Python так вообще загоняет в прокрустово ложе пробельных символов.  Ruby действительно поощряет изящность кода и предоставляет множество хороших примеров.  Культура такая. :)

PS: но не универсальная серебряная пуля, ессно.


"Релиз языка программирования Ruby 1.9.2"
Отправлено klalafuda , 20-Авг-10 01:08 
> Разные языки и -- внимание! -- сообщества поощряют разные стили.  Руби годится для довольно широкого диапазона выразительных подходов (а также и для невыразительных), некоторые пишут "по-алгольному", некоторые -- "по-перловому", но красивый код читывал и такой, и сякой.  Вот совсем некрасивого не припомню (на шелле это едва ли не правило, скажем -- см. Кернигана-Пайка для сравнения со средним по больнице скриптом).

Наверное было бы неплохо как-то раскрыть термин 'сообщество XXX' и в последствии как-то конкретизировать возможные пути влияния этого сообщества на конкретного индивидуума. А то у меня взгляд теряется. Все такое вкусное - даже и не знаю, за что конкретно взяться чтобы пофлеймить.

> PHP поощряет неряшливость, Perl -- неразборчивость, Java -- многословность, Python так вообще загоняет в прокрустово ложе пробельных символов.  Ruby действительно поощряет изящность кода и предоставляет множество хороших примеров.  Культура такая. :)

У языка программирования как такового *нет* культуры. Это всего лишь набор жестко заданных сравнительно простых правил. Термин культура лежит чуть-чуть в другой плоскости. На уровне человека. И - нет, в данном случае 'язык не определяет сознание'. Это было сказано про чуть-чуть другие языки. Разве что сознание на столько узко, что столь простые по сути вещи как правила руби или пхп могут на него серьезно влиять. Но это - клинический случай.


"Релиз языка программирования Ruby 1.9.2"
Отправлено nuclight , 23-Авг-10 18:13 
>> Разные языки и -- внимание! -- сообщества поощряют разные стили.  Руби годится для довольно широкого диапазона выразительных подходов (а также и для невыразительных), некоторые пишут "по-алгольному", некоторые -- "по-перловому", но красивый код читывал и такой, и сякой.  Вот совсем некрасивого не припомню (на шелле это едва ли не правило, скажем -- см. Кернигана-Пайка для сравнения со средним по больнице скриптом).
>
>Наверное было бы неплохо как-то раскрыть термин 'сообщество XXX' и в последствии
>как-то конкретизировать возможные пути влияния этого сообщества на конкретного индивидуума. А
>то у меня взгляд теряется. Все такое вкусное - даже и
>не знаю, за что конкретно взяться чтобы пофлеймить.

А Вы попробуйте не флеймить, а подумать.

>> PHP поощряет неряшливость, Perl -- неразборчивость, Java -- многословность, Python так вообще загоняет в прокрустово ложе пробельных символов.  Ruby действительно поощряет изящность кода и предоставляет множество хороших примеров.  Культура такая. :)
>
>У языка программирования как такового *нет* культуры. Это всего лишь набор жестко
>заданных сравнительно простых правил. Термин культура лежит чуть-чуть в другой плоскости.
>На уровне человека. И - нет, в данном случае 'язык не
>определяет сознание'. Это было сказано про чуть-чуть другие языки. Разве что
>сознание на столько узко, что столь простые по сути вещи как
>правила руби или пхп могут на него серьезно влиять. Но это
>- клинический случай.

Есть у них культура. И да, именно что "язык влияет на сознание". Пусть не определяет, как с теми, другими, языками, но существенное влияние всегда оказывает. Именно потому что культура. Ибо язык есть не просто набор правил BNF, а явление, включающее в себя прежде всего сообщество людей. А у любого достаточно большого сообщества людей всегда есть культура в некоем виде. Том или ином. Иногда само такое сообщество называют "субкультура", слыхали, наверное?

Процитирую из приводившейся тут ссылки на статью "Ruby - новые грани":

"Вначале я программировал на Ruby в стиле C++, только пользуясь Ruby-новыми конструкциями. Более того, временами это было «через силу», мне очень не хватало статической типизации — диссонанс от того, что на новый язык переносилась философия старого языка.
А потом понемногу, по чуть-чуть, я оценил остальные особенности Ruby — как раз те, которые я описываю здесь. Мне потребовалось около девяти месяцев на то, чтобы разглядеть действительно наиболее яркие грани языка. А уже после того, как они четко обозначились, я стал решать задачи на Ruby, думая уже в терминах Ruby, а не C++.
Возможно, столь много времени потребовалось еще из-за того, что Programming Ruby [2] — это очень большая книга, которая посвящает читателя во все тонкости языка, но не расставляет акцентов. Однако при переходе с C++ на Ruby (как в моем случае) не столь важны конкретные особенности синтаксиса языка. Гораздо важнее осознать, как именно должно измениться мышление, чтобы при программировании на Ruby думать именно на Ruby, а не на C++. И, по-моему, мне еще не попадалась книга о Ruby, в которой делался бы акцент именно на этом."

Дополнительные иллюстрации к влиянию на мышление:
http://zay-note.blogspot.com/2008/01/blog-post.html
http://zay-note.blogspot.com/2007/05/blog-post_8260.html

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


"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 20-Авг-10 12:33 
>> Один из принципов Ruby: Красивый код - эффективный код.
>
>т.е. если перевести на язык конкретики то как всегда - 'разброд и
>шатание'. Ведь, согласитесь, кому-то нравятся стройные а кому-то - в теле.
>Кому-то высокие а кто-то без ума от умеренных. А некоторые вообще
>любят все, что шевелится. И каждый считает, что его выбор -
>вполне красив. И ведь каждый из них по-своему прав и отказать
>ему в его правоте нельзя. Или таки ребята уже вывели универсальную
>формулу красоты шо fits all?

В смысле разброд и шатание? Я там приводил пример с хоромами и сараем. По вашему топор это тоже разброд и шатание? Бред...

Красивый код это тот, глядя на который вы понимаете, что он делает. В этом смысле да, у каждого своя мера понимания "красивого" кода и это сильно зависит от опыта. Иной код может оценить только тот, кто разбирается в этом.

Все по молодости оценивают по мясу. Так сказать, у каждого своя идеальная функция распределения мяса, на заданных костях.  
А со временем приходит понимание, что многое добавляют ум, шарм и умение, как не странно. А это уже совсем другого рода функции. Впрочем не отменяющие первое.. :))


"Релиз языка программирования Ruby 1.9.2"
Отправлено northbear , 20-Авг-10 12:38 
Хочу добавить: Понимаете без дополнительных усилий.



"Релиз языка программирования Ruby 1.9.2"
Отправлено Sugar , 20-Авг-10 18:01 
Топор слишком прост для такого сравнения =))
Но да, согласен, что ЯП, особенно скриптовые, это всего лишь инструменты для достижения определенных целей. И инструмент может быть красивым.

"Релиз языка программирования Ruby 1.9.2"
Отправлено ASM , 19-Авг-10 12:22 
Programming Ruby 1.9
The Pragmatic Programmers’ Guide
                    Dave Thomas
                  with Chad Fowler
                    and Andy Hunt

"Релиз языка программирования Ruby 1.9.2"
Отправлено Митра , 19-Авг-10 12:27 
Как введение - http://www.ember.co.nz/files/resources/whys-poignant-guide-t...
Дальше - rdoc (документация с комплекта поставки).

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 16:55 
>Кто подскажет, с чего лучше начать приобщаться к Ruby?

Могу порекомендовать:
http://ruby.osdn.org.ua/seminar/ (1.6, краткое, старенькое, но по-русски)
http://ruby.osdn.org.ua/ltp/ (может быть слишком простое, но переведённое)
Если читаете по-английски, литературы достаточно много. (сам осваивал в т.ч. по первому изданию Programming Ruby, купленному в 2003)


"Релиз языка программирования Ruby 1.9.2"
Отправлено Sugar , 19-Авг-10 18:51 
>>Кто подскажет, с чего лучше начать приобщаться к Ruby?
>
>Могу порекомендовать:
>http://ruby.osdn.org.ua/seminar/ (1.6, краткое, старенькое, но по-русски)
>http://ruby.osdn.org.ua/ltp/ (может быть слишком простое, но переведённое)
>Если читаете по-английски, литературы достаточно много. (сам осваивал в т.ч. по первому
>изданию Programming Ruby, купленному в 2003)

Спасибо, вторая ссылочка для начинающих самое оно... =)


"Релиз языка программирования Ruby 1.9.2"
Отправлено Аноним , 19-Авг-10 16:59 
The book of Ruby тоже доставляет. Тем более она бесплатна )

"Релиз языка программирования Ruby 1.9.2"
Отправлено хзкто , 19-Авг-10 22:00 
Извиняюсь за оффтоп, но кто-нибудь знает как в сабже искаропки сортировать строки в не-ascii по алфавиту?
encoding у строк правильный, а руби всё-равно коллейшен не использует для них при сравнениях

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin , 19-Авг-10 23:26 
>как в сабже искаропки сортировать строки в не-ascii по алфавиту?

Гм, а в чём именно проблема?

$ ruby -e 'puts ["а","в","б"].sort'
а                
б
в
$ ruby -v    
ruby 1.9.1p376 (2009-12-07) [i586-linux-gnu]
$ echo $LC_CTYPE $LC_COLLATE      
ru_RU.UTF-8 ru_RU.UTF-8


"Релиз языка программирования Ruby 1.9.2"
Отправлено хзкто , 20-Авг-10 13:59 
попробуйте добавить в массив букву "ё". А то в UTF-8 все русские буквы кроме "ё" ("ё" идёт в самом конце) идут по алфавиту и сортируются правильно будут даже без кооллейшена, просто по коду символа. С другими кодировками всё намного хуже.

"Релиз языка программирования Ruby 1.9.2"
Отправлено Michael Shigorin guest , 20-Авг-10 14:48 
>попробуйте добавить в массив букву "ё".

Да, Вы правы, безобразие:

$ ruby -e 'puts ["ё","ж","и","к"].sort'
ж
и
к
ё


"Релиз языка программирования Ruby 1.9.2"
Отправлено Anton Sozontov , 31-Янв-11 17:14 
Да, и еще есть одна заминка:

ruby -e 'puts ("а".."я").to_a.inspect'

["а", "б", "в", "г", "д", "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я"]

Буквы "ё" нет...

Соответственно:

ruby -e 'puts "Фёдоров" =~ /\A[а-я\-\s]+\Z/i ? "Русская фамилия" : "Не русская"'

вернет "Не русская"