LINUX.ORG.RU

Предварительный релиз Ruby 1.9.0


0

0

Matz, автор языка Ruby, выпустил предварительный релиз Ruby 1.9.0, следующей версии языка программирования Ruby.

Дистрибутивы: ftp://ftp.ruby-lang.org/pub/ruby/1.9

Вот подборка с описанием отличий Ruby 1.9 от предшествующего Ruby 1.8: http://eigenclass.org/hiki/Changes+in...

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

Отлично, просто отлично.

Xeron
()

localhost / # irb19
irb(main):001:0> STDIN.set_encoding('utf-8')
=> #<IO:<STDIN>>
irb(main):002:0> STDIN.each{|line| p [line.size, line.length]}
hello
[6, 6]
привет
[7, 7]
=> #<IO:<STDIN>>


UTF-8 починили

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

2anonymous (*) (26.12.2007 1:09:00):

>> оно еще не умерло?

Оно не умерло, а стало намного шустрее на YARV и вылизаннее.

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

>Ой, что щас будет...

Рубы - гавно :(( ...

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

>так питон лучше, рубы фигня

А с точностью до наоборот !

Я вот писал на Python по мелочам скриптики, а потом попробовал Руби и предпочел его.

Ну задолбало меня выравнивать отступы в Python после того, как потрогаешь текст некошерным редактором !

Вот приладят к Руби реальный JIT - и будет полное счастье ! YARV, к сожалению, пока не настолько ускоряет.

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

> Ну задолбало меня выравнивать отступы в Python после того, как потрогаешь текст некошерным редактором !

Проблема надуманна. Снесите из системы некошерный редактор.

yk4ever
()

Лично мне не нравится направление развития Руби. Дрейфуют в сторону Перла. Куча разных синтаксисов для одних и тех же вещей. Это несерьёзно.

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

> Цветет и пахнет

Сейчас онанимусы объяснят, чем именно пахнет :)

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

> оно еще не умерло?

В самом деле, единственное что в руби нет, так это скорости. Если человек любит ООП и не любит руби, то мне его жаль... Это к психиатору.... :-D

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

> Проблема надуманна. Снесите из системы некошерный редактор.

зависимость от редактора (читаем: отступов) не нужна.

Xeron
()

неудобно, что Enumerable стали генерировать Enumerator вместо вызова inspect, как ранее. монгрель вроде запускается уже. Кайрашо!

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

> Вот приладят к Руби реальный JIT - и будет полное счастье ! YARV, к сожалению, пока не настолько ускоряет.

Это меня, кстати, давно умиляет. Когда говорят о языках, к которым ежу есть JIT, типа Java, C#, то сразу все кричат: "фу, отстой, тормозит, память жрёт". Когда речь заходит об обычных интерпритаторах, перспектива JIT вырисовавается в радужных тонах. :)

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

> оно еще не умерло?

Я уже похоронил эту дрянь. Питон рулит.

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

>> YARV, к сожалению, пока не настолько ускоряет.

Действительно, что за ерунда, ускорение в 5-10 раз, правда?

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

2yk4ever (*) (26.12.2007 2:28:21):

>> Лично мне не нравится направление развития Руби. Дрейфуют в сторону Перла. Куча разных синтаксисов для одних и тех же вещей. Это несерьёзно.

Это говорит только о том, что Вы не следите за развитием Руби вообще. Напротив, он дрейфует от Перла подальше.

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

2Xeron (*) (26.12.2007 2:36:53):

>> Проблема надуманна. Снесите из системы некошерный редактор.

> зависимость от редактора (читаем: отступов) не нужна.

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

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

В Basic одна строка - один оператор. И ничего - меньше точек с запятой и прочей быдло-пунктуации. В питоне тоже самое. Хотя могли конечно завершающие скобки сделать.

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

2anonymous (*) (26.12.2007 3:45:40):

>>> В Basic одна строка - один оператор. И ничего - меньше точек с запятой и прочей быдло-пунктуации. В питоне тоже самое. Хотя могли конечно завершающие скобки сделать.

И к чему это сказано? А я люблю кофе, хотя чай тоже ничего.

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

>Если человек любит ООП и не любит руби, то мне его жаль... Это к психиатору.... :-D

Если человек любит ООП ... то мне его жаль... Это к психиатору.... :-D

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

> Выкинули MRI, пересели на YARV, теперь ждём пока выкинут YARV и пересядем на Rubinius =)

Не фантазируйте. Рубинус сосёт. И будет сосать. Питонисты уже облажались с PyPy. Высокоуровневые VM не жгут.

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

> Если человек любит ООП и не любит руби, то мне его жаль... Это к психиатору.... :-D

В питоне оно чище, это ваше ООП.

yk4ever
()

Когда ж он херней перестанет страдать то.

New syntax for lambdas [VERY EXPERIMENTAL]

 a = ->(b,c){ b + c }
 a.call(1,2) # => 3

Note that this does not replace the traditional block syntax. Matz has already said the latter is here to stay, forever. The new syntax allows to specify default values for block arguments, since

 {|a,b=1| ... } 

is said to be impossible with Ruby's current LALR(1) parser, built with bison.

You can use the new syntax without parenthesis for the arguments:

 -> { }.call # => nil
 -> a, b  { a + b }.call(1,2) # => 3
 c = 1; -> a, b; c  { c = a + b }.call(1,2); c # => 1

It can get very tricky though:

 c = 2; -> ;c { c = 1 }.call; c # => 2

or even

 c = 2; -> *d ; c { d }.call(1,2,3) # => [1, 2, 3]
 c = 2; -> ; c { c = 1 }.call; c # => 2

.() and calling Procs without #call/#[] [EXPERIMENTAL]

You can now do:

a = lambda{|*b| b}
a.(1,2)		# => [1, 2]

Note that you need the period:

a = lambda{|*b| b}
a(1,2)	        # => 
               #           (eval):2: syntax error...
               #                         (a)(1,2)... 

   1. ~> -:2: undefined method `a' for main:Object (NoMethodError)

You can use any expression inside the parentheses:

(lambda{|a,b| a + b}).(1,2)		# => 3

.() will try to use #call no matter the receiver:

 "foo".(1,2)   # ~>  undefined method `call' for "foo":String (NoMethodError)



К стати где тут рубиновые защитники call подевались? 

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

> зависимость от редактора (читаем: отступов) не нужна.

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

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

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

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

> Это говорит только о том, что Вы не следите за развитием Руби вообще. Напротив, он дрейфует от Перла подальше.

А почему тогда TIMTOWTDI всё усугубляется и усугубляется?

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

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

не знаю не знаю - мне точка смолтолка больше травится чем pass питона.

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

2r (*) (26.12.2007 4:47:40):

>> Когда ж он херней перестанет страдать то. >> New syntax for lambdas [VERY EXPERIMENTAL]

Слова "VERY EXPERIMENTAL" понимаете?

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

pass вообще достаточно редкое явление, чтобы обращать на него хоть какое-то внимание

anonymous
()

это есть хорошо! еще вчера Matz порадовал сообщением, мол к 19:00 не успели, ждите к 23:00 :-)

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

по поводу YARV vs JIT -- проблемы жабы не из JIT-а растут, это-то как раз самая человеческая часть жабы. кстати, по моим замерам, на моем коде YARV дает приблизительно 3-х кратное ускорение, что впрочем тоже неплохо.

есть такое мнение, что следует ждать 1.9.1, или даже 2.0, потому как кодировки в 1.9.0 делались немного впопыхах и изкаробки он сейчас не умеет всего множества koi8, cp1251, etc.

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

> c = 2; -> *d ; c { d }.call(1,2,3) # => [1, 2, 3]

да, надеюсь это безобразие Matz уберет..

dmiceman ★★★★★
()

Зашибись, очень хорошо. Только вчера книжку "Хэла Фултона" "Програмирование на языке RUBY" купил.

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

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

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

> Зависимость от отступов нужна, потому что код, который хочет долго жить, должен быть читабельным. Нечитабельный код - одноразовый мусор.

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

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

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

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

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

> a = ->(b,c){ b + c }

Что-то мне не очень нравится -> перед списком аргументов. Вот например как в Erlang:
F = fun(A, B) -> A + B end.

Так мне кажется было бы лучше:

f = (a, b) -> { a + b }

Block local variables [EXPERIMENTAL]

d = 2
a = lambda{|;d| d = 1}
a.call()
d # => 2

';' - по моему не совсем подходящий символ.

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

> Так мне кажется было бы лучше:

предложи в ruby-talk или ruby-core. Matz человек отзывчивый, по крайней мере подумает над такой идеей.

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

>> Ну задолбало меня выравнивать отступы в Python после того, как потрогаешь текст некошерным редактором !

>Проблема надуманна. Снесите из системы некошерный редактор.

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

На самом деле если бы зависимость от отступов была опциональной и блоки можно было скобками выделять я бы с Pythona может быть и не ушел ...

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

>> зависимость от редактора (читаем: отступов) не нужна.

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

Ну ну писали мы уже на таком языке лет 20 назад ...

Фортран это был ...

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

>>> Ну задолбало меня выравнивать отступы в Python после того, как потрогаешь текст некошерным редактором !

>>Проблема надуманна. Снесите из системы некошерный редактор.

>Ну я то может и снес бы, но также нужно поступать всем, кому я раздаю свои скрипты.

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

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

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

Что тебе мешает писать через два пробела?

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

>>> Ну задолбало меня выравнивать отступы в Python после того, как потрогаешь текст некошерным редактором !

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

Так поздно уже объяснять - все те скрипты прекрасно живут на Руби :)

PS А кстати прекрасная вещь ruby-gsl (обертка для GNU Scientific Library)

А для Phyton что-то нету ее - проблемы с созданием расширений ?

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

>Ну задолбало меня выравнивать отступы в Python после того, как потрогаешь текст некошерным редактором !

Мсье неосилил vim? И замену табуляций пробелами? Очень жаль.

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

>Если человек любит ООП

Ждем адептов ФП. Ща объяснят, куда надо идти тем, кто любит ООП и кто такой Страуструп (о плюсах еще не говорили в этом треде, но это поправимо)

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

> PS А кстати прекрасная вещь ruby-gsl (обертка для GNU Scientific Library) > А для Phyton что-то нету ее - проблемы с созданием расширений ?

NumPy SciPy - не обертка, разработка для Python-а. Используется очень многими (в научном мире).

PS. хотя мне все равно больше Ruby нравиться.

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

>> PS А кстати прекрасная вещь ruby-gsl (обертка для GNU Scientific Library) А для Phyton что-то нету ее - проблемы с созданием расширений ?

Нет, скорее проблема с гуглом... http://pygsl.sourceforge.net/

Кроме того есть страница http://www.gnu.org/software/gsl/ где черным по белому написано "The interface was designed to be simple to link into very high-level languages, such as GNU Guile or Python"

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