Ларри Уолл (Larry Wall), создатель языка программирования Perl, в своём выступлении в музее Эксплораториум в Сан-Франциско, представил (http://www.pigdog.org/auto/software_jihad/link/3138.html) первый тестовый выпуск Perl 6.0.0 (http://www.perl6.org/), пошутив, что теперь основным приоритетом станет исправление ошибок, которые случайно могут быть приняты за новые возможности. Объявляя дату финального релиза, Ларри воспользовался (http://www.10zenmonkeys.com/2015/10/06/the-night-larry-wall-.../) старой шуткой ("Дата релиза давно известна – это канун Рождества, в тайне пока остается только год этого события."), но на этот раз год релиза известен.
Perl 6 развивается более 15 лет, причём из них около 10 лет продолжалось ожидание финального релиза. Язык Perl 6 кардинально отличается от Perl 5 и может рассматриваться как созданный с нуля отдельный язык программирования, обладающий средствами метапрограммирования (возможность определения собственных синтаксических конструкций для расширения языка, в том числе создания новых инфиксных операторов) и встроенными объектно-ориентированными возможностями.Вместо использования интерпретатора, в Perl 6 программы компилируются в байткод, который затем выполняется в специальной виртуальной машине. В качестве базовой реализации Perl 6 развивается компилятор Rakudo (http://rakudo.org/), который может работать (http://perl6.org/compilers/features) с виртуальными машинами MoarVM (http://moarvm.org/) (по умолчанию), JVM и Niecza (https://github.com/sorear/niecza) (ранее используемая виртуальная машина Parrot (http://parrot.org/), в последних выпусках Rakudo не поддерживается).
С особенностями Perl 6 можно познакомиться в серии обзоров (http://pragmaticperl.com/authors/2) Андрея Шитова. Краткое резюме основных отличий от Perl 5:
- Возможность определения типизированных переменных ("my Int $i;" или "sub count(Int $i){", если присвоить $i строковое значение будет выведена ошибка). Поддерживаются типы Bool, Int, Str, Array, Hash, Complex, Num, Pair;
- Система классов для объектно-ориентированного программирования (определение "class A {has $.i; method test($what)...}" и вызов "my $a = A.new(i => 1); say $a.i;"). Для наследования при объявлении класса следует указать родительский класс ("class B is A {" или "class C is A is B {").
- Упрощение определения переменных ("my @list = 1, 2, 3;" или "my %hash = 'test1' => 1, 'test2' => 2;") и возможность использования Unicode в именах переменных ("my $переменная = 1;");
- Определение области видимости переменной и элементов классов при помощи "твиглов" (%*ENV, $?FILE);
- Возможность указания необязательных аргументов функции и значений по умолчанию ("sub func(Int $i?)", "sub func(Int $i = 1)");
- Поддержка передачи аргументов функции по именам (определение "sub power(:$base, :$exponent)", вызов "power(:base(2), :exponent(3))");
- Возможность создания вложенных функций и определения нескольких функций с одним именем (разделение по типам аргументов);
- Методы параллельного программирования: каналы (http://pragmaticperl.com/issues/24/pragmaticperl-24-%D0...) и механизмы синхронизации (http://pragmaticperl.com/issues/26/pragmaticperl-26-%D0...);
- Анонимные блоки-замыкания (http://pragmaticperl.com/issues/25/pragmaticperl-25-%D0...) ("my $cube = -> $x {$x ** 3};"), динамические переменные ("my $*var = 'Alpha'"),
- Изменённый (http://pragmaticperl.com/issues/26/pragmaticperl-26-%D0...) синтаксис регулярных выражений и возможность определения грамматик;
- Широкий набор метаоператоров (http://pragmaticperl.com/issues/27/pragmaticperl-27-%D0...);
- Метод ".WHAT" для быстрого определения типа переменной ($scalar.WHAT) и оператор "===" для сравнения объектов типов ("if ($value.WHAT === Int)");
- Переменная "$/" для записи результата сопоставления в регулярном выражении (совпавшую строку можно получить через $/.Str, для подстрок используется синтаксис $/[1] идентичный $1);
- Переменная "$!" для доступа к сообщению об ошибке.
URL: http://developers.slashdot.org/story/15/10/06/217239/larry-w...
Новость: https://www.opennet.ru/opennews/art.shtml?num=43104
Ларри Уолл наконец сдержал обещание.
> Ларри Уолл наконец сдержал обещание.Ещё нет. Это ж не релиз :)
У нас ещё есть время до рождества предотвратить эту катастрофу!
Да ладно?! Perl 6 создавался всего лишь на год меньше, чем мой возраст!
> Да ладно?! Perl 6 создавался всего лишь на год меньше, чем мой
> возраст!Да ладно, тебя всего-то минут пять делали...
И что, много там таких вот кричащих заглавными "WHAT" ? Неоднородность синтаксиса меня всегда отвращает от языка, как, например, от питона c его "__init__"
Этот момент как-раз вполне такой консистентный: все специальные методы и переменные в перле пишутся большими буквами.
Вас отвращает -- Ваши проблемы. В сообществе Perl-разработчиков TIMTOWTDI считается плюсом.
И шо вы имеете против питона, если не понимаете разницу между синтаксисом и названием метода инициализации экземпляра класса?
А вы думаете, что только у метода инициализации класса такой синтаксис?
Ну вообще-то так и есть. Кроме как у спец __методов__ больше нигде и не используется такая конструкция.
Используется — в спецсвойствах типа __all__, __name__ и т.п., что, впрочем, подтверждает правило, а не является исключением.
этого не может быть. этого просто не может быть.сначала они выпустили Duke Nukem Forever. затем Perl 6.
ЧТО ТЕПЕРЬ ЖДАТЬ?
Half-Life 3
наше поколение не знает, что это такоетак, как мы ждали Duke Nukem Forever и Perl6, мы уже ждать не сможем :)
Именно. Как известно, Valve переписали движок Source на Perl 6. Теперь ждут релиза.
Они ждут, пока он запустится для тестирования.
https://games.mail.ru/pc/news/2015-03-19/gejb_njuell_ob_jasn...
Valve официально признала, что юзвери для них -- только подопытное хомячьё для обкатки новых технологий. Ждите и дальше, чё.
Hurd
Грядет геморой с доустановкой этой 6.х для особо одаренных софтин сначала, а потом доустановка 5.х для особо отсталых, когда дистры смигрируют на 6.х.Обилие $. $/ $* $: всякого рода уникальных конструкций делают его, мягко говоря, хреновочитаемым, конечно if($x.WHAT === Int) куда лучше, чем if(is_int($x)), а "суперсовместимось" от версии к версии дарят незабываемые минуты счастья поиска и инсталляции правильной, параллельно с системной, с правильными библиотечками и прочим скрабом.
Дедушка давно уж помер, его бы закопать, но нет.. пара новых костылей и с внуками пускай сидит.
бету ReactOS
Поздравляю всех причастных!Перл5 - отличный язык, но я пока больше минималистичный Lua нравится (легче встраивается, легче stand-alone приложения делать). Хотя для быстрого прототипирования луа перлу не замена.
Обязательно попробую перл6, но уже после официального релиза.
да эт легко, на самом деле (если у тя линукс):
$ git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew
$ echo 'export PATH=~/.rakudobrew/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc
$ rakudobrew build moar
$ rakudobrew build-panda
# теперь у тебя есть perl6
$ perl6 -e 'say "hello"'
# и пакетный менеджер
$ panda install Task::Star
Собирается быстро. У меня тот же хацкель собирался раз в 3,4 дольше.
как-то странно сравнивать lua и perl.
perl очень крут в работе с текстом, в lua же ни юникода, ни regexp из коробки нет.
Сейчас уже есть юникод из коробки.
http://lua-users.org/wiki/LuaUnicodeграбли прилагаются?
Когда это стандарт стал именоваться "граблями"-то?
Божечки, perl6 превзошел все ожидания, самый шумный и жуткий синтаксис всех времен и народов.
А вот уже и неосиляторы подтянулись. Как в старые добрые времена!
> Божечки, perl6 превзошел все ожидания, самый шумный и жуткий синтаксис всех времен и народов.В следующих версиях, видимо, значения символов %,$ и т.п. будет зависеть от номера позиции в строке :-)
Ща конечно заклюют перловоды, но похоже, что язык превратился из RegExp в "знание для избранных", чтоб потом никто не догадался что именно делает более или менее длинный код, да и желания чтоб такого не возникало :-)
Что-то мне кажется особых шансов найти свою нишу у 6-го перла уже нет))
Напротив, ИМХО, они весьма велики. И это заставляет меня заранее "посочувствовать" пыхерам, - ведь от их веб-огорода в первую очередь и будет оттяпан кусочек, на покрытие, так сказать, нужд трудящихся!)))
> Напротив, ИМХО, они весьма велики. И это заставляет меня заранее "посочувствовать" пыхерам,
> - ведь от их веб-огорода в первую очередь и будет оттяпан
> кусочек, на покрытие, так сказать, нужд трудящихся!)))Вы это серьезно, или это очень тонкий троллинг?
Пыхари про ваш перл слыхом не слыхивали. Уже и луа, и руби, и го, и nodejs, и питон, и асп, и ява, но вот щас перл6 всех пыхарей убьет, пффф.. с таким то синтаксисом, ага, я вам брейнфак советую попробовать, ну или новопассит))
>> Напротив, ИМХО, они весьма велики. И это заставляет меня заранее "посочувствовать" пыхерам,
>> - ведь от их веб-огорода в первую очередь и будет оттяпан
>> кусочек, на покрытие, так сказать, нужд трудящихся!)))
> Вы это серьезно, или это очень тонкий троллинг?
> Пыхари про ваш перл слыхом не слыхивали. Уже и луа, и руби,
> и го, и nodejs, и питон, и асп, и ява, но
> вот щас перл6 всех пыхарей убьет, пффф.. с таким то синтаксисом,
> ага, я вам брейнфак советую попробовать, ну или новопассит))Именно то, что пыхеры не в состоянии осилить перл и вызывает "сочувствие". Их не убьёт, они просто будут "меньше кушать" — больше не нужны никому будут никакие веб-морды к системных сервисам, тянущие за собой php, всё теперь будет на перл, а сисадмины станут ещё более уважаемыми людьми )))
Чем
if($x.WHAT === Int)
лучше чем
if(is_int($x))
???Хоть один вменяемым довод, или идите в лес перл осиливать.
а чем хуже?
- А вы таки еврей?
- А вы антисимит?
- А почему вы спрашиваете?
- А почему вы отвечаете вопросом на вопрос?
================
Хуже всем: 1 - коряво, 2 - длинно. и после этого вы ругаете пхп за корявость и многословность, ну да в чужом глазу...
================
А вот тот вангаватель-смерти-пхп что-то не отвечает, так как сказать по-сути нечего, перл обычный язык со своими плюсами и минусами, и уж не лучше он пхп или руби и всех остальных, но главный его минус это корявость синтаксиса, которую уже много лет выдают за фичу, и упоротым фанатам этого не объяснишь, ибо все кругом неосиляторы и враги, а по факту сами они неосияторы ничего другого. Когда перестаешь фапать на язык, а просто используешь его как инструмент, начинает неслабо накалять вся эта "уникальность", перенести функционал с серверного перл-скрипта в юзерский-js значит переписать от и до, а вот у пхп можно и автозаменой обойтись частенько.
просто перл дает больше свободы
косячить в том числетакова цена свободы... TIMTOWTDI жеж, все дела
люблю перл короче, читать его интереснее чем ПХП
может читать, но по-мне, так есть чтиво и поинтереснее.
Ты на основании 1 аргумента принимаешь решение о применимости языка и всех несогласных с этим подходом посылаешь в лес? Диагноз по фотографии удался..
1 был вопрос, аргументов: $. $/ %*ENV $?FILE $!a $.b - навалом и это в новом, а были еще (<>) и прочая хрень в старом, но это синтаксис, а есть еще вбитый гвоздями в систему рантайм, а несовместимость между ветсиями, о чем я говорил уже здесь, но вы прочитать не можете, а ставите диагноз по 1 фразе дернутой из контекста - да, вам в лес.
What гибче, чем хардкоженое название в имени метода. Как минимум, можно в переменную положить тип и сравнивать с ним. Или использовать в своих методах. Часто в ruby, да и perl5 писалось bla.is_a? Array и работа с array. Ну, или твой is_a? MyMagic. Это не супер фича и такой подход часто сигнализирует о ошибке, но в люом случае больше пространства.
> What гибче, чем хардкоженое название в имени метода. Как минимум, можно в
> переменную положить тип и сравнивать с ним. Или использовать в своих
> методах. Часто в ruby, да и perl5 писалось bla.is_a? Array и
> работа с array. Ну, или твой is_a? MyMagic. Это не супер
> фича и такой подход часто сигнализирует о ошибке, но в люом
> случае больше пространства.проблемы на ровном месте:
given (ref $var) {
when ('SCALAR') { ... }
when ('ARRAY') { ... }
when ('CODE') { ... }default { ... }
Всё это мелочи. Вообще, думаю между пятым и шестым будет симбиоз. Пятый можно будет вызывать из шестого, шестой из пятого. Фичи перекочуют друг в друга что останется один перл)
Я знаю, просто отвечал на сообщение в чём разница между isInt и What.В 5 perl обкатались многие фичи, которые стали по дефлоту в 6. Что, действительно, тревожит, станет ли язык живым. Те. естественно будет и сообщество, и библиотеки. Но хотелось бы, что бы стал mainstream или хотя бы geek'mainstream.
вы помните переход с perl4 на perl5? я помню.в частности, оказалось, что в базовой системе freebsd многое завязано на четвёртый перл. и в freebsd team, чтоб два раза не вставать, переписали это всё без перла совсем.
по-моему, с приходом perl6 нас ждёт ровно то же: выковыривание perl5 из мест, где он ещё остался. но не миграция на perl6.
> Напротив, ИМХО, они весьма велики. И это заставляет меня заранее "посочувствовать" пыхерам,
> - ведь от их веб-огорода в первую очередь и будет оттяпан
> кусочек, на покрытие, так сказать, нужд трудящихся!)))Главной угрозой пыхеров до недавнего времени был руби с рельсой, а теперь и Го. Эти инструменты, как и PHP, хороши тем, что их можно спокойно использовать, не включая мозг. Собственно, и именно поэтому они так популярны.
Перлу это не грозит.
Я тебя умоляю, вы на рельсах писали похожу только Hello world, или юзали версию 2. Сейчас там позги нужно включать будь здоров плюс временами вылазят баги с подключенными гемами.В Го статическая типизация так что там априори нужно мозги включать, хотя не так сильно как в сишечке.
> $.i
> %*ENV, $?FILE, $!a, $.b
> $i?
> :$baseЯ до сих пор $ и @ путаю, а тут это.
А Вы точно писали на Perl5? Как можно путать массив со скаляром? =)
Ну это просто, пока какая-нибудь фигня типа @{$ps->{$t[2]}} не начинается.
> Ну это просто, пока какая-нибудь фигня типа @{$ps->{$t[2]}} не начинается.легко: $t[2] - второй элемент массива @t, $ps->{...} указатель на хэш. @{ } разыменовывание массива. Хорошим стилем является разделение сущностей пробелами и их логичное именование. Чтоб легко выхватывались глазами:
@{ $column->{ $row[3] } }
В любом случае, это проблема лишь для тех, кто перл видел на картинках.
> В любом случае, это проблема лишь для тех, кто перл видел на картинках.Ну вы пришли бы на проект, выросший на Perl 4 после долгого программирования на Python (где это записывается как ps[t[2]], потому что везде ссылочная семантика), я вас уверяю, и не так бы ругались.
>> В любом случае, это проблема лишь для тех, кто перл видел на картинках.
> Ну вы пришли бы на проект, выросший на Perl 4 после долгого
> программирования на Python (где это записывается как ps[t[2]], потому что везде
> ссылочная семантика), я вас уверяю, и не так бы ругались.Меня, к счастью, питон не ограничил. Мне нравится синтаксическая свобода перл.
А в питоне, ps это массив или словарь? А t? Что из этого массив, а что словарь?
>>А в питоне, ps это массив или словарь? А t? Что из этого массив, а что словарь?какая разница? Прекрасная запись в отличие от практически нечитаемой абракадабры на Перл.
Так читаемей, да, но понятней не становится. Чтоб понять - нужно листать код.
Нечитаемой абракадаброй он является только для ниасиляторов, неспособных понять два простых правила:
1. Сигил указывает на тип результата. Если нам нужен массив целиком, то будет @, если элемент массива, то этот элемент всегда скаляр, а значит будет $, если нужен срез массива, то это опять @, так как срез всегда массив, даже если состоит из одного элемента. Как вообще можно считать себя программистом, когда это не можешь усвоить и постоянно путаешь $ и @?
2. Для обращения к элементам массива используются квадратные скобки, для обращения к элементам хеша - фигурные.Зато для освоивших эти простые правила подобный код на perl читается легче, чем код на языках без сигилов и различий между хешами и списками, так как не нужно бегать смотреть определения переменных, их типы понятны в момент использования.
>[оверквотинг удален]
> значит будет $, если нужен срез массива, то это опять @,
> так как срез всегда массив, даже если состоит из одного элемента.
> Как вообще можно считать себя программистом, когда это не можешь усвоить
> и постоянно путаешь $ и @?
> 2. Для обращения к элементам массива используются квадратные скобки, для обращения к
> элементам хеша - фигурные.
> Зато для освоивших эти простые правила подобный код на perl читается легче,
> чем код на языках без сигилов и различий между хешами и
> списками, так как не нужно бегать смотреть определения переменных, их типы
> понятны в момент использования.Чтобы не бегать смотреть определения переменных, давно придуманы правила написания переменных. Например, $aNumbers, $iSch, и т.д. Первая буква обозначает тип переменной, a - массив, i - целое число.
>А Вы точно писали на Perl5? Как можно путать массив со скаляром? =)Дык - когда пишешь - проблем нет!
А вот прочитать ипонять потом, через пол годика-годик ~8-0Не робяты - этот ребёнок мёртвый до рождения. И чего его 15 лет на физрастворе держат - ХЗ.
> Не робяты - этот ребёнок мёртвый до рождения. И чего его 15 лет на физрастворе держат - ХЗ.Just for fun же.
> Дык - когда пишешь - проблем нет!
> А вот прочитать ипонять потом, через пол годика-годик ~8-0попробуй писать руками. Как в Modern Perl например.
Да, на удивление в CPAN'е в какой-то момент стало нормой писать "на человеко-читаемом языке". Беда только, что к тому моменту почти все ендлузеры, которым это было важно, успели уползти на альтернативные языки со своими технологическими стеками, как минимум, не уступающими перлу + CPAN.
> которым это было важно, успели уползти на альтернативные языки со своими
> технологическими стеками, как минимум, не уступающими перлу + CPAN.и в каком языке есть metacpan или nytprof?
R - cran
Привет, Мяут!
Если сравнивать с Perl 5, то изменений в Perl 6 не больше чем было между Perl 5 и Perl 3/4. Помню было очень непривычно переходить на Perl 5, но потом как-то столкнулся со старым скриптом и не понял как Perl 3/4 вообще пользоваться можно было, без модулей, хэшей и ссылок Perl уже не Perl. Взлетит или нет покажет время. Perl 6 по своему хорош и не настолько принципиально не совместим с Perl 5, но с первого взгляда непривычен и конкуренция среди скриптовых языков слишком высока.
текущая ниша перла - скрипты, перл6 туда не засунуть, а для других применений нужны наработки библиотек и фреймворков. без этого он останется никому не нужной поделкой. пока всё идет по пути поделки.
синтаксис нужно было упрощать, а его ещё сильнее зашумили. чужой код на перле и так был нечитаем, а теперь и смотреть наверно будет больно ...в общем печаль, какая-то.
>текущая ниша перла - скриптыа у меня оно для всего, практически: скрипты, всякая автоматика, веб-боты, отчёты, веб-сайты, парсеры. А если нужен низкий уровень, то, если задача простая, беру C или ObjectPascal, а если как одна из функций, то в перле даже это легко делается с XS. Но до этого вряд ли дойдёт, с cpan/metacpan, в котором есть обёртки для низкоуровневых либ.
>синтаксис нужно было упрощать, а его ещё сильнее зашумили. чужой код на перле и так был нечитаем, а теперь и смотреть наверно будет больно ...
Согласен что синтаксическая эстетичность важна. Но это не perl-way. Те, кто от него ждали этого - лицемеры, которые и пятым не пользовались, и шестым не будут. Кому же это окажется по вкусу - уэлкам. В шестом очень много вкусного.
А ведь PERL создавался для того, чтобы писать программы было так же просто, как разговаривать. И тут такой синтаксис. М-да
7-8, наверное, будет конструкции брейнфак поддерживать - объектно-ориентированный брейнфак, да рядом с программистами на таком Линус со своей способностью писать чистые процессорные инструкции будет как школьница стесняться.
> А ведь PERL создавался для того, чтобы писать программы было так же
> просто, как разговаривать.В перл можно писать стихи, а можно патч бармина. Язык не стесняет твои возможности. Как хочешь - так и др^W пишешь.
>>выступлении в музееКак это знаково. Perl пора в музей, на свалку истории =)
>>>выступлении в музее
> Как это знаково. Perl пора в музей, на свалку истории =)+1
Вряд ли кто-то будет заморачиваться c Perl6. Тут старое г.. бы были силы поддерживать. В яндексе, я знаю, статистика на perl. Но для админов там очень желательно знать python.
> Вряд ли кто-то будет заморачиваться c Perl6. Тут старое г.. бы были
> силы поддерживать. В яндексе, я знаю, статистика на perl.Я вам больше скажу, на некоторых серверах яндекса все еще FreeBSD живо.
Для админов нужно уметь perl/python на уровне чтения / отладки. Никто от админа не будет требовать знание реализации GIL в python 3.5 и задавать коварные вопросы про GC.
как в песне: «не спеши ты нас хоронить»…тут вот меня зазывают на новую работу - дают €2.5тыс. за перл :)
> тут вот меня зазывают на новую работу - дают €2.5тыс. за перл :)Им кто-то накодил критически важное приложение и сбежал, а теперь они пытаются найти хоть кого-то, кто бы смог ЭТО поддерживатьс :)
>> тут вот меня зазывают на новую работу - дают €2.5тыс. за перл :)
> Им кто-то накодил критически важное приложение и сбежал, а теперь они пытаются
> найти хоть кого-то, кто бы смог ЭТО поддерживатьс :)Все проще - расширение компании - больше задач. В нашу комп. тоже бы надо еще одного perl devel., работы прибавилось.
>> тут вот меня зазывают на новую работу - дают €2.5тыс. за перл :)
> Им кто-то накодил критически важное приложение и сбежал, а теперь они пытаются
> найти хоть кого-то, кто бы смог ЭТО поддерживатьс :)у перла бешеная продуктивность. Я весь год х%и пинаю, а в конце лабу пишу за пару дней. Думаю те, кто знает о перле не понаслышке - берут и для новых проектов, не только легаси.
Интерпрайз же поди. Этих уже ничего не спасёт.
перл поддерживать очень тяжело. так что серьёзно надо подумать прежде чем согласится.
Очень рад, посмотрим как там с Pluck, Rest api, если это работает, то можно будет что-нибудь пописать. Удачи Лари Воллу и Джонатану Вортингтону. Ну и панду (инсталлятор модулей) надо будет попробовать.
Когда обновят скрипт-однострочник?
> Методы параллельного программирования: каналы и механизмы синхронизации;уже не нужно - т.к. есть гораздо более читабельный и простой Go
> пошутив, что теперь основным приоритетом станет исправление ошибок, которые случайно могут быть приняты за новые возможностион не шутил
А парот они совсем выкинули? Была такая хорошая идея - вм для всех скриптовых язычков, общие библиотеки. А тут на тебе.
> А парот они совсем выкинули? Была такая хорошая идея - вм для
> всех скриптовых язычков, общие библиотеки. А тут на тебе.Идея захлебнулась при попытке объять необъятное. В конце концов, оказалось, что вместо качественной оптимизации и поддержки Perl 6, Parrot погнавшись за 10 зайцами толком ни для одного языка полноценно не подходит и не позволяет с текущей архитектурой реализовать некоторые задумки Perl 6. Со временем разработку Parrot почти забросили.
Доклад целиком был посвящён возможностям языка. Особо подчёркивалась возможности мета-программирования языка, ленивые вычисления, возможность встраивания других языков, например, Python и Lua уже в стандартной Inline-библиотеке (что было сопровождено цитатой: «This is why we say all languages are religious dialects of Perl 6» — «Вот почему мы говорим, что все другие языки — это религиозные диалекты Perl 6»).
Cpan для 6 существует?
https://metacpan.org/search?q=perl6
$ time perl -e ''real 0m0.002s
user 0m0.002s
sys 0m0.000s$ time perl6 -e ''
real 0m0.161s
user 0m0.141s
sys 0m0.019s
Итого код на perl5 можно вызвать до пятисот раз в секунду, а код на perl6 не более шести раз. Значит утилиты для последующего использования в шелловых скриптах вычеркиваем из области применения. Но ведь есть и другие области, где время старта некритично, главное чтобы потом работал быстро. Посмотрим, что изменилось за последние пару лет в этой области.
$ time perl -e 'my @a;push @a,$_ for 1..100'real 0m0.002s
user 0m0.000s
sys 0m0.001stime perl6 -e 'my @a;push @a,$_ for 1..100'
real 0m0.184s
user 0m0.163s
sys 0m0.020sНу хоть не несколько секунд, как было во время parrot и rakudo *, но и 0.02 на одну строку кода это все еще ужасно много. С учетом того, что скорость работы по прежнему не значится в приоритетах, единственной областью применения является "поиграться с perl6", для чего-то практического по прежнему не годится.
Update
Решил еще глянуть на скорость строковых операций$ time perl -e 'my $s;$s.=$_ for 1..100000'
real 0m0.016s
user 0m0.014s
sys 0m0.002s$ time perl6 -e 'my $s;$s~=$_ for 1..100000'
real 0m2.977s
user 0m2.272s
sys 0m0.703sРазница в 200 раз. Я ruby не использую из-за того, что он в два-три раза медленнее perl, а тут в двести раз. А ведь по сравнению с ruby у perl6 не так уж много вкусностей.
Погоди немножко. Это ведь бета ;) Из за типизации есть хороший потенциал для оптимизаций.> А ведь по сравнению с ruby у perl6 не так уж много вкусностей.
По сравнению с руби, даже у perl5 больше вкусностей.
> Погоди немножко. Это ведь бета ;) Из за типизации есть хороший потенциал
> для оптимизаций.Я это слышу со времен rakudo *. Надо отдать должное, на пару порядков с тех пор ускорили, в том числе путем смены VM, осталось пройти еще пару. Может еще выжмут что-то перепрыгнув еще куда-то, например на v8, но боюсь основная проблема не в VM.
> По сравнению с руби, даже у perl5 больше вкусностей.
Ты точно знаешь ruby? Может ты его с питоном спутал. Ruby = perl - исторический мусор + классы + итераторы + прочий сахар. То есть тот же путь, что и Perl6, только последний с одной стороны вобрал в себя чуть больше, с другой оставил чуть больше совместимости, например те же сигилы.
> Я это слышу со времен rakudo *. Надо отдать должное, на пару
> порядков с тех пор ускорили, в том числе путем смены VM,
> осталось пройти еще пару. Может еще выжмут что-то перепрыгнув еще куда-то,
> например на v8, но боюсь основная проблема не в VM.поживём - увидим. Надеюсь, еще лет 15 ждать не придётся)
> Ты точно знаешь ruby? Может ты его с питоном спутал. Ruby =
> perl - исторический мусор + классы + итераторы + прочий сахар.Не, ruby = perl - cpan/metacpan - скорость - доступ_к_кишкам_компилятора - обратная совместимость - goto :-D - полная_поддержка_уникода.
Но есть и плюсы: ruby = perl + единственно_верное_ООП.
Про мелочи, вроде постоянно конвертации to_f/to_i/to_s не грю.
> То есть тот же путь, что и Perl6,
ой не, друг. спецификация, junctions, расширенные регулярки (rules), ленивые списки, типизация, autothreading, макросы, наконец встроенный интерпретатор lua и python :-}
дурик в Ruby юникод давно есть(что имхо не гуд), и другие минусы присутствуют.
> доступ_к_кишкам_компиляторая удивлюсь если в интерпретаторах это появиться.
>в Ruby юникод давно естьhttp://unicode.org/versions/enumeratedversions.html
>я удивлюсь если в интерпретаторах это появиться.
можешь начинать http://perldoc.perl.org/B.html :)
>дурик
зря подписался, по комментарию и так понятно.
>>в Ruby юникод давно есть
> http://unicode.org/versions/enumeratedversions.htmlИ дальше то что? Тебя версия юникода не устраивает? Ой нет предположу что ты сидишь на руби 1.8.7
>>я удивлюсь если в интерпретаторах это появиться.
> можешь начинать http://perldoc.perl.org/B.html :)ага я уже понял что ты не отличаешь компилятор и интерпретатор.
>>дурик
> зря подписался, по комментарию и так понятно.Какое самомнение, у тебя абсолютно нечем не подкрепленное.
Болобол обыкновенный, с начало сказал потом подумал, в больничку что ли сходи пусть тебя пролечать.
>>>в Ruby юникод давно есть
>> http://unicode.org/versions/enumeratedversions.html
> И дальше то что?https://bugs.ruby-lang.org/issues/11561
8-ки в релизах нету. В trunk'e только начата работа по переходу.
>>>>доступ_к_кишкам_компилятора
>>>я удивлюсь если в интерпретаторах это появиться.
>> можешь начинать http://perldoc.perl.org/B.html :)
> ага я уже понял что ты не отличаешь компилятор и интерпретатор.а ты упорный :-D
Зачем вам нужна возможность исполнять пустой perl-скрипт пятьсот раз в секунду?
чтобы вставлять простые перл-одностроки в конвеер, не?
При всем уважении к Ларри, без обратной совместимости с 5 версией это мертвый язык.
Перл 5 рабочий инструмент и останется им. Перл 6 будет конкурировать с эзотерикой и функциональщиной.