LINUX.ORG.RU

Ruby 1.9.1

 , ,


0

0

После достаточно длительного перерыва, вышел первый стабильный релиз из ветки Ruby 1.9.x!

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

Доступен полный список нововведений, а также советы по переходу на новую версию.

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

Отстойные Жава-кодеры переходят на Руби, так как в обоих языках нужно иметь больной мозг. Те кто пишет на C упрощает себе жизнь Питоном.

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

GC

> не забавы ради, но все же хочется положить на лопатки Ruby именно с пресловутым дефектом Garbage Collector: Out Of Memory средствами самого языка

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

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

> Может, тогда тебе показать ссылки для каждого языка на сайтиках всех фирм-производителей компьютерной техники?

Ну питон для нокии есть и его поддрживает сама нокия, как бы фанаты не писалилсь. А руби под ноклой как работал в 2006 отстойно, так и до сих пор отстойно работает (N83 только что проверил). А питон одинаково, как на 5500 работает, так и на N83. И тот же самый код работает на лине, и (не к завтраку будет сказано)ВинСЕ.

Да и вообще окамл как ба наше все. Жаль только что для QT у него биндингов вменяемых нет, а только какие-то зачатки, да и те с багами такими, что мама не горюй, и создатель забил давно :(

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

>А что разве не так? Или не нравится слово "дефект"?
>Хорошо - напишем так: Все языки с Garbage Collection имеют одну и ту же архитектурную особенность.

>Зацепиться объект за какой-нибудь static массив (хэш) и "привет". Даже, если к этому объекту никто и никогда не обратится он все равно останется в памяти.

>В случае классического C в аналогичном случае Вы скорей всего получили бы висячую ссылку. Ссылка из массива осталась, а объект был бы освобожден.

>Вот и получается, что одну ошибку заменили другой: вместо висячей ссылки получили OutOfMemory.


Согласно твоей логики все языки без GC имеют страшный "дефект" - если постоянно выделять память и никогда не освобождать ее - получим OutOfMemory. Как страшно жить.

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

> Также, как Python - у Basic

А можно список фишек, которые Питон взял у Бейсика (и какого именно из многочисленных Бейсиков)? Кое-кто говорит, что Питон сильно похож на Лисп, а вот Крон - что на Бейсик, где правда?

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

> По моему скромному мнению, больше всего (идеологически, не технчески/синтаксически) Ruby взял у Perl.

Синтаксис взят во многом из Перла(хвостовые if/unless/while). Концепция ООП и главная фишка - блоки, от Smalltalk-а. Когда смотрел Eiffel, было странное чувство дежавю в плане работы с перегрузкой операторов и самого синтаксиса. Хотя перегрузку Матц мог взять и из ST/Python/C++. По мелочам надергано из Lisp-а: символы, методы со знаком восклицания и знаком вопроса.

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

> Также, как Python - у Basic (официальный его предок - ABC, конечно, но этот язык остался намного менее известен, чем его предок).

Не удивительно, что питон так убог. Бейсик, даже в облагороженном виде будет бейсиком. А вообще жаль, что Гвидо чуток туп. Он даже try/except/finally смог осилить только к версии 2.5 и то, только из-за того, что подсмотрел, что это в яве уже сто лет как есть.

Но блоки бедняжке так и не дались. Оператор with - форменная интелектуальная отрыжка. Но может в яве их осилят, тогда и Гвидон их подпилит к питону.

Еще не могу понять, Гвидон так плохо почитал ману по yacc-у, что сделать нормальный switch/case руки не срослись? Писать елочку из if/elif напрягает чуток. Мог хотя бы на тот же C посмотреть, только без провалов сделать, как в Руби и шарпе.

Ну да ладно, чего от него хотеть. Гвидон четко сломал совместимость между ужами и теперь пыхтонистам придется нормально попотеть, чтобы перелезть на тройку. Думаю через годков пять таки сделают. Зато будет время, чтобы мемуары пописать. "Как я сидел и думал, а как бы еще обрезать яйца змее, чтобы синтаксис был почище, да покрасивше. Чтобы новички %-тика не пугались".

А малыши и рады. Новых фишек в 3-ке голяк. Тормозит больше. Зато "новый". И быстро выпустился...

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

> Писать елочку из if/elif напрягает чуток.

Если в программе на Питоне появляется ёлочка из if/elif длиннее 3-4 этажей, это уже повод для увольнения по профнепригодности.

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

>А можно список фишек, которые Питон взял у Бейсика

Например, input через запятую :)

Шучу. Я же выше писал, вопрос не в синтаксисе, а в общей идеологии.

А то, что Питон является прямым развитием ABC, видимо, для тебя новость.

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

> Я же выше писал, вопрос не в синтаксисе, а в общей идеологии.

О какой идеологии какого Бейсика речь? А то при желании и Паскаль с Лого можно записать в наследники Бейсика (как языки для обучения).

> А то, что Питон является прямым развитием ABC, видимо, для тебя новость.

Я знаю об ABC. Насчет "прямого наследника" - не думаю, что фразe Гвидо "Although my experience with ABC greatly influenced Python, the ABC group had a few design principles that were radically different from Python’s. In many ways, Python is a conscious departure from these." можно понять как "прямое развитие ABC".

Это не говоря о том, что в Питоне заимствовал из Модулы3, Си++ и наверняка других языков.

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

Есть вещи, которые на пальцах не объяснить. Всё равно, что слепому рассказывать про оранжевый цвет. Человек или видит это, или нет :D

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

>ohh, мемлики все же _были_ :)

в продакшен-ветке(1.8) они всё ещё есть, насколько я понял ;)
т.е. 5 лет как непофиксано

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

> Есть вещи, которые на пальцах не объяснить.

Ну объясни с примерами.

> Всё равно, что слепому рассказывать про оранжевый цвет. Человек или видит это, или нет :D

Красиво соскочил %)

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

>Красиво соскочил %)

Просто с примерами ничего не получится. Ибо Питон - это не Бейсик :)

Но когда я его впервые пощупал, ещё не зная истории языка, первая мысль была - автор языка делал его явно с оглядкой на Бейсик :) А о влиянии ABC на Питон узнал уже заметно позже.

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

c другой стороны к архитектурным недостатками GC этот баг (который как я понял в продакшене пофиксен частично - в рамках однопотока) отнести нельзя ;)

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

> Что-то java не видно.

Ну да, в 93-95 годах ООП в перле и пистоне бил через край гаечным ключем. Яву можно смело заменить её предком SmallTalk'ом, если так будет более доступно для понимания. Человеку хотелось _настоящего_ ОО.

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

Думал, не подходит. Нужно не "вдохновение", а "по образу и подобию".

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

>Яву можно смело заменить её предком SmallTalk'ом, если так будет более доступно для понимания. Человеку хотелось _настоящего_ ОО.

о да) твой ник красноречиво намекает)

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

> Есть вещи, которые на пальцах не объяснить. Всё равно, что слепому рассказывать про оранжевый цвет. Человек или видит это, или нет :D

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

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

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

> Яву можно смело заменить её предком SmallTalk'ом, если так будет более доступно для понимания.

Чем дальше в лес, тем толще партизанен. Теперь еще у жабы в предках smalltalk обнаружился. Трава?

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

>если человек не в состоянии четко сформулировать свою мысль ...

... то ты задаёшь слишком детский вопрос.

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

>>если человек не в состоянии четко сформулировать свою мысль ...

>... то ты задаёшь слишком детский вопрос.

хорошо, давай я скажу, почему тебе python basic-ом показался. ты, элементарно, не знал (и, возможно, не знаешь до сих пор, так как твой фаворит - это php) ни тот ни другой дальше if/while/print.

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

>ты, элементарно, не знал (и, возможно, не знаешь до сих пор, так как твой фаворит - это php)

На Basic (от QB4.5 до VB3) я когда-то зарабатывал деньги, на python сейчас пишу для себя скрипты, кроме PHP я работал в больших проектах с Java, C/C++, Forth, а также дофига писал на ассемблерах 8080/x86/PDP. Несложные решения (например, слепить свой плагин к Amarok на Ruby) писал ещё где-то на десятке языков.

Так что - перенастраивай свой либастрал, он у тебя чушь порет, а ей - больно :D

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

> На Basic (от QB4.5 до VB3) я когда-то зарабатывал деньги, на python сейчас пишу для себя скрипты, кроме PHP я работал в больших проектах с Java, C/C++, Forth

-доктор, у меня не стоит! -а вам сколько лет? -68 -так уже не должно стояь. -а мой сосед, который на два года старше, говорит, что у него стоит.

-так и вы говорите...

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

Выступления были в таком стиле: "Java is related to C and C++ but is organized rather differently, with a number of aspects of C and C++ omitted and a few ideas from other languages included" (это цитата из JLS 1).

"I know that for somebody who is a pretty talented C++ programmer, an afternoon pretty much does it for lots of folks" (Гослинг об освоении Явы).

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

> Это всё из серии "ничего-ничего, нужда заставит - переучитесь с плюсов на яву".

Цитату из JLS ты удобно проигнорировал (а там в ведении еще пару раз сказано, что Ява заимствовала из Си/Си++). Про обучение - это из серии "если вы знаете Си++, вы уже знаете и Яву".

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

Да в каждом учебнике по Яве с 96-го по 2006, во введении сказано, что оно заимствовало из плюсов и "переучится будет легко". Может мы еще предисловия из "полной энциклопедии виндовс сервера ХХХ" в качестве аргумента приводить будем?

Ты что, в серьез отстаиваешь эту точку зрения? Сам найдешь цитату луговского в его ПСС, посвященную этому вопросу? )))

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

> Да в каждом учебнике по Яве с 96-го по 2006, во введении сказано, что оно заимствовало из плюсов и "переучится будет легко".

Это не "каждый учебник", это JLS и слова Гослинга.

> Ты что, в серьез отстаиваешь эту точку зрения?

Какую "эту"? что Ява - это "rounded-scissors C++"? Да, всерьез.

> Сам найдешь цитату луговского в его ПСС, посвященную этому вопросу? )))

Я не золотарь.

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

>Да в каждом учебнике по Яве с 96-го

Подтверждаю :) При появлении Java позиционировалась именно как доработанный Си++ с переносимостью и усложнением самоотстрела ноги :)

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

А ты думаешь, Гослинг говорил то, что думал, и к пиару явы от компании сан миркосистемс никакого отношения не имел?

> Какую "эту"?

Ту, что ява - производное от плюсов.

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

> Ту, что ява - производное от плюсов.

Ява - производное _и от плюсов тоже_.

Впрочем, твоя точка зрения не обязана совпадать с моей, Гослинга и тем более с реальностью.

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

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

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

> Прозводную от плюсов я вижу только в синтаксисе

Проект Oak начинался как диалект Си++ для встраиваемых девайсов.

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

> Мы обсуждаем, как он начинался, или то, что получилось?

Мы обсуждаем, из чего ее слепили (aka "в предках явы плюсы ходят") :D Впрочем, и "то, что получилось" больше всего напоминает кастрированный донельзя Си++ (без процедур, перегрузок операций и с урезанным множественным наследование), реализованный на VM со сборкой мусора.

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

>Проект Oak начинался

О! Я уже успел и забыть его название в девичестве :)

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

> на python сейчас пишу для себя скрипты

песадь для себя - это, наверное, круто

> кроме PHP я работал в больших проектах с Java, C/C++, Forth

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

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

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

> на python сейчас пишу для себя скрипты

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

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

> Знания.

Исключительно о сортах травы, видимо.

> У тебя-то поди в предках явы плюсы ходят.

Модула как бы.

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

С функциями - объектами первого класса и без объектов (инкапсулирующих функции как таковые)?

Да, в траве ты явно не разбираешься. В следующий раз не бери такую, а то найдешь родственные связи между перлом и прологом.

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