LINUX.ORG.RU

Вышел Ruby 1.8.7

 ,


0

0

Вышло очередное обновление ветки 1.8 языка программирования Ruby.

Данное обновление содержит большое количество исправлений, а так же заимствований из ветки 1.9. Но при этом сохраняет высокий уровень стабильности и обратной совместимости с предыдущими релизами 1.8.*

Список изменений: http://svn.ruby-lang.org/repos/ruby/t...

Скачать можно отсюда: ftp://ftp.ruby-lang.org/pub/ruby/1.8

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

пля, пишите time, а то накой смысл, или типа побольше способов?

Кстати, из всех способов решения фибоначчи, питон уделал руби.))

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

2anonymous (*) (02.06.2008 11:15:55):

> for i in xrange(n):
>   do_somth
>
> n.times{ do_somth }
>
> Если вам первый вариант яснее, то мне вас жаль, вы отупели от своего питона.

Пример наиглупейший. Первая конструкция, действительно, яснее, потому что это синтаксическая конструкция работы с итераторами. Вторая же просто вызов функции times. На фоне тьмы прочих вызовов функций ничем не выделяется. Чем удобнее и яснее-то?

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

2eao197 (*) (02.06.2008 13:24:42):

>> Что такого удобного в Руби?

> Все есть объект.

Тоже и в Python.

> Все динамично (в run-time меняются методы, классы).

И в Python всё динамично.

> Блоки кода.

Это особенность языка. Python прекрасно без неё живёт. Другой подход.

> Корректность программы не зависит от вида и количества лидирующих пробелов в строке.

Но зависит от, скажем, удалённых возвратов кареток. И что теперь?

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

Это минус, а не плюс. Затрудняет читабельность кода и его поддержку.

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

2black7 (*) (02.06.2008 15:26:42):

>> Python3K очень хорош. На мой взгляд Python правильно эволюционирует.

> неужели отступы сделали опциональными?

К счастью, нет.

>> Постепенно отходит от Perlовской синтаксической чертовщины

> это мода что ли такая, ущербные и тупые диктуют умным
> как им лучше жить? не осилил - сдохни молча в корчах

Это ты, кто говорил про хамоватое быдло? В зеркало давно смотрел?

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

2black7 (*) (02.06.2008 15:41:58):

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

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

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

А для тех, кто работал и работает с крупными проектами это более,
чем очевидно -- возможность сделать что-то несколькими способами
затрудняет понимание кода. Пусть от этого тащатся geeks and nerds.
Оставим это мозговое занятие для них.

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

2anonymous (*) (02.06.2008 16:51:22):

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

Вы это выдаёте за плюс языка? Создать кучу вариантов для описания
одной задачи? Я же это считаю минусом. И мой опыт показывает,
что я прав. У меня нет желания увидев один вариант, затем другой, затем
третий, разбираться в том, что, ОКАЗЫВАЕТСЯ, всё это было для одной
и той же задачи только потому, что рубистам нравятся разные варианты.

> Когда же показывают код на руби, питоносты орут, вот все наше
> многомилионное сообщество живет и процветает без таких извратов,
> значит это и ненужно вовсе.

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

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

>>> Что такого удобного в Руби? 

>> Все есть объект. 

>Тоже и в Python. 

Да ну?:

ActivePython 2.4.1 Build 247 (ActiveState Corp.) based on
Python 2.4.1 (#65, Jun 20 2005, 17:01:55) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 1.abs
  File "<stdin>", line 1
    1.abs
        ^
SyntaxError: invalid syntax

Что, цифра 1 не объект?
А вот в Ruby -- объект:

irb(main):001:0> 1.abs
=> 1
irb(main):002:0>

>> Все динамично (в run-time меняются методы, классы). 

> И в Python всё динамично. 

Можно увидеть, как в Python сменить реализацию уже существующего метода?

>> Блоки кода. 

> Это особенность языка. Python прекрасно без неё живёт. Другой подход. 

Именно. Но не всем он нравиться. Кому не нравиться -- те используют Ruby или SmallTalk.

>> Корректность программы не зависит от вида и количества лидирующих пробелов в строке. 

> Но зависит от, скажем, удалённых возвратов кареток. И что теперь?

А Python здесь чем-то лучше?

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

> Можно увидеть, как в Python сменить реализацию уже существующего метода?

А на слово ты джентельменам не веришь? 8)

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

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

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

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

Питон это настоящий бич, единственный скриптовый язык где перемешаны все соглашения по оформлению кода, если бы не форматирование табами то был бы вообще пиздец. Хз почему так.

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

>>> a.b = lambda self: 2

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

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

> Что такого удобного в Руби?

Простая и удобная, как 3 копейки, система ОО, достаточная для скриптового языка библиотека, легкий и внятный синтаксис, ровно с таким количествам фич, которые в состоянии не перенапрягаясь осилить умственно здоровый человек, и в то же время позволяют свести к минимуму собственно сам процесс кодописания. Т.е. именно то, что и является главной задачей любого скриптового языка.

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

> он же будет заниматься дизайном языка. И это у него получается.

Ну не все у него совсем уж так замечательно получается..

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

>> a.b = lambda self: 2

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

Ага, ровно 0 операторов :) Там выражение...

Вместо лямбды можно поставить имя функции.

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

> пропустил новость о макросистеме для Руби?

Руби не нужна макросистема, поскольку все (и методы, и объекты) можно переопределить в любом месте и на ограниченном участке кода, в т.ч. и из входных данных. В _этом_ смысле, схожесть с лиспом в нем есть.

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

>> Что такого удобного в Руби?

> Простая и удобная, как 3 копейки, система ОО, достаточная для скриптового языка библиотека, легкий и внятный синтаксис, ровно с таким количествам фич, которые в состоянии не перенапрягаясь осилить умственно здоровый человек, и в то же время позволяют свести к минимуму собственно сам процесс кодописания.

Вопрос подразумевал "...по сравнению с Питоном". Всё заявленное есть и в Питоне тоже.

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

>> пропустил новость о макросистеме для Руби?

> Руби не нужна макросистема

С этим даже не все Рубисты согласны :)

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

>> Можно увидеть, как в Python сменить реализацию уже существующего метода?

>А на слово ты джентельменам не веришь? 8)

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

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

> После тех ужасов, что известны о пистоне (таких как self обязательным первым аргументом у метода)

Это о чем вообще?

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

> Всё заявленное есть и в Питоне тоже.

Это вот _это_:

>>> class a: ... def b(self):

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

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

> Это вот _это_:

>>> class a: ... def b(self):

И что тут такого? Если ты не знал, в Питоне нет методов - только функции. Бритва Оккама, ага.

> Нунах, врените мне мой руби )))

А что, у тебя его отобрали?

> Кроме шуток, тебе же уже сказали, что руби - труОО

Если определение труОО - это "ОО, какое оно есть в Рябе", то я уже занес его в список рябоглупостей. А список недостатков ОО-модели Питона нико не привел.

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

> Питоне нет методов - только функции. Бритва Оккама, ага.

Знал, потому и зубоскалю )) Только это не бритва Оккама, а бритва Болвана. Потому как или объекты+методы, либо функции+скаляры. А закосы одного под другое почти всегда выглядят убого.

> А список недостатков ОО-модели Питона нико не привел.

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

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

> или объекты+методы, либо функции+скаляры

...ибо так говорит LamerOk. Веско, да.

>> А список недостатков ОО-модели Питона нико не привел.

>Тем, кто знает более или менее вменяемые оо-модели, их приводить не надо.

Дооо...

> Так получилось, что это два не пересекающихся множества ))

ну как же... ведь есть ты - Тот, Кто Знает Истину (но никому не скажет) :D

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

2eao197 (*) (02.06.2008 19:32:18):

> 1.abs
>  ^
> SyntaxError: invalid syntax
>
> Что, цифра 1 не объект?
> А вот в Ruby -- объект:

Цифра 1 в питоне объект, достаточно сделать dir(1), чтобы убедиться
в этом, но ты же пытаешься использовать синтаксис Руби в Питоне.
Ты ещё с C++'шным синтаксисом попрактикуйся, Питон тоже ругаться
будет. Удивлён?

>> И в Python всё динамично. 

> Можно увидеть, как в Python сменить реализацию уже существующего
> метода?

Спасибо, такого дерьма в более-менее крупных проектах не надо!
Кратчайший путь к путанным ошибкам.

>> Корректность программы не зависит от вида и количества лидирующих пробелов в строке. 

> Но зависит от, скажем, удалённых возвратов кареток. И что теперь?

> А Python здесь чем-то лучше?

А Python лучше тем, что он и здесь лучше, и там лучше.

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

2Oceanborn * (*) (02.06.2008 20:11:59):

> Питон это настоящий бич, единственный скриптовый язык где перемешаны
> все соглашения по оформлению кода, если бы не форматирование табами
> то был бы вообще пиздец. Хз почему так.

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

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

2LamerOk * (*) (02.06.2008 20:21:47):

>> Что такого удобного в Руби?

> Простая и удобная, как 3 копейки, система ОО,

Не менее она простая и в Python, а даже ещё более простая.
Система классов и модулей Ruby напротив даже опасна, так как
в крупных проектах "фирменные" рубиевские выкрутасы могут вылезти
боком.

> достаточная для скриптового языка библиотека,

Не аргумент в споре Ruby vs Python.

> легкий и внятный синтаксис,

Это ты пошутил так? Посмотри на синтаксис Python.

> ровно с таким количествам фич, которые в состоянии не
> перенапрягаясь осилить умственно здоровый человек,

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

Подобное и в древности было, пока все ковыряли палкой-копалкой,
кто-то пошёл дальше, поступил "по-ламерски", облегчил себе жизнь.
Над ним тоже, думаю, смеялись, ты чего, мужик, палку-копалку
освоить не в состоянии. То есть, это спорно, кто умнее-то ;-)

> и в то же время позволяют свести к минимуму собственно сам процесс
> кодописания. Т.е. именно то, что и является главной задачей любого
> скриптового языка.

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

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

2tailgunner ** (*) (02.06.2008 20:29:17):

>> После тех ужасов, что известны о пистоне (таких как self
>> обязательным первым аргументом у метода)

> Это о чем вообще?

Ну как, это же общеизвестно, Python страшен двумя вещами -- своими
отступами и self ;-)

То есть, надо полагать, Ruby должен быть страшен своими бесконечными
собачками - @, @@.

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

> Какой ты спец, аж страшно. Наверное много знаешь скриптовых языков, да? И много с ними работал? Только я вот что-то сомневаюсь, иначе бы не морозил такую чушь.

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

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

> То есть, надо полагать, Ruby должен быть страшен своими бесконечными собачками - @, @@.

Не только. Еще $ и много другой кривизны, заботливо добавленной из перла понта ради.

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

2LamerOk * (*) (02.06.2008 21:54:46):

> И сразу потянуло душком программера, полжизни писавшего на перле и
> открывшего для себя питон...

Бог миловал, на Perl'е не приходилось особенно писать, больше разбирать
чужой код. Писал и пишу на Python, C, C++, Java в основном. Зависит
от проекта.

Ну разумеется знаю Ruby, Perl, Tcl, Objective Caml, Common Lisp и т.д.
Это необходимо, чтобы понимать чужой код и что-то там изменять по мере
необходимости.

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

> ты поведаешь мне плюсы питона перед брейнфаком, а я взамен открою тебе Истину )))

Я не знаю брейнфака, да и неинтересна мне твоя истина.

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

Ты, дружочег анонимус, явно загибаешь. Если бы ты знал (реально знал, а не выёбывался) столько языков, ты бы мог выбрать что-либо более полезное вместо питона.
А так - бабушку иди свою разводи, чучело.

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

> Система классов и модулей Ruby напротив даже опасна, так как в крупных проектах "фирменные" рубиевские выкрутасы могут вылезти боком.

Так руби и нечего делать в крупных проектах. Удел этого языка - "одноразовые" программы, либо скрипты, нужные в каком-то одном отдельно взятом случае.

> Усложнённость синтаксиса негоже оправдывать тем, что, мол, умный освоит. Умный всё освоит, другое дело, насколько это оправдано.

Синтаксис у руби не фонтан, но имеет ряд хаков, удобных для быстроты написания кода, что для скриптового языка - задача номер один. От перла в середине 90-ых все исходили кипятком именно от того, что он позволял многие вещи сделать _быстро_.

> У любого языка есть ещё одна задача -- код должен быть понимаем тобой и другими. И тут здравствуй синтаксис Ruby, где каждый чих делается десятью способами.

Как раз первый пункт сводит потребность в этом к минимуму. Свобода в написании кода имеет и обратную сторону. С этим, я надеюсь, никто спорить не будет.

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

2anonymous (*) (02.06.2008 22:19:10):

> Ты, дружочег анонимус, явно загибаешь. Если бы ты знал (реально знал, > а не выёбывался) столько языков, ты бы мог выбрать что-либо более > полезное вместо питона. А так - бабушку иди свою разводи, чучело.

Возвращайся назад в своё ПТУ. Мне ещё всякой мрази доказывать, что, насколько и в каких количествах я знаю.

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

2LamerOk * (*) (02.06.2008 22:28:36):

> Так руби и нечего делать в крупных проектах. Удел этого языка -
> "одноразовые" программы, либо скрипты, нужные в каком-то одном
> отдельно взятом случае.

Тогда с тобой согласен.

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

> Так руби и нечего делать в крупных проектах. Удел этого языка - "одноразовые" программы, либо скрипты, нужные в каком-то одном отдельно взятом случае.

Гг. А на Питоне и долгоживущие программы пишут :D

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

2LamerOk * (*) (02.06.2008 21:57:05):

>> То есть, надо полагать, Ruby должен быть страшен своими бесконечными
>> собачками - @, @@.

> Не только. Еще $ и много другой кривизны, заботливо добавленной из
> перла понта ради.

Верно. Но Matz уже взял курс на избавление от этого добра, что не может
не радовать.

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

2anonymous (*) (02.06.2008 23:40:15):

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

Matz думал, что так проще привести к себе стадо перловиков. Что
он и сделал. Практически никто в здравом уме не будет переходить
с Python на Ruby, а перловщики -- гикнутый народ, им нравится,
когда можно, например, два числа сложить десятью разными способами.
Знак доллара им тоже нравится. А Matz ещё и собачек подарил, так
вообще хорошо стало.

Вообще, Ruby очень опасный язык в сравнении с C. Если там нечаянно
удалить возвраты кареток, то код перестанет работать :-(

def say_hello(name) var = "Hello, " + name return var end

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

> Гг. А на Питоне и долгоживущие программы пишут :D

Ты не поверишь, но "долгоживущие" программы пишут и на VisualBasic'e, и на дельфях,а в древних летописях упоминаются и "долгоживущие" прогаммы на Cobol'e... )))

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

2LamerOk * (*) (02.06.2008 23:57:43):

>> Гг. А на Питоне и долгоживущие программы пишут :D

> Ты не поверишь, но "долгоживущие" программы пишут и на VisualBasic'e,

Но согласитесь, что на Python программы лучше масштабируются,
чем на Ruby? Python одинаково хорош и для небольших скриптов и для
крупных проектов.

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

>>> a.b = lambda self: 2

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

>Ага, ровно 0 операторов :) Там выражение...

>Вместо лямбды можно поставить имя функции.

А пример можно? И можно ли заменять метод не всего класса, а только одного объекта?

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

>А Python лучше тем, что он и здесь лучше, и там лучше.

Ну собственно, нужно было сразу это сказать и все.

А можно было короче: мол у меня все равно длинее.

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

>> Гг. А на Питоне и долгоживущие программы пишут :D

> Ты не поверишь, но "долгоживущие" программы пишут и на [...]

Это не вопрос "веры" o_O знаю, пишутся, и что? Каким образом это делает Руби лучше?

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

> Но согласитесь, что на Python программы лучше масштабируются, чем на Ruby?

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

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

>> 1.abs
>>  ^
>> SyntaxError: invalid syntax
>>
>> Что, цифра 1 не объект?
>> А вот в Ruby -- объект:

>Цифра 1 в питоне объект, достаточно сделать dir(1), чтобы убедиться
>в этом, но ты же пытаешься использовать синтаксис Руби в Питоне.
>Ты ещё с C++'шным синтаксисом попрактикуйся, Питон тоже ругаться
>будет. Удивлён?

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

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