LINUX.ORG.RU

Вышел Ruby 2.0.0

 , повод


2

3

Это свершилось! На двадцатилетие Ruby – вышел релиз … Очень символично. :)

Из новшеств:

  • Особенности в синтаксисе:
    • Keyword arguments
    • Module#prepend
    • %i — новый литерал для создание символьных массивов;
    • __dir__ — возвратит имя директории, в которой исполняется файл;
    • Кодировка UTF-8 по-умолчанию;
  • Встроенные библиотеки:
    • Новый движок регулярных выражений — Onigmo
    • Объектам Enumerator добавлен метод #size;
    • Enumerator#lazy
    • #to_h — новое соглашение о преобразовании в хэш;
  • Средства отладки:
  • Поддержка экспорта/импорта байткода;
  • Чистка кода, отсуствие устаревших библиотек;

Документация:

Наслаждайтесь программированием вместе с Ruby!

>>> Подробности

★★★★★

Проверено: tazhate ()
Последнее исправление: renya (всего исправлений: 6)

Ответ на: комментарий от Deleted

Выход новой версии «инновационного» ЯП при остсутствии навыков общения со стоящими ЯП

Лолшто? Семейство Лисп достаточно?

Reaper ★★
()
Ответ на: комментарий от Deleted

не совместимы также, как и алкоголь и жизнь

Алкоголь не совместим с жизнью только при больших передозировках.

loz ★★★★★
()
Ответ на: комментарий от science

Радостно и даже неожиданно :)

Недавно только пощупал RC и вот уже релиз.

Будем посмотреть - RC по моим замерам заметно прибавил в скорости, уделал все предыдущие версии заодно с Python-ом, Perl-ом. С Lua - по скорости получилось вровень.

AlexLorovitch
()
Ответ на: комментарий от GreenBag

А он и ограничен. Это ссылка. Мне кажется так ГОРАЗДО лучше чем при каждом вызове создавать новый list. А кому надо, тот просто a[:] пишет и все.

anonymous
()
Ответ на: комментарий от anonymous

Он все такой же медленный?

теперь он будет еще медленней ведь входящие параметры по умолчанию будут создаваться при КАЖДОМ вызове, а не при определении.

anonymous
()
Ответ на: комментарий от loz

Ну кроме того, что оно по умолчанию оно еще и имеет имя и если их несколько то можно писать по именам в любом нужном порядке. Кстати синтаксис a:b это точно упоротый придумал. Ладно a=b или a:=b Но a:b... А чего не a.b или a->b?

anonymous
()
Ответ на: комментарий от ins3y3d

Отличная статья, на примерах рассмотрены все ключевые изменения

Спасибо, и правда хорошая статейка.

Spirit_of_Stallman ★★★
()
Ответ на: комментарий от etwrq

На опеннете написано что в отличии от 1.9.0 это стабильная версия, готовая для внедрения

GanGSISoft ★★
()
Ответ на: комментарий от anonymous

Ты совсем дурак? Кто делает аргументы по-умолчанию мутабельными? Написал какую-то хрень...

anonymous
()
Ответ на: комментарий от special-k

А я было забеспокоился, что спешиал-к нет на первой странице...

anonymous
()
Ответ на: комментарий от anonymous

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

loz ★★★★★
()
Ответ на: комментарий от anonymous

Кто делает аргументы по-умолчанию мутабельными?

В питоне - никто, потому что все знают про эти грабли. Хотя нет, новички не знают и регулярно спотыкаются, а потом бегут плакаться на SO, где гуру-питонисты презрительно процеживают им сквозь губы «RTFM, newbie». В языках, где на месте аргументов по умолчанию грабли не расставлены - все желающие.

anonymous
()
Ответ на: комментарий от davinchi

Там использовались хэши, когда хотелось.

Deleted
()
Ответ на: комментарий от anonymous

В языках, где на месте аргументов по умолчанию грабли не расставлены - все желающие.

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

anonymous
()
Ответ на: комментарий от anonymous

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

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

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

Кстати, в ПиЧарме, например, есть даже инспекшон на эту тему.

anonymous
()
Ответ на: комментарий от true_admin

либо вычислялось заново

Ага, аргументы должны поддерживать не значения, а выражения по умолчанию.

baverman ★★★
()

Люблю Руби только за то, что на нём написан Github!

XVilka ★★★★★
()
Ответ на: комментарий от Spirit_of_Stallman

В дебиан стейбл не будет новых версий (чего-либо), только исправление багов. Можно попробовать sid, если хочется 2.0 на debian.

invokercd ★★★★
()
Ответ на: комментарий от anonymous

Анон считает, что таплы это должны быть, а не мутабельные списки.

Чем это мотивировано? Ограничениями питона?

true_admin ★★★★★
()
Ответ на: комментарий от anonymous

Аргументы у функций должны быть иммутабельными

Обоснуй почему.

anonymous
()

Очень символично. :)

И неожиданно! :D

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от true_admin

Это мотивировано тем, что функции не должны неявно изменять состояния.

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

есть in-place алгоритмы

true_admin ★★★★★
()
Ответ на: комментарий от AlexLorovitch

С lua - по скорости получилось вровень.

советую заодно сравнить с lua-jit

x4DA ★★★★★
()
Ответ на: комментарий от fmap

расскажи мне сказку на ночь. предисловие прочитал. давай главу 1-ую «попытка пруфа»

punya ★★
()
Последнее исправление: punya (всего исправлений: 1)
Ответ на: комментарий от Spirit_of_Stallman

Вот не знаю, зависимостей там не мало. В принципе можно поставить на визи из сида, это будет поинтереснее.

invokercd ★★★★
()

Хорошая новость. я на ruby только короткие скрипты пишу иногда, но язык мне нравится очень. Из современных скриптовых языков он, наверное, самый элегантный.

lucentcode ★★★★★
()
Ответ на: комментарий от Spirit_of_Stallman

Кстате, а оно может успеть еще попасть в 6й дэбиан?

А если и нет, что мешает пользоваться RVM?

iVS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.