LINUX.ORG.RU

Ruby 2.0.0 preview1

 


2

7

Анонсирован Ruby 2.0.0 preview1. Были включены новые фишки, которые делают разработку на Ruby ещё приятнее.

Анонсированные фичи:

  • Уточнения (Refinements) [1]
  • Именованные аргументы в методах (сахар над хэшем) [2]
  • Enumerator#lazy [3]
  • Module#prepend [4]
  • #to_h
  • %i, для массивов символов
  • Движок регулярных выражений изменён на Onigmo [5]
  • Поддержка DTrace [6] (не включено)

Пока что ещё не все новые фишки включены в Ruby, это откладывается на следующие анонсы.

Не забываем устанавливать и находить баги, это только сделает Ruby лучше.

Все программы, которые написаны на ruby-1.9 будут работать на ruby 2.0, если в них не будет особой магии.

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

anonymous

Проверено: tazhate ()

Ответ на: комментарий от nova-sport

философия

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

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

Здесь можно подробнее.

В ffi у ruby очень многое нужно делать руками + присутствуют нетривиальные проблемы с gil. Это, наверное, основная причина малого количества биндингов для ruby.

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

Сам не юзал, но плохого никто ничего не говорит, про gil сказано следующие

There may be situations where the callback function is another C function in the library. In this case it may not make any sense to retain the Ruby GIL when there is no need to protect the Ruby runtime from a thread race. Releasing the GIL will allow the Ruby runtime to (potentially) schedule another thread to run and complete more work. Luckily, FFI::Function allows us to optionally release the GIL by marking the callback as blocking. This setting only effects Ruby-to-native calls; it has no effect for native-to-Ruby calls.

Это, наверное, основная причина малого количества биндингов для ruby.

Я бы не сказал, что их мало, просто для питона больше. Разработчики сами решают поддерживать питон по каким-то, только им ведомым причинам, например здесь http://docs.geoserver.org/2.1.x/en/user/community/python/index.html, думаю, это следствие былой популярности питона, но, есть ощущение, что ситуация будет меняться в пользу руби и js в ближайшее время. Лично я не ощущаю нехватки биндингов. Единственно досадно, что в Blender python, (зато, например, в Sketchup ruby, но скетчап это не то конечно, и не для линукса..).

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

Знаю. Смоллток нужен, руби является его пародией и не нужен

buddhist ★★★★★ ()

Как-то пытался выучить ruby, чуть не блеванул от синтаксиса, остался на perl...

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

У меня есть модель User и мне для этой модели нужны формы (формы обновляют кучу полей из модели) PublicInfo, PrivateInfo и т.д.

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

paranormal ★★ ()

Не понимаю, зачем учить язык, единственная область применения которого — Rails? Вы так со времён РНР привыкли, что ли?

Мой выбор — Python.

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

Ну примерно так же... Но боюсь я не понял вопроса.

b = 2

=> 2

a = -> var {b = var * b}

=> #<Proc:0x00000802834780@(irb):36 (lambda)>

a.call(2)

=> 4

a.call(2)

=> 8

a.call(2)

=> 16

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

Открою тебе секрет, как правило из php выходят плохие рубисты... Но я думаю что это не проблемма языка ruby.

paranormal ★★ ()

У меня вопрос к апологетам Ruby. Назовите несколько не web проектов написанных на Ruby.

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

уже называли

ой да ну chef, puppet уже забыли. Metasploit который появился на ruby до того как массы про руби узнали. vagrant тоже идет лесом.

anonymous ()

Смотрю IDE для Ruby ни одной написанной на Ruby - все java. В python есть IDE написанные на python

yanka ★★ ()

Короче с Ruby все ясно на этом языке нет даже собственной IDE. О чем можно дальше говорить?

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

Это грустно. Но ты все-таки попробуй как-нибудь запустить Pharo или Squeak.

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

qtbindings вполне живые и вроде бы практически соответствуют pyqt4. на мой взгляд, самое существенное отличие — с pyqt4 идёт qtdesigner, с qtbindings он не ставится (хотя rbuic4 из коробки есть). ну так его и доставить можно, если сильно нужен.

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

Как-то пытался выучить ruby, чуть не блеванул от синтаксиса, остался на perl...
чуть не блеванул от синтаксиса
остался на perl

Хороший смех с утра - залог удачного дня.

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

guake яркий пример того что не надо на python-не писать всё что ни попадя.

Нахрен нужет терминал которые ест больше чем гном! Он у меня в top-е почти всегда первый в списке был.

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

Как-то пытался выучить ruby, чуть не блеванул от синтаксиса, остался на perl...

Что еще взять с белки -_-.

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

Как-то пытался выучить ruby, чуть не блеванул от синтаксиса, остался на perl...

Плюсую, синтаксис у руби какое-то особое извращенство.

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

Debian Python Applications Packaging Team

как угадал) горделивая надпись в профиле и «неосиляторский» ярлык на тех, кто предпочел что-то другое - эталонно, да. Кроме того, даже по твоей логике, если руби «осилить» легче чем питон (хотя мысль странная, конечно) - зачем питон? :)

nova-sport ()
Ответ на: комментарий от DELIRIUM

остался на perl...

Лол :) Очень субъективно, но если после perla не понравился ruby - есть подозрение, что уже ничего никогда не понравится. Это же почти что прямое эволюционирование!

nova-sport ()
Ответ на: комментарий от buddhist

А что так повеселило после смоллтока? (хорошо хоть, не пародией лиспа - а то топик еще бы на 100 страниц вырос бы...)

nova-sport ()
Ответ на: комментарий от yanka

Откуда такой неистовый бутхер?) Вот мне например пофигу выходит там питон, или не выходит..

А вообще руби относительно недавно стал шустр, до этого он был не так шустр, этим можно объяснить наличие отсутствия попыток запилить IDE (и другого убийства времени), кроме, может быть, redcar.

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

прямое эволюционирование — это perl6, который всё никак окончательно не выйдет. многие вещи там сделаны именно таким образом, чтобы и привычки не ломать, и приобщиться к новому миру. проблема в том, что пока его нет, немалая часть целевой аудитории уже убежала на руби (и ещё раз переучиваться на perl6 в гробу видала).

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

В первую очередь то, что кому-то понадобился смоллток, который как бы «не смоллток».

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

и ещё раз переучиваться на perl6 в гробу видала

Так вот нафиг такое эволюционирование. Насчет perl6 - про «ложку к обеду» вроде все знают.

nova-sport ()
Ответ на: комментарий от buddhist

Время показывает, что понадобился большому количеству «кому-то», думаю тут несколько факторов :

1. смоллток не поставили вовремя на рельсы,

2. синтаксис

nova-sport ()
Ответ на: комментарий от darislav

единственная область применения которого

стройная безумная теория питонистов

nova-sport ()

Феерический срач

Просто феерический срач слепого с глухим :( Один не понимает Python (и его инфраструктуру) и обсирает его, А другой не понимает Ruby (и его инфраструктуру) и обсирает его...

Пара замечаний:

Python имеет GC, и лично я считаю подсчёт ссылок, подкреплённый полной сборкой (т.е. определителем циклов или mark&sweep - это уже кому как больше нравится) гораздо более правильной стратегией, чем чистый mark&sweep, тем более, что в Ruby он самый примитивный (и только в 1.9.3 sweep стал инкрементальным)

Уважаемому защитнику Python-а я бы посоветовал собрать все рецепты по пользованию venv, pip и прочего в одну статью и выложить на хабре, поскольку даже пришедший в нашу рубишную команду опытный питонщик восхитился, насколько bundler совершеннее всего этого. Т.е. я как бы понимаю, что можно с помощью venv и pip сделать тоже самое, но как именно представляют себе только избранные.

О себе: начинал с Python и восхищался им. В какой-то момент нужно было быстро свалить с SQLServer+Access, и оказалось выучить Ruby+Rails быстрее, чем имея знания Python адаптировать Django. Синтаксис и семантика Ruby мне показалась более удобной и стройной. Однако я до сих пор уверен, что в плане реализации и внутренней строгости Python гораздо правильнее. И есть моменты в Ruby, которые меня бесят :) Если бы Ruby с самого начала был реализован также продуманно, как и Python, то ему не было бы равных среди скриптовых языков. (с другой стороны, тогда бы написание расширений для Ruby не было бы таким же лёгким, как сейчас) (эх, вот бы Cython (с его нынешним качеством, а не как Pyrex был) появился почти одновременно с Python)

funny_falcon ()
Ответ на: комментарий от nova-sport

так perl5 -> perl6 достаточно легко. просто если по пути ещё руби попадается, то это именно переучивание в два этапа.

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

я к тому, что если с ruby не хочется перейти на новый perl (на целевых задачах, со всем нужным в последнем) - то это какая-то медленная эволюция perl'a

nova-sport ()
Ответ на: комментарий от buddhist

кстати, какие можно посмотреть примеры применения смоллтока в плане сравнения с «пародийностью» руби? может, к примеру, web идет в ошибочном направлении и с python и с ruby?

nova-sport ()
Ответ на: Феерический срач от funny_falcon

гораздо правильнее.

ты про c код языка, или про сам язык?

И есть моменты в Ruby, которые меня бесят :)

К примеру?

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

Да и, как тебе рубиниус?

paranormal ★★ ()
Ответ на: комментарий от nova-sport

абсолютно согласен. единственное, куда хочется переходить в таких условиях — как ни странно, эрланг. с которым плохи две вещи: нет унифицированной среды разработки (есть несколько конкурирующих наборов утилит) и хреново с code reusage, если код не твой (да, есть четыре, что ли, пакетных менеджера, одинаково не решающих эту проблему). поэтому практичнее просто использовать ruby.

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

может, к примеру, web идет в ошибочном направлении и с python и с ruby?

web точно идёт в ошибочном направлении и без python и без ruby.

paranormal ★★ ()
Ответ на: Феерический срач от funny_falcon

Уважаемому защитнику Python-а я бы посоветовал собрать все рецепты по пользованию venv, pip и прочего в одну статью и выложить на хабре

Это все тщетно. У них нет такого контроля над версиями и беспроблемного запуска. Жить можно, если это можно назвать жизнью :) Но, собственно, что говорить-то. Ни у одного языка нет таких фишек. Это https://github.com/heroku/python-django-sample/blob/master/requirements.txt и это https://github.com/bryanesmith/ruby-on-rails-tutorial-sample-app/blob/master/... - совсем разные вещи, причем товарищ утверждал, что requirements.txt - это для слабаков, а вот в django помоему используется. Кстати это как раз нормально. Пошло отделение по типу Gemfile, я уже говорил здесь, что Rakefile, Gemfile, gemspec и bundler в одном файле - полный бред.

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