LINUX.ORG.RU

Релиз Ruby 2.1

 


5

9

Прекрасный новогодний подарок преподнес Matz всем любителям и профессионалам программирования на языке Ruby — релиз Ruby 2.1. В целом новый выпуск языка и среды исполнения написанного на нем кода продолжает эволюционное развитие Ruby и практически не вносит кардинальных или ломающих изменений. Кроме того, что стандартный интерпретатор стал работать быстрее, заявлены следующие отличительные особенности Ruby 2.1:

  • Кэширование названий методов. Теперь когда интерпретатор встречает название какого-то метода объекта, он производит поиск этого метода, после чего сохраняет указатель на него в байткоде. Если у вас есть код, в котором для объектов одного и того же типа часто вызывается один и тот же метод, работа этого участка программы будет ускорена. Для проверки корректности сохраненного значения в кэше MRI использует внутренние счетчики потенциально опасных в плане инвалидации кэшированного метода действий.
  • Поддержка профайлинга кода на уровне MRI. Вы можете измерять производительность вашего кода и отслеживать работу сборщика мусора (благодаря подписке на события запуска/останова сборщика мусора и создания/удаления объектов).
  • Обновленный сборщик мусора RGenGC (с поколениями). Более подробно с ним можно ознакомиться в захватывающей презентации [pdf] с RubyConf.
  • Добавлены суффиксы i и r для записи комплексных чисел.
  • Определение функции (def) теперь возвращает символ ее названия вместо nil.
  • Работа над неоднозначностью объявления refinements, то есть расширения модуля или класса в пределах одного локального файла. Подробнее [pdf].
  • Наконец-то Array#to_h — создание хэша из массива.
  • Сокращение записи «замороженных» строк (str = «mystring"f).
  • Для ускорения операций над очень большими числами используется GMP (The GNU Multiple Precision Arithmetic Library).
  • Обновлены стандартные библиотеки BigDecimal, JSON, NKF, Rake, RubyGems и RDoc.
  • Удалена поддержка из коробки curses (гем curses теперь при необходимости надо установить отдельно).
  • А также многое другое! Подробный список изменений прилагается.

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

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

★★★★★

Проверено: Shaman007 ()
Последнее исправление: ymn (всего исправлений: 1)

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

Сильный всегда навязывает слабым свои обычаи. В чужой монастырь не стоит лезть со своим уставом. А лидерство западной цивилизации в нашем мире - неоспоримый факт.

lucentcode ★★★★★
()

Люблю ruby за ясность и приятный синтаксис. Правда, пишу на нем только лабы по КМЗИ, ну, и пару курсяков на нем запилил.

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

... не. Сомнений нет. Питон в клиенте. Я там выше ссылку дал. Там есть немножечко кода, так питоновский. С WinMain...

Про клиент сомнения - как раз по поводу графики.

В том-то и проблема. Изначально клиент ходил (я с 2004г. в игре) и под Linux при помощи Cedega. Потом (после утечки, ЕМНИП), они начали виндареть на всю голову. Туда изначально вкрячили DirectX, клиент переточили под Win/Mac OS X, выбросили Linux на помойку в 2009г., когда Cedega накрылась медным тазом -> Eve-Online: прекращение официальной поддержки Linux.

когда в EVE было глобальное столкновение, и была шумиха, мол как круто все это вот они выдержали.

Их было четыре (ЕМНИП) таких столкновения. Я участвовал в двух из них — C-J6MT и LXQ2-T. В обоих случаях было знатное лагалище и слайд-шоу. Влетаешь в систему через гейт, прицеливаешься, жмёшь «огонь», фигггаааккк... очнулся в клонилке. Слили и корабль и поднули (уничтожили капсулу пилота, она же «под», она же «яйцо») так же слили. Собственно, это должно быть затруднительно, т.к. сигнатура яйца с гулькин нос и его по идее, даже выцелить не всегда и не на всём можно.

По слухам, там что-то придумали со временем. Типа, как-то его «растягивать» на серверах и перераспределять мощности нодов кластера. Это было опробировано на зарубе в Asakai. Там пилот Титана ничтоже сумняшись звизданул его во вражеский сектор. Во всех случаях было где-то по три-четыре тысячи пилотов с каждой стороны. Я этого не видел, сказать ни чего не могу. По слухам, там разнесли кораблей на $24K или 700млрд. ISK.

Но на мой взгляд, всё решается несколько проще. Если ввести понятие «интерференции», то тогда при слишком большом по числу бортов или тоннажу флоте, она достигнет такого значения, что размер флота потеряет смысл. Просто потому, что из-за помех прицелиться никуда нельзя будет. Это нормальное явление. Вместо этого, с «проблемой русских альянсов», когда в систему прилетает «русский» флот из 30+ капов (титаны и супер-кэрриеры) плюс, мелочь на поддержке, решили бороться нерфя капшипы. Ну, тоже вариант, но применение физического явления было бы интереснее.

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

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

Ааа... что "всё"...

... здесь имеет смысл уточнить.

Но ведь они все сделали неправильно не так ли, почему же все вышло.. если они смогли потянуть такой проект на динамическом языке, о боже! неужели.. неужели иногда «производительные» нативные языки больше не нужны, неужели код на них сплошное нечитаемо говно полное утечек и костылей, неужели не нужно заново переписывать архитектуру каждый раз «чтобы потом уже не переписывать».. неужели!)

Вы хотя бы видели апдейты евы? Их объём представляете? И это ни фига не 5 и даже не 10 мегабайт. И это не только модели-графика-текстуры, а и код. Который зачем-то регулярно переписывают (видимо в тщетных попытках хоть что-то и хоть как-то соптимизировать). И чего только люди не придумают чтобы на С не писать? Под тот же оффтоп MinGW генерирует код хоть под Intel, хоть под AMD, с оптимизациями и прочими пирогами-плюшками.

Кстати, да. После одного из апдейтов я (как и Шаман, один из местных модераторов) завязал играть из-под wine. Там нет возможности использовать один из режимов — перемещения по базе в теле человека. Всё остальное... кхмм... относительно работает. Но именно относительно. Хотя да... питон. Динамический язык... Кросс-платформенный в силу своей интерпретируемой природы. И, по идее, должно быть по-фигу в какой системе он исполняется. Или что, DirectX не на питоне писан? Да как они осмелились?!? Это же «нечитаемое говно получается».

Видимо, special-k, Вы тоже исландский программист. Ну а аналогов, восходящих своими корнями к Elite всё-равно нет, так что, жрём что дают и не выдрючиваемся.

Кстати, вот тут ССР запустила новый проект — DUST 514. Это побегушки-пострелушки на планетах. Для PS/3, на двигле UT3. Правда, передать броне-трусы, броне-лифчик и ствол я пехотинцу не могу (хотя декларирована единая вселенная), но самое важное в том, что опять ССР осмелилась обойтись без костыльно-распорчатых динамических «езыгов».

И, по слухам, в 2014 должно выйти продолжение — EVE Valkyrie (EVE-VR), под Oculus Rift. Там всё ещё веселее будет. Как-никак FPS в прямом смысле слова на всю голову. Мыслю... на Ребе напишут? Или всё-таки на чём-то С-подобном?

Неужели ССР сама не рада что связалась с новомодными веяниями, если ССР Америца (EVE VR) как-то не шибко его норовит использовать?

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

На этом...

... только пародии писать. Собственно, eve это то самое исключение, которое подтверждает правила.

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

И что с того, что ты не осилил прочитать лучший ответ.

незнаю.

Еще раз, каких еще методов, ты вообще о чем.

о тех, что описаны по ссылке.

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

Начнём с того, что руби не умеет обратную совместимость между минорными версиями. Вот это офигенное достоинство xD

anonymous
()
Ответ на: На этом... от anonymous

Нет, исключение - это как раз нормальный софт, который пишут огромные корпорации. Софт же, написанный небольшими группами представляет из себя абсолютно жалкое зрелище и очень тормозит. И неплохой пример последнего, кстати, это иксы и линуксовые ДЕ:) Которые переписывают на что? Правильно - на js. ВНЕЗАПНО)) Ну такие дела, не осилили сышники за 20 лет ничего путевого написать.

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 2)
Ответ на: комментарий от special-k

А какое вам дело до не развитых государств? Волк тоже угнетает овец, а тигр и корову «угнетать» может. Такова жизнь. В обмен даже отсталые народы получают доступ к науке, культуре, достижениям медицины и фармацевтики(не бесплатно, конечно). Согласитесь, если бы не западная цивилизация - люди бы до сих пор от множества болезней мучились и умирали, приносили в жертву людей, и творили прочие непотребства. Да, просвещение никогда не проходит без крови(вспомним того же Петра I), но оно необходимо для блага «угнетаемых», которые ещё и недовольны чем-то. А ведь без лекарств, удобрений и техники уже давно бы червей кормили...

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

Волк тоже угнетает овец

А человек не может угнетать человека. И праздновать в один день с теми, кто этого не понимает - невероятно стремно.

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

Мне даже страшно помыслить...

... как именно на Вас смотрят gtk+ и Gnome. Поверьте, они очень нехорошо смотрят.

не осилили сышники

Совсем внезапно — и gtk+ и Gnome это... С.

Которые переписывают на что? Правильно - на js.

Mir и Wayland (если уж стандартные Х некузявы), это, по Вашим словам, JavaScript? Я правильно понял аббревиатуру JS? Если «да», то кто там к пациенту по-ближе, вызовите ему санитара-психиатра и санитара-проктолога. У него что-то одно из двух бомбануло — либо сверху, либо снизу... =)))

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

А вот шлангом...

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

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

США - исключение, но это светское государство, где каждый имеет возможность свободно верить(или не верить) во что угодно.

видимо, именно поэтому там запрещают преподавать в школах второй закон термодинамики (http://www.theonion.com/articles/christian-right-lobbies-to-overturn-second-l...) - он противоречит тому, во что верит какая-то часть населения сша. и именно поэтому там могут посадить за то, что ты преподаешь физику и учишь тому, чего достигла человеческая цивилизация.

anonymous
()
Ответ на: А вот шлангом... от anonymous

покажите мне реализацию DirectX на том же пистоне или Ребе

А покажи мне реализацию DirectX на том же си, кстати.

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

западная цивилизация

Эта та, которая дохла от чумы и жгла женщин на кострах, или какая-то другая..

Да, это та, которая всё это проделала ещё в прошлом тысячелетии.

Развёл танцпол.

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

для истинных лоровцев, кто не ходит по ссылкам, цитата:

«This is America,» said Duane Collins, a Gatlinburg, TN, distillery operator and father of five. «And in this country, we have the God-given right to change laws we don't think are Christian. We are united in our demands that the second law of thermodynamics be repealed, and our voice will be heard no matter what. That's just a plain fact, and nothing anybody says can ever change it.»

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

нет, я не сдался. я просто понял, что с маразмом нужно и можно бороться.

на ror можно слепить сайт, ни хера не понимая, что и как работает тупо следуя роликам на youtube.com. точно так же можно слепить сайтик, используя django. любой из них позволяет даже идиоту почувствовать себя «программистом».

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

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

любой из них позволяет даже идиоту почувствовать себя «программистом»

Тебя это расстраивает?

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

Тебя это расстраивает?

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

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

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

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

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

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

ты бы еще жаву предложил без IDE почитать

Справедливости ради можно отметить, что обязательность соответствия пакетов с классами и структуре директории проекта несколько упрощает задачу. :-)

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

Согласитесь, если бы не западная цивилизация

вы хоть описывайте периоды ;) думаю что без восточной цивилизации которая была задолго до западной, западной бы просто не существовало ;)

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

А один раз прописать эти опции в gemrc тебе религия не позволяет, да?

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

Когда атеистов и представителей религиозных меньшинств притесняли по всей «просвещённой Европе» - только в США они могли получить возможность жить по совести.

И в то же время в Америке активно преследовали своих родных мормонов.

В целом-то ты прав, но США были более светским государством по сравнению с Европой в позапрошлом веке. Сейчас дела с атеизмом в Старом Свете обстоят гораздо лучше. Докинз не преувеличивает, когда говорит, что атеисты в Штатах — самая бесправная группа.

Apple-ch ★★
()
Ответ на: комментарий от AlexKiriukha

Ох.. я рад, что в 2014, мы обсуждаем проблемы решенные в 2008 с рвением, будто это актуально. В целом я доволен. Один предложил писать DirectX на руби, другой вопит о проблемах поза-поза-прошлой ветки. Такими темпами руби не остановить:)

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 2)
Ответ на: комментарий от umren

Удачные периоды западной цивилизации тесно связаны с угнетением населения в своих и чужих государствах.

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

Ruby опжа

2.1.0p0 :013 > 'ruby опжа'.upcase => «RUBY опжа»

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

Забавно происходит подмена. Я считаю 1.8 крайне устаревшей и не актуальной версией, но единственное моё возражение было о примере с юникодом. Он не верный. Не более. Ну и показывает уровень понимания автором юникода, но это уже побочный эффект.

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

Та да, просто и так срачъ и упорин, не хватало нам ещё сюда php :-)

AlexKiriukha ★★★★
()
Ответ на: комментарий от special-k
Python 2.7.5 (default, Nov 12 2013, 16:45:54) 
[GCC 4.8.2 20131017 (Red Hat 4.8.2-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print u'ыыы'.upper()
ЫЫЫ

Школоло.

AlexKiriukha ★★★★
()
Ответ на: комментарий от special-k
$ python3
>>> 'ыыы'.upper()
'ЫЫЫ'

Посмотри еще java и javascript. Там тоже норм работает. И только в ruby нужно городить костыли...

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