LINUX.ORG.RU

Ruby 2.0.0 preview1

 


2

6

Анонсирован 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 ()
Последнее исправление: tazhate (всего исправлений: 2)

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

Теперь знаешь, так не пиши хрень, за чем дело стало?

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

ВНЕЗАПНО, воспользоваться venv?

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

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

Держать их в своих песочницах. Вообще в python-мире считается хорошей практикой, держать каждый разрабатываемый проект в своей песочнице.

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

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

И что мы всё про python в ветке о ruby.

У меня возник вопрос, как линейно в ruby записать логику на колбэках, в python можно через генераторы:

a = yield Task(get, opts)

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

Меня интересовал пример с массивом у анонимуса.

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

ВНЕЗАПНО, воспользоваться venv?

Скорее от безысходности, чем внезапно)

Держать их в своих песочницах.

ок, но ты же не написал этого раньше.

Так и как же в итоге используя песочницу
1) установить зависимости
2) прогнать тесты
?

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

1 - установить зависимости

2 - прогнать тесты

3 - ?????

4 - профит!!!

Как-то так оно работает. Без скобочек после цифр.

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

full stack framework потому что обеспечивает разработку тестирование и продакшен, в каждом из окружений свои особенности. Хотя окружений можно наклипать намного больше. Раскидали по gem'ам потому что так девелоперам удобней собирать конструктор.

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

Ну давай я тебе напишу, как это делается в руби (а то ты стесняешься). Для первой библиотеки

bundle install
rspec
А вот для второй библиотеки (сходу, без перекуров)
bundle install
rspec
Как сие сделать?

Заполнение setup.py и Gemfile приравнять можно.. весьма условно, т.к. Gemfile всегда используется для библиотек, вот где угодно создай Gemfile, и запусти bundle install !. Для всяких операций (задач) используется Rake.. так же, где угодно создай Rakefile, и запусти rake -T ! А для метаданных используется gemspec, у вас какое-то гомно скомканое в setup.py, но это не беда.. просто опиши свои действия для данной простейшей операции.

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

А вот если зависимости нужно самому вкрутить, то что делать? или он поуполчанию все пакеты берет которые установлены?

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

Какая из этих команд устанавливает библиотеки, а какая запускает тесты?

А у вас?

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

мда холивары холивары paster таже хрень что и Bundler только на питоне че спорить

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

Да вот пытаюсь выяснить у пистонщегов, но они похоже слились.

А у вас?

Ок, популярно..

Ситуация: У меня нет в системе нужных библиотек для двух моих проектов. Я хочу установить библиотеки и запустить тесты.

#Перехожу в директорию первого проекта.
#Устанавливаю библиотеки для первого проекта:
bundle install
#Запускаю тесты для первого проекта:
rspec
#Перехожу в директорию второго проекта.
#Устанавливаю библиотеки для второго проекта:
bundle install
#Запускаю тесты для второго проекта:
rspec
#profit
Как сие сделать в питоне?

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

> Ложь

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

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

В Python'е идеи лямбд реализуются с помощью nested-функций и/или ключевого слова lambda; с помощью этих двух вещей можно сделать все, для чего предназначены оригинальные лямбды. Очевидно, что ты этого не понимаешь, и продолжаешь требовать то, чего требовать невозможно.

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

Ок, популярно..

Мой косяк, забыл строчку python setup.py test

Если детально:

source env/bin/activate  # переходим в песочница
python setup.py develop  # устанавливаем зависимости
python setup.py test  # прогоняем тесты

Всё ещё жду ответа про инлайновые калбеки. Всё-таки кодп исать нужно чаще, чем что-то разворачивать.

anonymous
()

Товарищи рельсовики как мне в рельсах сделать форму в которой есть общие поля, а есть поля которые показываются в зависимости от выбранного значения в select'е формы? Интересует модель и валидаторы в ней. Товарищи джангисты как это делаете вы?

Еще вопросы к рельсовикам.

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

Посоветуйте gem для i18n так что бы его поставить и контенщики получили возможность править любые переводы через веб морду, а не в yaml файлах. Сторонние сервисы не предлагать.

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

source env/bin/activate # переходим в песочница

Как оно работает, создает какой-то фаил? В следующий раз мне надо заново запускать source env/bin/activate, python setup.py develop ?

python setup.py develop

Зачем библиотеки устанавливаются из setup.py, а так же из requerments.txt, и в каких случая использовать одно, а в каких другое?

Всё-таки кодп исать нужно чаще, чем что-то разворачивать.

Вот это-то как раз заблуждение, должно быть удобно и писать код, и разворачивать, и устанавливать библиотеки.

Всё ещё жду ответа про инлайновые калбеки.

Не очень понимаю, что ты имеешь ввиду, посмотри здесь ruby-doc.org/core-1.9.3/Enumerator.html, если останутся вопросы - спрашивай.

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

Вот это-то как раз заблуждение, должно быть удобно и писать код, и разворачивать, и устанавливать библиотеки.

Фуф, как-то лень копировать документацию, тут всё просто и понятно - http://www.virtualenv.org/en/latest/ и http://docs.python.org/2/library/distutils.html

Не очень понимаю, что ты имеешь ввиду, посмотри здесь ruby-doc.org/core-1.9.3/Enumerator.html, если останутся вопросы - спрашивай.

Не, я про ситуацию, когда нужно дёрнуть что-то асинхронное, например в python c tornado можно:

def get(self):
    result = yield Task(db.fetch, query)
    ...

Или прозрачно с gevent:

def get(self):
    result = db.fetch(query)
    ...

А в оригинале это:

def callback(result):
    ...

def get(self):
    db.fetch(query, callback)

Такое можно сделать не лесенкой в ruby? Сколько не смотрел, везде лесенка из колбеков, что сильно усложняет чтение сложной, но линейной логики.

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

Зачем библиотеки устанавливаются из setup.py, а так же из requerments.txt, и в каких случая использовать одно, а в каких другое?

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

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

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

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

ага у c++ хипстеров сингелтон. Как думаете зачем придумали паттрены.
1 чтобы программировать по строго паттернам?
2 чтобы быстро рассказать другому программисту что ты сделал и как там внутри?
какой из вариантов выбираете?

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

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

Что кстати символизирует.

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

Блин, посмотрел goliath, понятно почему cramp не развивают больше..

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

Ага, давай послушаем твой бред, клоун.

Будешь называть клоунами тех, кто больше знает - так и умрешь глупым.

tailgunner ★★★★★
()

Круто! Особенно учитывая, что курсы по руби значительно короче (ссылки за рекламу могут прокатить) и материал там на порядок многообразнее и веселее чем в питоне (в нем вообще рассказывать нечего, кроме как о методах как обойти ограничения). Ну и голову в руби потом не нужно ломать переходя с версии на версию (какие-то предсмертные судороги... насколько недалекоглядным должно быть проектирование языка, что бы через десяток лет существования и пяток лет популярности пришлось уже совместимость рушить???).

Для начинающих руби - самое то. Для того, что бы все стало ясно - можно просто сравнить даже короткое описание языков - http://preview.ruby-lang.org/ru/about/ vs http://www.python.org/about/ — сразу можно понять за чем будущее.
З.Ы. Питон был первым языком, но, как и многие, забыл о нем как о кошмаре. Не хочу громко утверждать - но такое же мнение у многих начинающих (хотя бы даже среди моих знакомых).

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

Сделать столько фейспалмов в одном треде еще никому не удавалось.

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

2 чтобы быстро рассказать другому программисту что ты сделал и как там внутри?

Проще код показать. Если другой программист не хипстер, то он так ещё быстрее поймёт.

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

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

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

Что кстати символизирует.

Говнокодеров, не читавших докементацию, везде большинство.

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

сразу можно понять за чем будущее

Прости на python пишут не только сайтики, поэтому документация серьёзней.

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

У python и ruby отличий настолько мало, что свитчерство можно считать глупостью.

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

Смотри внимательнее, не нужна тут песенка. Fiber это прерываемый (yield`ом) поток. Т.е. как пошел запрос - поток остановился, работает следующий поток. Внутри одного фибера операции выполняются последовательно. Сами фиберы обрабатываются последовательно, но не ждут ответа, а передают рантайм другому фиберу.

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

Fiber это прерываемый (yield`ом) поток.

Сорри, не заметил. Значит чалленж аццептед =)

Тогда из минусов ruby остались только мёртвые привязки к qt и gtk. И жуткость ffi в сравнение с ctypes.

Но для клепания сайтиков ror + стек из haml/sass/coffee всё-таки лучше django. Что-то сложнее уже проблемно.

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

Прости на python пишут не только сайтики, поэтому документация серьёзней.

Что ты называешь серьезной документацией? Вот я смотрю http://apidock.com/ruby и http://ruby-doc.org/core-1.9.3/ - выглядят серьезно, а http://docs.python.org/2/reference/index.html больше похоже на студенческую поделку. http://pypi.python.org/pypi/scipy/0.11.0 - где тут вообще ссылка на докуменатцию? А тут например все пучком http://rubygems.org/gems/rsruby так же как и тут https://www.ruby-toolbox.com/

Говнокодеров, не читавших докементацию, везде большинство.

Я привык считать, что если что-то работает не так как должно, то есть какая-то проблема и ее надо решить. В данном случае похоже, что питону не хватает (не устраивают) инструменты для сборки пакетов, с документацией, и пр. Это же все решаемые проблемы в конечном счете.

З.Ы. Питон был первым языком, но, как и многие, забыл о нем как о кошмаре. Не хочу громко утверждать - но такое же мнение у многих начинающих (хотя бы даже среди моих знакомых).

Тоже показатель. Нет дыма без огня.

У python и ruby отличий настолько мало, что свитчерство можно считать глупостью.

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

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

поэтому документация серьёзней

Ага, особенно философия - по твоему параметру «серьезности» ее к эзотерике отнести можно :) Вот одна из используемых мною дока руби - http://en.wikibooks.org/wiki/Ruby_programming_language
Будет пруф на большую серьезность доки по питону? Или просто поговорить?

У python и ruby отличий настолько мало, что свитчерство можно считать глупостью.

В случае _настолько малых_ различий ты считаешь глупостью и этот топик? Общая философия (которая, имхо, сильно влияет на направление развития) это уже не отличие? Синтаксис? Perl-100500-способов подойти к решению задачи в руби и топор-питон

У питона в философии есть одна знаковая строчка -

При этом практичность важнее безупречности.

Имхо, ее можно расшифровать «При этом очень субъективное Гвидо-понимание практичности важнее общего восприятия безупречности (а главное - даже стремления к ней)».

И да - «Хотя он поначалу может быть и не очевиден, если вы не голландец»... просто лол :) Хотя спорить с голландцами на всю голову.

Даже первая ссылка на «голландская логика» гуглем выдается -

В церкви такой-то состоится пасхальный концерт мужского хора...
....
ВХОД БЕСПЛАТНЫЙ"
А еще ниже:
«оплата на выходе».

Именно что питон - да-да, простой синтаксис и погнали вперед, уже потом поглядим что оно будет.

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

Тогда из минусов ruby остались только мёртвые привязки к qt и gtk.

Угу, гуи лучше на питоне и биндингов так же больше, в остальных же случаях (или если биндинги-таки есть), думаю, лучше выбирать руби. Гуи кстати.. есть же jruby еще, но я надеюсь мне не придется ничем таким заниматься))

И жуткость ffi в сравнение с ctypes.

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

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

Не спорю. Но сложно назвать это долгосрочным полноценным будущим.

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