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)

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

И в чем шутка? Если из ruby выкинуть все лишнее, добавить list comprehension и нормальный import (а не require уровня php) то получится python.

Ты сегодня в ударе.

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

Блоки, проки, лямбды таки лишние. Функций/методов вполне достаточно. А у тебя похоже ООП головного мозга.

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

ты читать вообще умеешь? спор был вызван утверждением про «сложную инсталляцию» и «крутые гемы», аргументом было кол-во текста описывающего инсталляцию джанго по сравнению с рельсами. кто из ас дурак?

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

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

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

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

val-amart ★★★★★
()

anonymous
3. Т.е. делать вызов с помощью () it's too mainstream?

Проц это не метод. А вот с методами в руби все хорошо, любое обращение к объекту - всегда вызов метода.

Подкину тебе ещё инфы. Кроме javascript на ноде есть coffeescript который смесь рубей, питона и js.

coffeescript к пистону никакого отношения не имеет трололололище)) coffeescript имеет куда большее отношение к руби, ибо первые версии транслятора были написаны на руби, а уже позже были переписаны на сам coffee, что как бы намекает :)

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

да я этот факт о себе и не скрываю ;) загляделся - sorry.

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

Можно ссылку на документацию?

Mystra_x64
>в документации отражено

Ссылку?

Ну вы что детишечки, не знаете где доку по руби смотреть бишарашки.

http://ruby-doc.org/core-1.9.3/String.html#method-i-split

If the limit parameter is omitted, trailing null fields are suppressed. If limit is a positive number, at most that number of fields will be returned (if limit is 1, the entire string is returned as the only entry in an array). If negative, there is no limit to the number of fields returned, and trailing null fields are not suppressed.

1.9.3-p194 :008 > 'a,b,c'.split(',',-1)
 => ["a", "b", "c"] 
1.9.3-p194 :007 > 'a,b,c,'.split(',',-1)
 => ["a", "b", "c", ""] 
1.9.3-p194 :009 > ',a,b,c'.split(',',-1)
 => ["", "a", "b", "c"] 
special-k ★★★
()
Ответ на: комментарий от anonymous

Функций/методов вполне достаточно.

Ты забыл уточнить «вполне достаточно мне». А вот мне недостаточно, т.к. я подозреваю, что нормальные люди выбирают подход и методологию для конкретной задачи, а не на основании «{blabla} достаточно!». Неудобно мне на лиспе писать то, что не лезет в его функциональщину, да и не мне одному.

Пока мои задачи решаются отлично на руби и с применением ООП я буду их использовать, а вы пока тут поспорьте о мёртвых академических языках или новомодных, но никому не нужных кложурах и функциональщине.

P.s. а «метод» кстати тоже из ООП понятие.

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

расскажите про проекты на пайтоне прикладные и не из веба и чтоб известные

Anaconda и Koji, Mercurial, Eve Online.

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

Угу. А list comprehension и отступы для выделения блоков тебе ничего не напоминают?

Coffeescript вообще-то упоминался как доказательство того что на ноде есть нормальный язык (конечно отладка то ещё удовольствие), а не как то что сoffeescript вышел из питона.

Помнится в ранних спорах python vs ruby рубисты часто кричали «семантические отступы отстой!». И тут вдруг рубироиды понаписывали haml, sass, coffeescript и притихли на тему отступов... WTF?

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

anonymous
И у рельс без сторонних gem'ов очень скудный функционал.

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

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

Ну хз кто там кричал, но в yaml они были изначально и некто не кричал еще до haml и др.

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

я нагуглил. нипонял.жпг. это как mvc и «паттерны» - если у тебя в голове каши нет, ты и так сам все напишешь как надо, а если есть - то скрыться за mvc и dci не выйдет.

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

Точнячок, нельзя просто так взять и установить джангу ;)

Раз уж я вернулся на этот типа сайт.

Remove any old versions of Django
If you are upgrading your installation of Django from a previous version, you will need to uninstall the old Django version before installing the new version.

ОМГ. Ох нельзя просто так взять и установить джангу...

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

ну круто, чо ещё сказать. В руби тоже есть такие, можно сделать свои обёртки вокруг сишных, что ты этим хотел сказать?

Аналоги NumPy, SciPy и matplotlib на Руби в студию, не томи!

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

ОМГ. Ох нельзя просто так взять и установить джангу..

Ага, нужно сделать pip install --upgrade Django

Это же так сложно и ужасно!

anonymous
()

А то что bundler появился позже venv и является кривым аналогом рубимэны умолчали. Та же история с easy_install/pip и gem.

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

Кудато не в ту степь батенька, вы паттерны каждый раз новые изобретаете под одинаковые зачали? Чето я вас непойму.

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

Клоунство это выкинуть элементарный функционал из фреймворка и наклепать 100500 джемов которые будут решать одну и ту же задачу. Что бы там не говорили но rails нельзя назвать full stack framework, и rails точно не micro framework. При одинаково скудной документации разобраться в python коде намного проще. Поэтому в рельсах и его джемах проблема с доками стоит особенно остро. Там же в коде везде магия и хипстерство, без бутылки не разберёшься...

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

В питоне нет нормальных лямбд, очень часто нехватает.

Ложь, с помощью анонимных функций все работает, вот пример нахождения расстояния между числами:

def make_distance(x):
    def do(y):
        res = x - y
        if res < 0:
            res = -res
        return res
    return do

# пример
#from2 = make_distance(2)
#print from2(1)

Как видно, ключевое слово lambda вообще не нужно, и разработчики Python давно высказываются, что оно удобно только для однострочников (по этой причине я его избегаю).

Для удобства понимания, тот же самый код на нейтральном Javascript (заметьте, все равно на одну строчку кода больше):

function makeDistance(x) {
  return function(y) {
    var res = x - y;
    if (res < 0)
        res = -res;
    return res;
  }
}

// пример
//var from2 = makeDistance(2);
//alert(from2(1));
anonymous
()
Ответ на: комментарий от anonymous

1 Каскажи где ты прочитал что rails это micro framework.
2 Конечно нельзя назвать full stack framework тыже унас спец по фремворкам, сколько фремворков известный разработа? Дай догадаюсь +100500.
3 Программисту на питоне гораздо проще разобраться в коде на питоне. Спасибо кэп.
4 так бухать нужно больше и все будет пучком.

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

хипстерство

Почему тебя весь тред так волнуют хипстеры? Тебе жена на молескин денег не даёт? :) Расслабься, поставь Rails и заебашь лук!

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

Зато чуть более нужнее чем раби http://habrahabr.ru/company/hh/blog/156803/

О да, привёл в пример вырванные из контекста поисковые запросы каких то людей из ДС. Следуя этой табличке 1C - язык нужнее и лучше и руби и питона? Так? Ох, жаль времени много уже, спать хочу. Но сколько радости мне доставил этот тред сегодня!

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

ДА! это пародия на gem, где может быть много версий библиотеки _одновременно_, а использоваться будет одна - нужная ;)

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

Ну ты и безграмотный... Конечно, всё что есть в Руби божественно, и такого не может быть нигде, а если где и есть, то там точно отстой, потому, что Руби лучше всех.

Ты про buildout вообще слышал?

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

1. Где я говорил что rails это «micro framework»? Я писал «rails точно не micro framework». 2. Не нужно быть конструктором чтобы отличить грузовик от легковушки. 3. Я бывший пхпшник который перешел на руби. 4. Стараюсь как могу.

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

Вообще они вряд ли как-то связаны :)) В rvm есть похожая штука. В rvm чего только нет блин..

Вот rack вдохновлен WSGI.

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

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

Поправка, последние годы идёт тенденция к увеличению использования функциональных языков.

paranormal ★★
()

И в python двумя командами можно создать пакет из шаблона или с указанными зависимостями через paster. Ruby как всегда, громче и медленнее всех =) Один ffi чего стоит.

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

Ложь

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

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

Функциональные языки использоваться будут. Это я как пророг говорю.

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

ДА! это пародия на gem, где может быть много версий библиотеки _одновременно_, а использоваться будет одна - нужная ;)

А для этого есть virtualenv и buildout. Зоопарк в глобальном пространстве не нужен.

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

Для удобства понимания, тот же самый код на нейтральном Javascript (заметьте, все равно на одну строчку кода больше):

Это потому что ты «if (res < 0)» и «res = -res;» на разных строчках написал, мог бы и дальше пойти, чо. Так-то вообще

var res = x - y;
return res < 0 ? res : -res
но не беда. А зачем это нужно? я могу передать это в параметре функции?

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

Может и пример покажите

paster create NAME — создаёт просто заготовку пакета

paster create NAME -t TEMPLATE — создаёт пакет из шаблона

pip search paster — покажет готовые шаблоны для большинства ситуаций

paster create NAME -p DEPS — создаёт пакет с зависимостями, можно указывать название или путь до egg

Ещё вопросы?)

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

paster create NAME -p DEPS — создаёт пакет с зависимостями, можно указывать название или путь до egg

Как установить зависимости?

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

пс

Для начала работы (мне же нужны эти либы локально).

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