LINUX.ORG.RU

Релиз ruby 2.0.0 preview2

 


1

3

Команда разработчиков замечательного простого и изящного языка программирования ruby объявила о втором обзорном выпуске грядущей версии 2.0 (финальный релиз запланирован на 24 февраля 2013). Основными отличиями от первого обзорного выпуска являются:

  • Ускорена работа require [#7158].
  • Обновлены пакеты: Rake (до 0.9.5, [#7256]), RDoc (до 4.0, [#7426]), RubyGems (до 2.0 [#7427]), minitest (до 4.3.2).
  • Встроена библиотека libyaml [#7375].
  • Реализована поддержка DTrace [ruby-core:27448].
  • Объектам Enumerator добавлен метод #size [#6636].
  • Ускорены операции #shift/#unshift для объектов Array [#6638].
  • Алгоритм хэширования заменен на siphash.
  • Изменения, нарушающие совместимость с предыдущей версией:
    • UTF-8 стала кодировкой скриптов по умолчанию [#6679].
    • Методы #lines, #chars (и подобные) для объектов String возвращают объекты Array [#6670].
    • Изменение ABI: использование любых расширений, собранных для 1.9.x, в версии 2.0 невозможно (требуется пересборка).
    • Удален iconv.

До «заморозки» функциональности (то есть до 23 декабря) будут внесены также многие другие изменения.

Разработчики выражают огромную благодарность тем, кто принял участие в тестировании ruby 2.0.0 preview1 и надеются на вашу поддержку с тестированием ruby 2.0.0 preview2.

Скачать

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

★★★★★

Проверено: true_admin ()
Последнее исправление: JB (всего исправлений: 6)

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

с плюшками Перла

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

аля Smalltalk

Там разве есть модули?

в итоге ниша была занята lua

Ниша в твоем воображении))

за уши

Ага, за уши.. 13% проектов на github (второе место).

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

Ага, за уши.. 13% проектов на github (второе место)

Ага. И при чём тут гитхаб? В 2004-м у руби и библиотек то не было толком. Если б не одна гикнутая компания, руби так бы и остался локальной маргинальщиной.

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

Ниша в твоем воображении

Руби не используют для встраивания - факт. Вообще нигде и никто. А делал его специально для этого один неосилятор Tcl и Guile.

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

Ну и причем тут 2004

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

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

Я ж и говорю, локальная японская маргинальщина.

Вообще нигде и никто.

Тролль, лжец и девственник.

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

Also, эта «локальная японская маргинальщина» давно известна за пределами Японии. То, что лично ты не в курсе, это твои личные половые проблемы :3

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

давно известна за пределами Японии

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

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

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

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

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

все языки программирования каким-то образом «раскрутились», ну или не раскрутились, но если бы язык был говном то на нем не было-бы написано столько замечательных иснтрументов

chef puppet capistrano redmine adhearison

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

Объектная модель руби весьма продуманна.

О да, оптимизирована для манки-патчинга. Дошло до того, что у рубистов манки-патчинг - это паттерн и чуть не основная метода. А всё благодаря стыренной у смолтока продуманной объектной модели.

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

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

PHP - говно и на нём написано ещё больше замечательных инструментов.

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

PHP - говно и на нём написано ещё больше замечательных инструментов.

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

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

А мне другое нравится...

Тут в треде было написано, дескать на Ребе видеокодеки не пишут. И правда. Не пишут. Но вот тут есть не менее веселый материальчик (хохотал до слез) — http://lonelyelk.ru/posts/16 Если кто по ссылкам не ходит, так это жалкая попытка написать демон. На Ребе. ))) Мне все больше кажется что «рэбист» это такой диагноз, свидетельствующий о неспособности к С. Раньше я так про пыхеров думал.

Про системные требования к такому демону я даже спрашивать боюсь. А про попытку запуска такого демона на каком-нибудь сран... эээ... странном MIPS вопрос будет расценен как попытка издевательства... ))) По зашкаливающему, просто космических масштабов уродству, этот код переплюнул даже не менее жалкие потуги по созданию демона на похапе. Например — http://blog.knopkodav.ru/2008/03/php-daemon.html Но тут автор хоть оговаривается что это «извращение».

/* Сижу вот думаю... Мне код демона на С показывать или видели? Не будет ли это расценено как утонченное издевательство? */

Регистрироваться? Здесь? У меня где-то был успешно «пролюблен» пароль от mr_noone... Восстановить наверное можно, но мне и так весело, ей-Богу... Демон на Ребе... Бууугага! Давно так не ржал!

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

Вихляющий анонимус это так забавно :}

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

Самый прикол в том, что они думают что за _ЭТО_ им кто-то денег заплатит...

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

Как и Вас, сударь,

меня принес аист (боюсь, если я расскажу откуда именно, то это будет не «просвещение», а «развращение»). А вот ответ на вопрос — откуда пейсатели демонов на Ребе для меня так же очевиден — их обычно дятлы и приносят...)))

anonymous
()
Ответ на: А мне другое нравится... от anonymous

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

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

# Просто кидаться говном слишком просто, нужно предоставить альтернативу.

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

Ну ладно. ) Уговорили. )

Во-первых, я не уверен в том, что ООП это такая штука, которую надо назло пихать где ни попадя. В особенности после критики ООП со стороны, например, автора STL, господина Степанова. И, в особенности, для решения задач, которые и без ОО, при (немодном?) императивном подходе решаются со свистом.

Во-вторых, а кто Вам сказал что на С нельзя писать в стиле ООП? Оговорюсь сразу - код накидан минут за 10, там есть пара косяков (в частности использование потенциально небезопасной strcpy()), да и так, по мелочи. Для иллюстрации подхода вполне сгодится.

/* class.h */
typedef struct some_class {
char *string;
int x;
int y;

void (*method)(const struct some_class *);
} some_class;

some_class * new_class(const char *);
void delete_class(some_class *);

Дальше.

/* class.c */
#include <string.h>
#include "class.h"

static void method(const some_class *self){
printf("%s, %i, %i\n", self->string, self->x, self->y);
}

some_class * new_class(const char *name){
some_class *class = (some_class *)malloc(sizeof(some_class));
class->string = (char *)malloc((strlen(name)+1)*sizeof(char));
strcpy(class->string, name); /* Да, я в курсе... */
class->x = 1; 
class->y = 1;
class->method = method;
return class;
}

void delete_class(some_class * class){
free(class->string);
free(class);
}  

Наконец, последнее:

/* test.c, собираем 'gcc test.c class.c' */
#include <stdio.h>
#include "class.h"

int main(int argc, char *argv[]) {
some_class *class_1 = new_class("One");
some_class *class_2 = new_class("Two");

class_1->x = 40;
class_2->y = 10;

class_1->method(class_1);
class_2->method(class_2);

delete_class(class_1);
delete_class(class_2);
return(0);
}

Ну, если я неровен час захочу вот так:

typedef struct derived {
struct some_class;
int z;
} derived;
то я могу так сделать. По странной причине мне вот Дзен как-то не особо мешает записывать мой код наиболее удобным для меня способом...

anonymous
()
Ответ на: Ну ладно. ) Уговорили. ) от anonymous

На C тут одни уже изобрелии ООП. До сих пор отплеваться не могут. Можно и на ассемблере писать, если очень надо. А когда ты пишешь программу, ты хочешь каждый раз свой особенный ламповый ООП разрабатывать или просто сделать работающую вещь?

Что касается

В особенности после критики ООП со стороны, например, автора STL, господина Степанова.

рекомендую думать своей головой.

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

Так. Еще раз...

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

Я не ограничиваю себя и не втискиваюсь в какую-то заранее заданную парадигму (это не религиозный догмат, в конце-концов). Я просто варьирую техники написания кода в пределах одного языка, т.к. наработанный опыт позволяет это делать. Без «думания головой» такой подход не работает. Не более. Тут поверьте наслово, но изобретать теплый ламповый С++ не нужно. Нужно просто использовать опыт.

anonymous
()
Ответ на: Ну ладно. ) Уговорили. ) от anonymous

И во второй раз полностью с вами соглашусь ООП нужен не везде.

Можно было не утруждаться и не накидывать код, а просто сказать про GObject.

Про дзен вы просто услышали то что хотели услышать.

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

Нет...

... про Дзен я просто не хотел повторять своего уже покойного Мастера, говаривавшего что до аскетизма нужно еще дорасти. А как-то отшутиться надо было, хотя и согласен что вышло не вполне удачно. Просто не хотелось «градус повышать». Извините, если так получилось.

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

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

Не поленюсь напомнить, что как и всё японское, Ruby чужд для порядочных русских людей.

Сам узнал или кто-то подсказал? :)

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

А я считаю, что костылём является

from foo.bar.baz.bah import MyClass
Потому что то же самое может быть достигнуто уже имеющимся в языке средством.

А вот за это вообще расстреливать надо:

from foo.bar.baz.bah import *

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

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

А я считаю, что костылём является

from foo.bar.baz.bah import MyClass

Обоснуйте свое мнение.

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

import - это и есть языковое средство с, дай вспомнить, начала 70-х.

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

> from foo.bar.baz.bah import MyClass

Обоснуйте свое мнение.

А ты обоснуй своё... А ещё лучше, давай расстегнём штаны и померяемся!

import - это и есть языковое средство с, дай вспомнить, начала 70-х.

Дай вспомнить... Это как-раз тот период, когда все языки были наборами костылей?

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

Вот интересно, почему на эту мою фразу ты ничего не съязвил?

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

А ты обоснуй своё...

Я своего мнения не высказывал.

import - это и есть языковое средство с, дай вспомнить, начала 70-х.

Дай вспомнить... Это как-раз тот период, когда все языки были наборами костылей?

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

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

require - это механизм импорта. Или тебе чёта не панятна?

Я своего не высказывал.

Коли у тебя нет своего мнения, так чЁ лезешь?

И как то ты опять проигнорировал высказывание про «неадекватное мнение» и «троллинг». Это не вежливо игнорировать высказывания оппонента, особенно если он обращает на них особое внимание. Потому и я к тебе впредь без уважения обращаться буду.

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

require - это механизм импорта. Или тебе чёта не панятна?

Мне непонятно, почему механизм импорта в Руби хорош, а в Питоне -плох. Принципиально разницы между ними я не вижу, а ты ее не объяснил.

Коли у тебя нет своего мнения, так чЁ лезешь?

Запрети мне.

Потому и я к тебе впредь без уважения обращаться буду.

Ты просто разбиваешь мне сердце.

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

Мне не понятно ... ты не объяснил

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

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

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

Не поленюсь напомнить, что Ruby единственное японское, что не чуждо для порядочных русских людей.

obvious fix

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

Имеющий уши да услышит, имеющий глаза да увидит.

А коли ни того ни другого, так получается бессмысленный спор на 10 коментов.

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

Здравствуйте!

Заинтересовал Ruby как язык вэб разработки. Ну Rails конечно. До этого сидел на php, хочется чего-то нового. Читаю описание, не могу понять, такие вещи как абстрактные классы, интерфейсы в языке отсутствуют?

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

Читаю описание, не могу понять, такие вещи как абстрактные классы, интерфейсы в языке отсутствуют?

Нет, такого нет, если я правильно вас понял:

Ruby использует здесь подход Smalltalk, в котором ООП реализована концептуально правильно(согласно критериям Алана Кея).

Если у вас возникнут какие-нибудь затруднения, и вы приведете и объясните пример на php, буду рад привести аналог на Ruby.

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

Спасибо за ответ. Затруднений пока нет, потому что только присматриваюсь и читаю информацию. Пока нравится, код короче получается чем на PHP. Посмотрел Python, мне показалось Ruby более приятный. Надо пробовать писать на обоих. Единственное по синтетическим тестам Ruby 1.9 медленнее Python 3, но мне кажется так язык нельзя оценивать. Меня более интересует почему Google и Yandex поддерживают Python/Django а не Ruby on Rails? Видел на youtube видео где Yandex рассказывает как они используют Python/Django, очень хвалят, говорят тяжелые нагрузки выдерживает и некоторые сервисы у них на этой связке крутятся. Как с этим у Rails? Можно ли на Ruby писать десктопные приложения? На Python прочитал можно.

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

Меня более интересует почему Google и Yandex поддерживают Python/Django а не Ruby on Rails?

Зависит от того, что именно вы имеете в виду под «поддерживают».

Видел на youtube видео где Yandex рассказывает как они используют Python/Django, очень хвалят, говорят тяжелые нагрузки выдерживает и некоторые сервисы у них на этой связке крутятся.

Было бы интересно взглянуть, поделитесь линком? Сомневаюсь, что для «highload» они используют только Python/Django. Хотя это, конечно, зависит от того, что имеется в виду под «тяжелыми нагрузками».

Как с этим у Rails?

Эпическую историю успеха, о том, как это делается в Github, рассказал Vicent Marti. Billy learned the hard way.

Можно ли на Ruby писать десктопные приложения?

Это несколько внезапный вопрос.

Можно, различными способами, но мне они все не нравятся. Это не очень показательно, потому что написание GUI на других языках мне не нравится еще больше.

Если вам действительно интересна эта тема, попробуйте следить за Ruby GUI Community.

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

Пожалуйста http://www.youtube.com/watch?v=_VyPNATTC4w http://www.youtube.com/watch?v=qMmI8qigObc

Поддерживают Python я имею ввиду используют на продакшене. А Ruby не используют почему-то. Может чисто из-за того что туго с книгами, не знаю.

GUI на Ruby вобщем-то не интересно, это я для общего развития. Интересует вэб-разработка.

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

Поддерживают Python я имею ввиду используют на продакшене. А Ruby не используют почему-то.

Видимо, это оттого, что у приведенных вами компаний, много «legacy code» и программистов на Python.

Может чисто из-за того что туго с книгами, не знаю.

Такое 4.2, что даже похоже на троллинг. Почему вы думаете, что у Ruby туго с книгами?

И спасибо за линки — в закладки.

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