The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз языка программирования Ruby 1.9.2

18.08.2010 21:38

После 20 месяцев разработки представлен релиз языка программирования Ruby 1.9.2. Ruby - относительно молодой, мощный и динамический объектно-ориентированный язык программирования, отличающийся высокой эффективностью разработки программ и вобравший в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. По заявлению разработчиков, Ruby 1.9.2 проходит более 99% тестов из набора RubySpec, оценивающего обратную совместимость с прошлой версией языка.

В новой версии представлены следующие основные улучшения:

  • Добавлено более 60 новых методов для классов Array, Complex, Dir, Encoding, Enumerable, Enumerator, Float, File, Hash, IO, Kernel, Integer, Thread, Time и т.п.
  • Представлен новый API для работы с сетевыми сокетами, поддерживающий IPv6;
  • Добавлены новые кодировки, среди которых: Big5, SJIS-*, UTF8-DoCoMo, UTF8-KDDI и UTF8-SoftBank;
  • Реализован новый класс "Random", поддерживающий разнообразные генераторы случайных чисел;
  • Переписан код класса "Time", который теперь не зависит от типа time_t и не подвержен проблеме 2038 года;
  • Расширена поддержка регулярных выражений. В свойствах "\p{}" теперь игнорируются подчеркивания, пробелы и регистр символов, т.е. выражения "\p{ol chiki}" и "\p{Ol_Chiki}" отныне идентичны. В регулярных выражениях теперь обеспечена поддержка Unicode 5.2, но для Unicode следует использовать POSIX-классы символов и семантику "\p{}", под маски "\d", "\s" и "\w" по прежнему подпадают только ASCII-символы;
  • Сохраняемое в переменной "$:" значение более не включает текущую директорию;
  • Система динамического связывания DL, позволяющая организовать выполнение функций, написанных на других языках, переписана и теперь работает поверх библиотеки libffi (Foreign Function Interface).
  • Добавлена новая библиотека Рsych, которая выступает интерфейсом к libyaml и может быть использована вместо Syck для генерации и парсинга данных в формате YAML 1.1.


  1. Главная ссылка к новости (http://www.ruby-lang.org/en/ne...)
  2. OpenNews: Вышел MVC-фреймворк Ruby on Rails 2.3.8
  3. OpenNews: Началось тестирование бета-версии web-фреймворка Ruby on Rails 3.0
  4. OpenNews: Управление веткой Ruby 1.8.6 передано компании Engineyard
  5. OpenNews: Вышел Ruby 1.9.1, первый стабильный релиз ветки 1.9.x
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/27660-Ruby
Ключевые слова: Ruby
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (72) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:19, 18/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Незнаю как другие, а я Ruby перестал использовать как раз из-за этих пресловутых 99% совместимости с прошлой версией. Обратная совместимость должна быть 99.9999%, иначе получаем раскол, с кучей людей продолжающих сидеть на 1.8.6 и 1.9.1.
     
     
  • 2.7, Michael Shigorin (ok), 23:46, 18/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    1.9 -- pre-2.0 ветка, если мне склероз не изменяет.  А в 2.0 заведомо обещали, что будут ломать то, что вылезло всё-таки боком из 1.6/1.8.

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

     
     
  • 3.9, Аноним (-), 00:02, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >1.9 -- pre-2.0 ветка, если мне склероз не изменяет.  

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

     
     
  • 4.11, Michael Shigorin (ok), 00:08, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>1.9 -- pre-2.0 ветка, если мне склероз не изменяет.
    >1.9.0 был тестовым релизом, начиная с 1.9.1 пошли стабильные версии.

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

     
  • 2.23, northbear (??), 09:33, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Использовать Ruby? Ну-ну..
    Полагаю вы ничего более-менее серьезного на Ruby не написали, иначе бы знали, чем хорош Ruby.
     
     
  • 3.55, аноним (?), 21:06, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если бы вы что-то серьезное написали, знали бы, что такое совместимость.
     
     
  • 4.60, Michael Shigorin (ok), 23:27, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А мы плавали, знаем.  Похуже, чем у тикля, но и там бывает.
     
  • 4.72, northbear (??), 11:35, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Угу... В конце концов мозги человеку даются, чтобы думать. Если вы бездумно на продакшн систему ставите новые версии, то вы сами себе злобный буратино. Тем более что старые версии никто не отменял...

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

     

  • 1.2, Аноним (-), 22:53, 18/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Лучший язык ,для тех кто ценит свое время и любит качественно работать, стал еще лучше
     
     
  • 2.5, аноним (?), 23:21, 18/08/2010 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Ценить свое время в ущерб времени пользователя - большое зло. Но факт заключается в том, что на ruby вообще ничего ценного не написано. А если напишут, это будет только грустно.
     
     
  • 3.6, к (??), 23:27, 18/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да... Metasploit конечно же абсолютно ненужная штука.. Говорите за себя при таких заявках.
     
     
  • 4.15, аноним (?), 04:55, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Абсолютно ненужная, подтверждаю.
     
  • 3.8, Michael Shigorin (ok), 00:00, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хм, то есть если написанный скрипт будет отрабатывать не за секунду, а за минуту... большой текст свёрнут, показать
     
     
  • 4.49, klalafuda (?), 20:14, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот пример из загашника, слепленный за час или около того на коленке у заказчика и изредка пригождающийся мне и другим: http://fly.osdn.org.ua/~mike/works/misc/arp2dns+dhcp.rb

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

     
     
  • 5.51, Michael Shigorin (ok), 20:39, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да разумеется И на шелле тоже, только со структурами данных неинтересно вышло ... большой текст свёрнут, показать
     
     
  • 6.57, klalafuda (?), 21:37, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А не хотите баловства ради сваять за пару минут на любом другом скриптовом языке аналог вот такого фрагмента -- открыть файл, вытащить содержимое в 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));
    }

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

     
     
  • 7.61, Michael Shigorin (ok), 23:29, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Вид сбоку ни чем не отличается.

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

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

     
     
  • 8.63, klalafuda (?), 23:37, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    array_map и trim там не просто так А на приведенном в оригинальном примере - ... текст свёрнут, показать
     
     
  • 9.66, Michael Shigorin (ok), 00:15, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да-да, разумеется Говорю, в моём примере идёт построчное чтение, обкусывание ... большой текст свёрнут, показать
     
     
  • 10.67, klalafuda (?), 00:27, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    try f new File test txt lines array while line ... большой текст свёрнут, показать
     
     
  • 11.68, Michael Shigorin (ok), 00:36, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    как понимаю, s lines filter В части обработки ошибок по крайней мере уже ... текст свёрнут, показать
     
     
  • 12.70, klalafuda (?), 00:50, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сигнализация об ошибках через исключение - это всего лишь один из способов сигна... большой текст свёрнут, показать
     
  • 10.69, klalafuda (?), 00:38, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вжжжжжжжик - блямс - сказала японская пила и заглохла Ага - обрадовались рус... большой текст свёрнут, показать
     
  • 3.19, Gular (ok), 05:14, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Puppet вполне себе вменяемая и нужная вещь.
     
  • 3.24, northbear (??), 09:37, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Ценить свое время в ущерб времени пользователя - большое зло. Но факт
    >заключается в том, что на ruby вообще ничего ценного не написано.
    >А если напишут, это будет только грустно.

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

     
  • 3.53, delirium (ok), 20:45, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Мда, а как же redmine? Вроде многие используют.
     

  • 1.4, аноним (?), 23:19, 18/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > UTF8-DoCoMo, UTF8-KDDI и UTF8-SoftBank

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

     
     
  • 2.10, Michael Shigorin (ok), 00:06, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Зачем поощрять такую ересь её поддержкой в языке?

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

     
     
  • 3.18, аноним (?), 05:02, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Правильно, задавите заодно сам UTF-8 как неосновное представление юникода, пока вышли на
    >охоту.

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

     
     
  • 4.39, Michael Shigorin (ok), 16:43, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>Правильно, задавите заодно сам UTF-8 как неосновное представление юникода
    >Задавите себя, или вникайте в суть дискусси, прежде чем бред писать.

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

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

     
     
  • 5.56, аноним (?), 21:08, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >На пальцах: "штатным" является UTF-16, а UTF-8 сам по себе кровавый хак
    >ради облегчения жизни семибитус вульгарис L.  И вообще UTF-ы тоже
    >хак по сравнению с UCS-ами.  Так будете их всех мочить
    >или попкорн возвращать придётся? :)

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

     
     
  • 6.64, Michael Shigorin (ok), 23:45, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Любезнейший, а идите-ка RTFM http userguide icu-project org unicode -- и прежд... большой текст свёрнут, показать
     
     
  • 7.80, northbear (??), 11:06, 21/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >PS: если что, мне UTF вообще несимпатичны.

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

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

     
     
  • 8.81, Michael Shigorin (ok), 20:11, 21/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Узостью заточки под обратную совместимость с ASCII за счёт всего остального мира... текст свёрнут, показать
     
     
  • 9.82, northbear (??), 14:18, 23/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Э-э А как бы ты хотел Как сделал бы ты Только не надо про заточку под украи... текст свёрнут, показать
     
     
  • 10.83, Andrey Mitrofanov (?), 14:29, 23/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Глобализация на дворе ХХ1-ый век Пора размер байта увеличивать До 13-14, в во... текст свёрнут, показать
     
  • 2.29, anonymous (??), 10:25, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В общем-то, эти кодировки используются японскими мобильными операторами для своей работы. По большей части там описаны символы всяких смайликов дополнительно к основной UTF8 (таки да, японцы настолько упороты, что напилили три несовместимых друг с другом конкурентных стандарта смайликов). Если вспомнить, что Руби пришла из Японии, то неудивительно, что данное нововведение они рассматривают как большую фичу.
     
  • 2.14, joke (?), 00:35, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    толсто
     

  • 1.21, crank (ok), 08:23, 19/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В 1.9.2 из ruby.h удалили макрос STR2CSTR (который был obsolete со времен Ruby 1.6). Из-за этого на 1.9.2 перестал собираться ruby-odbc 0.99991. Фикс тривиальный, но неприятный осадок остался. На кой хрен удалять шлак в минорном релизе? Больше 5-ти лет оно там висело и никого не трогало, почему в 1.9.0 не удалили, а только теперь?
     
     
  • 2.26, northbear (??), 09:43, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >В 1.9.2 из ruby.h удалили макрос STR2CSTR (который был obsolete со времен
    >Ruby 1.6). Из-за этого на 1.9.2 перестал собираться ruby-odbc 0.99991. Фикс
    >тривиальный, но неприятный осадок остался. На кой хрен удалять шлак в
    >минорном релизе? Больше 5-ти лет оно там висело и никого не
    >трогало, почему в 1.9.0 не удалили, а только теперь?

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

     
     
  • 3.31, crank (ok), 11:37, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>В 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/)

     
     
  • 4.37, northbear (??), 12:50, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Я сетовал на потерю совместимости в минорном релизе. Было бы классно, если
    >бы разработчики Ruby придерживались semantic versioning (http://semver.org/)

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

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

     

  • 1.28, northbear (??), 09:49, 19/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Актуальный релиз. С UTF'ом там до недавнего времени был легкий бардак, что мне казалось весьма странным, учитывая происхождение автора языка.
    IPv6 - тоже в тему. Как раз начали потихоньку экспериментировать с IPv6 у себя в офисе. Пора уже осваивать...
     
     
  • 2.41, Michael Shigorin (ok), 16:46, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Как раз начали потихоньку экспериментировать с IPv6
    >у себя в офисе. Пора уже осваивать...

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

     
     
  • 3.52, northbear (??), 20:44, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    М-да... Жесть. Будем читать вместо стивена кинга...
     

  • 1.32, Sugar (ok), 11:41, 19/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто подскажет, с чего лучше начать приобщаться к Ruby?
     
     
  • 2.34, northbear (??), 12:16, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сильно зависит от вашего опыта в программировании. На чем, сколько и какого рода приложения писали...  Ну и от нужд собственно. Какие задачи вам нужно решать.
     
     
  • 3.38, northbear (??), 12:58, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Настоятельно рекомендую. Мне, кстати, в свое время, сильно помогла замечательная русскоязычная статья на RSDN: Ruby - новые грани.
    http://www.rsdn.ru/article/ruby/ruby_edges.xml

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

     
     
  • 4.45, Sugar (ok), 18:04, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Настоятельно рекомендую. Мне, кстати, в свое время, сильно помогла замечательная русскоязычная статья
    >на 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 не приветствуется?

     
     
  • 5.46, Митра (?), 18:13, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, так не получится,
    {} используют в основном для границ блоков, хешей.
     
     
  • 6.47, Sugar (ok), 18:24, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо, со скобками мне как-то привычнее
     
  • 3.44, Sugar (ok), 17:57, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Опыт небольшой: паскаль в школе изучал, shell - немного админиские скрипты писал, как только немного вник в Perl, для себя понял, что shell - для чего-то чуть более грандиолзного, чем небольшие скрипты, адски сложен.
    А вообще дело было так - хотел краем глаза глянуть Perl, в итоге ухнул с места в карьер, Вот щас изучаю Perl, пишу кое-что для себя, автоматизируюсь, на работе для начальства тоже написал полезные вещи.
    И вот щас захотелось Rubi глянуть, говорят там ООП красивое, интересно , я вообще это ООП плохо понимаю, т.к. по образованию не прогаммист. =))
     
     
  • 4.50, Michael Shigorin (ok), 20:30, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >как только немного вник в 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/)

     
     
  • 5.78, Sugar (ok), 18:02, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо большое за ссылочки.
     
  • 4.54, northbear (??), 20:53, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/

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

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

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

     
     
  • 5.62, klalafuda (?), 23:31, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Один из принципов Ruby: Красивый код - эффективный код.

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

     
     
  • 6.65, Michael Shigorin (ok), 23:52, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >т.е. если перевести на язык конкретики то как всегда

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

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

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

     
     
  • 7.71, klalafuda (?), 01:08, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Наверное было бы неплохо как-то раскрыть термин сообщество XXX и в последствии... большой текст свёрнут, показать
     
     
  • 8.84, nuclight (ok), 18:13, 23/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А Вы попробуйте не флеймить, а подумать Есть у них культура И да, именно что ... большой текст свёрнут, показать
     
  • 6.73, northbear (??), 12:33, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >> Один из принципов Ruby: Красивый код - эффективный код.
    >
    >т.е. если перевести на язык конкретики то как всегда - 'разброд и
    >шатание'. Ведь, согласитесь, кому-то нравятся стройные а кому-то - в теле.
    >Кому-то высокие а кто-то без ума от умеренных. А некоторые вообще
    >любят все, что шевелится. И каждый считает, что его выбор -
    >вполне красив. И ведь каждый из них по-своему прав и отказать
    >ему в его правоте нельзя. Или таки ребята уже вывели универсальную
    >формулу красоты шо fits all?

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

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

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

     
     
  • 7.74, northbear (??), 12:38, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Хочу добавить: Понимаете без дополнительных усилий.


     
  • 5.77, Sugar (ok), 18:01, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Топор слишком прост для такого сравнения =))
    Но да, согласен, что ЯП, особенно скриптовые, это всего лишь инструменты для достижения определенных целей. И инструмент может быть красивым.
     
  • 2.35, ASM (??), 12:22, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Programming Ruby 1.9
    The Pragmatic Programmers’ Guide
                        Dave Thomas
                      with Chad Fowler
                        and Andy Hunt
     
  • 2.36, Митра (?), 12:27, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Как введение - http://www.ember.co.nz/files/resources/whys-poignant-guide-to-ruby.pdf
    Дальше - rdoc (документация с комплекта поставки).
     
  • 2.42, Michael Shigorin (ok), 16:55, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Кто подскажет, с чего лучше начать приобщаться к Ruby?

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

     
     
  • 3.48, Sugar (ok), 18:51, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>Кто подскажет, с чего лучше начать приобщаться к Ruby?
    >
    >Могу порекомендовать:
    >http://ruby.osdn.org.ua/seminar/ (1.6, краткое, старенькое, но по-русски)
    >http://ruby.osdn.org.ua/ltp/ (может быть слишком простое, но переведённое)
    >Если читаете по-английски, литературы достаточно много. (сам осваивал в т.ч. по первому
    >изданию Programming Ruby, купленному в 2003)

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

     

  • 1.43, Аноним (-), 16:59, 19/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    The book of Ruby тоже доставляет. Тем более она бесплатна )
     
  • 1.58, хзкто (?), 22:00, 19/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Извиняюсь за оффтоп, но кто-нибудь знает как в сабже искаропки сортировать строки в не-ascii по алфавиту?
    encoding у строк правильный, а руби всё-равно коллейшен не использует для них при сравнениях
     
     
  • 2.59, Michael Shigorin (ok), 23:26, 19/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >как в сабже искаропки сортировать строки в не-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

     
     
  • 3.75, хзкто (?), 13:59, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    попробуйте добавить в массив букву "ё". А то в UTF-8 все русские буквы кроме "ё" ("ё" идёт в самом конце) идут по алфавиту и сортируются правильно будут даже без кооллейшена, просто по коду символа. С другими кодировками всё намного хуже.
     
     
  • 4.76, Michael Shigorin guest (?), 14:48, 20/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >попробуйте добавить в массив букву "ё".

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

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

     
     
  • 5.85, Anton Sozontov (?), 17:14, 31/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да, и еще есть одна заминка:

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

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

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

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

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

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру