LINUX.ORG.RU

Ларри Уолл официально представил Perl 6

 ,


2

4

5-го октября, как и планировалось, на площадке Канбар форума в Сан-Франциско Ларри Уолл официально представил Perl 6. Бета-версию можно загрузить с сайта http://www.perl6.org (который на днях также обновил дизайн). Как пошутил Ларри Уолл, теперь необходимо сосредоточиться над исправлением ошибок, чтобы люди не восприняли их как новые фичи языка. Финальный релиз языка Perl 6 произойдёт накануне рождества, и на этот раз точно известен год этого события — 2015.

Доклад целиком был посвящён возможностям языка. Особо подчёркивалась возможности мета-программирования языка, ленивые вычисления, возможность встраивания других языков, например, Python и Lua уже в стандартной Inline-библиотеке (что было сопровождено цитатой: «This is why we say all languages are religious dialects of Perl 6» — «Вот почему мы говорим, что все другие языки — это религиозные диалекты Perl 6»).

Презентация прошла без особого шума, появился лишь один пост в журнале PigDog, где участник рассказывает детали прошедшего мероприятия. Но этого было достаточно, чтобы всколыхнуть общественность: новость на hackernews уже имеет более 240 комментариев.

>>> perlnews.ru

Deleted

Проверено: JB ()
Последнее исправление: Psych218 (всего исправлений: 2)
Ответ на: комментарий от anonymous

а в чём фэйл? Я понял так, что glob считывает в байтах. Data::Dumper выводит escape-последовательности. В чём фэйл? Что glob такой, модуль такой? Перл то поддерживает utf8 сполна. Хочешь решение этой «проблемы»?

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

даже такой нубина как я за пару минут разобрался в части кода gmusicbrowser, когда захотел. А ты глянь какой там армагеддон: https://github.com/squentin/gmusicbrowser/blob/master/plugins/lyrics.pm#L61

perl::tidy не пользовался, без читов :-D В общем преувеличиваете, мусье)

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

Проблема: glob считывает в байтах, die выводит в байтах. Data::Dumper выводит escape-последовательности.


use utf8;         
use open qw(:std :utf8);  
use Data::Dumper;

$Data::Dumper::Useqq = 1; # использовать "" для строк
# переопределяем
{ no warnings 'redefine';
    sub Data::Dumper::qquote {
        my $s = shift;
        return "'$s'";
    }
}

print "тест utf8\n";
# конвертируем
my @files= map { utf8::decode($_) && $_ } glob "Стільниця/*"; #*/" лор парсер сломан
push @files, "кирилица для Dumper";
print Dumper @files;

# переопределяем die
SIG{__DIE__} = sub { utf8::decode my $msg = shift; die $msg }

2/0; # Делаем ошибку для проверки utf8 в STDERR
Deleted
()
Ответ на: комментарий от val-amart

service-now — и ваши волосы мягкие и шелковистые
SaaS

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

anonymoos ★★★★★
()
Последнее исправление: anonymoos (всего исправлений: 2)
Ответ на: комментарий от anonymous

Prce не содержит и половины функционала перловых регекспов

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

Сначала я хотел сравнить Perl с раковой опухолью, но он больше не растёт, скорее это омертвевшие ткани, гангренозные конечности, которые стремительно ампутируют, после чего, мясо, в гнойно-кровавых поддёках, ухая ударяется о дно свалки истории. Perl5 - отстонал своё, отшаркал. Сейчас он как сбитый из кровельной жести и берцовых костей биплан, летит брызгая кровью и роняя детали. Никто не знает зачем он летит, но конец его будет скор и печален. Ваш выбор - лететь на этом биплане до конца или выпрыгнуть с парашютом, купол которого будет наполнен синевой новых технологий. Даже создатель открестился от Perl5, чего ещё можно обсуждать здесь?

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

Мне сказали маил ру написан на перле

Морда да, бэкенд на крестах.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от Lincor

Суть в том, что Perl - это язык для «сделай это», которое можно обернуть в «красиво продекларируй мне это, чтобы 100500 человек совместно работали над проектом».

Java же - это язык для «красиво продекларируй мне это, чтобы 100500 человек совместно работали над проектом», но когда речь заходит о, собственно, «сделай это», то оно не только теряется в бесконечных потоках декларативного словоблуда, но и работает по обыкновению через Ж.

Мне кажется, что концепция Perl'а «Just Do It!» - это типично мужская концепция. Perl позволяет начать с работающего прототипа, а не с варки развесистой лапши бабски красивых объектных деклараций.

Вернее, даже так: в низкобюджетных командах или OpenSource содержательная часть на Java вся работает через Ж., а в понтовых коммерческих проектах - откровенно говёный конечный высер отлично масштабируется, работает в кластерной инфраструктуре, оптимизирован донельзя. Но в конечном итоге всё это выглядит для конечного потребителя как тормозное Г, а если потребитель ещё и сведущ в программировании, то он задаётся вопросом «почему эта тупая операция, которую можно было даже на BASH'е сделать за 5 секунд, на этом корпоративном портале выполняется за 10 секунд». А ответ прост до безумия: Java не сама по себе дерьмовый язык. Но концепция «100500 строк деклараций и 1 строка реально полезного кода» приводит к тому, что 99% времени Ява-код переваривает собственные объектные внутренности, подсасывая их ещё из JNDI (а в итоге - с диска, и скорее всего далеко не локального диска), и только 1% времени он делает что-то полезное. Причём это полезное - давно забыто разработчиками, которые мнят себя Богами Олимпа, Создающими Вселенную С Нуля, забывая как правило о том, что же в конце концов было нужно тем людям, деньги которых косвенным образом и составляют «с миру по нитке» зряплату программистов.

DRVTiny ★★★★★
()
Последнее исправление: DRVTiny (всего исправлений: 3)
Ответ на: комментарий от DRVTiny

Мне кажется, что концепция Perl'а «Just Do It!» - это типично мужская концепция. Perl позволяет начать с работающего прототипа, а не с варки развесистой лапши бабски красивых объектных деклараций.

Отлично сказано!

+1 за perl.

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

Поэтому, сосредоточтесь на коде, а не флудити тут как лошня, млеать!

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

Ну ХЗ. Мы на Kayako, что есть мерзкий пых, и ничего - брат жив :) Хотя конечно - лоровская и опенетовская школота осуждаитЪ :)))

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

теряется в бесконечных потоках декларативного словоблуда

Как твой пост?

концепция Perl'а «Just Do It!»

- типичная позиция говнокодера-хеллоувордщика.

Perl позволяет начать с работающего прототипа

И закончить с тем же говнокод-прототипом, обёрнутым в три слоя костылей и подпорок. Ну или выкинуть прототип и переписать всё на интырпрайзном языке. Впрочем, всякие питоны и руби всё равно лучше для прототипа, ибо на его код тогда сможет взглянуть без слёз вся команда, а не только утёнок, наваявший его.

если потребитель ещё и сведущ в программировании, то он задаётся вопросом «почему эта тупая операция, которую можно было даже на BASH'е сделать за 5 секунд, на этом корпоративном портале выполняется за 10 секунд»

Мамкины одмины локалхоста, они такие.

концепция «100500 строк деклараций и 1 строка реально полезного кода»

Откуда ты взял такую концепцию? Пацаны на районе рассказали?

Java-Java кудкудах.

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

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

Мне кажется, что концепция Perl'а «Just Do It!» - это типично мужская концепция. Perl позволяет начать с работающего прототипа, а не с варки развесистой лапши бабски красивых объектных деклараций.

Мачо в топике.

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

Уже вижу, как этот парень брутально сидит за компом, брутально поедает перловку и не менее брутально пишет перловку!

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

типичная позиция говнокодера-хеллоувордщика.

Месье не желает представить нам свои выдающиеся работы?

И закончить с тем же говнокод-прототипом

Кстати... А что, собственно, мешает? То есть ну как бы оно выполняет свои задачи, оно проходит тесты, пользователь доволен. Поддерживать софт должен разработчик софта. Он его поддерживает. Или не поддерживает, но тогда заказчик сам себе м***к и злобный буратино, это неисправимо в любом случае.

Так в чём проблема кода, который не ваяет вселенную, а simply works? Может быть, в том, что на его разработку нужно в разы меньше времени, чем на создание философского трактата, выводящего в итоге ту же груду говно-html'я, что и компактный код на Perl?

Мамкины одмины локалхоста, они такие.

Месье желает поделиться своим богатым опытом администрирования? А то пукать-то в лужу мы все с детсада умеем. Только одни вырастают из этого, а другие (и месье явно из их числа) - разве что деградируют до уровня интерпретируемых говноязыков. Месье противопоказан LISP (функциональное, не объетно-ориентированное программирование) или язык R (математическое программирование, позволяющее заработать кучу бабла без единого высера в быдло-ООП стиле).

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

Чуствую питонщегом завоняло. Может, стоит подтереть свой стек-трейс: он не только отвратительно выглядит, приводя пользователей в бешенство, но ещё и свидетельствует о слабоумии разработчиков языка, в котором вываливание стектрейса с ошибками типа 1024 != 32768 - является нормой жизни.

DRVTiny ★★★★★
()
Последнее исправление: DRVTiny (всего исправлений: 1)

This is why we say all languages are religious dialects of Perl 6

Наглухо упоротые религизные фанатики-некрофилы.

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

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

Спасибо, Кэп! :)

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

Мне кажется, что концепция Perl'а «Just Do It!» - это типично мужская концепция. Perl позволяет начать с работающего прототипа, а не с варки развесистой лапши бабски красивых объектных деклараций.

Разве программу на Perl нельзя переписать на Java более-менее близко к прототипу? Т.е. без «развесистой лапши»? А, следовательно, может дело лишь в том, правильно ли в тех или иных случаях используются те или иные возможности языка, а не в том, что Java неизбежно приводит к тому, о чём вы написали?

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

Перл то поддерживает, только вот куча модулей об этом не знают. Так что большой плюс перла — cpan можно выбросить на помойку, какой модуль не возьмешь - то имеешь проблему с utf8.

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

куча модулей
какой модуль не возьмешь - то имеешь проблему с utf8.

ну и с какими у тебя были проблемы, сказочник?

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

Месье не желает представить нам свои выдающиеся работы?

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

Поддерживать софт должен разработчик софта. Он его поддерживает.

Тут кто-то кукарекал, что перл - оплот швабодки и последнее пристанище людей без рабской психологии. Судя по тебе, он определённо не прав.

Так в чём проблема кода, который не ваяет вселенную, а simply works?

Он вырождается в тонны копипаста-лапши, при внесении изменений в которую со временем всё больше ощущаешь себя Сизифом.

Месье желает поделиться своим богатым опытом администрирования?

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

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

Месье противопоказан LISP

Чуствую питонщегом завоняло.

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

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

эм, здесь только речь о вхождении в базовые типы. вас же не удивляет, что в питоне, где всё объект, a = 'aa' — это тоже объект типа string?

вот меня ровно так же не удивляет, что в перле $a = /aa/ — объект вида regexp. кстати, в насквозь ооп рубях ровно так же: /aa/.class => Regexp

а вот в питоне и go почему-то regexp не является базовым типом, нужно подключать библиотеку, которая его определяет. я не исключаю, что это было сделано специально, чтобы люди использовали regexp'ы только, когда это действительно надо (не всегда они являются оптимальным решением), вот и расставили чуть палок в колёса.

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

Не распарсил, бедняжка? Хорошо, в следующий раз постараюсь попроще.

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

Например, типичные для perl конвейерные преобразования списков и хэшей в виде цепочек sort-grep-map - в Java будут выглядеть целыми простынями кода. Я уж не говорю о получении match'ей из сравнения с regexp'ом в виде списка и (тут же) пробразованием этого списка сколь угодно изощрённым образом.

На Java пишут в тотальном ООП-стиле потому что сам язык к этому вынуждает. Java практически не уделяет внимания наличию удобных инструментов в рамках самого языка (а не в библиотеках), зато всячески загоняет пользователя в узкие рамки «правильного» программирования, где ты сначала должен подумать о классах, а потом, если когда-нибудь вообще вспомнишь о том, зачем в конечном итоге ты пишешь код - вставишь куда-нибудь в чудо-методы логику приложения.

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

зато там есть нормально работающая система многопоточности (concurrent programming? не слышал).

а что у перла есть в 21 веке? fork и depracated threads (которые не смогли заставить нормально работать, вот и задепрекейтили)? а что-нибудь уровня akka есть?

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

Он вырождается в тонны копипаста-лапши

Анонимус не мог бы быть чуть менее абстрактным? В каком конкретно известном приложении на Perl месье увидел «тонны копипасты лапши».

Вот в приложениях на Java я вижу тонны декларативного кода на пару граммов полезного (который часто выполняет какой-нибудь совершенно у*бищный SQL-запрос по той причине, что программистам об индексах и оптимизации SQL-запросов знать не положено). А где в Perl что-либо копипастится? По-моему как раз уж чего-чего, а именно копипасты в Perl'е крайне мало. Perl-программисты - люди как правило исключительно ленивые, пишут весьма condensed код, так что их коробит любая лишняя синтаксическая конструкция. Если програмисту на Perl не будут бить по кумполу за то, что он напишет вместо пяти строк одну - то он именно так и сделает, уж поверьте.

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

a). fork ни есть что-то плохое. Я больше скажу - это просто BFG в мире многопоточности. Боитесь этого оверкила? Накрывайтесь абстрактными одеялками и не забудьте спрятать ножки, а то бабайка укусит!
b). И вообще, нонче в моде асинхронные вещи с колбэками и шлюхами.

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

glob не модуль.

Encoding handling of functions dealing with file names is currently on perl's todo list: Unicode in Filenames. Problem is that some popular operating systems (i.e. Linux) don't have support for file name encoding (other than using the current locale settings, but this is broken by design), so getting a portable solution in Perl is not that easy.

Dumper

это фича. Не хочешь - не используй (переопредели функцию). Лень писать заглушку - используй Data::Dump

Всё таки перечисли то «великое множество» модулей с CPAN'a. Вдруг кто-то захочет исправить, а ты не даешь ему шанса.

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

Все сообщения о проблемах с трэдами в Perl вижу примерно до 2009-го года.

ну-ну. одними тредами жив не будешь (становится очень явно, когда тебе нужно их много). вопрос был про что-то более интересное: actor model, csp. вы эрланг вообще видели или понимаете приблизительно, о чём я?

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

a). fork ни есть что-то плохое. Я больше скажу - это просто BFG в мире многопоточности

это в 80-х было принято так считать. в 2000х сторонников такой модели резко убавилось. хотя бы потому, что обрабатывать 10 тыщ соединений в 10 тыщах процессов — нереально. в 10 тыщах тредов, кстати, тоже.

anonymous
()

«This is why we say all languages are religious dialects of Perl 6» — «Вот почему мы говорим, что все другие языки — это религиозные диалекты Perl 6»

Такое ЧСВ я видел только у Страуструпа.

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

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

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

В каком конкретно известном приложении на Perl месье увидел «тонны копипасты лапши».

Я не читаю приложений на перле и джаве. Зато мне приходилось ковырять пару приложений на C, которые писались, чтобы «просто работать» и «поддерживаться разработчиками софта», практически без изначального продумывания архитектуры. До фига времени ушло на борьбу с костылями и многократное изменение повторяющихся кусков кода.

Perl-программисты - люди как правило исключительно ленивые

Почти все программисты - люди ленивые. Просто у некоторых эта лень выражается в «продумаю архитектуру и разделение ответственности, потом проще менять будет», а у некоторых - «По-быстрому напишу, чтоб работало, если требования сильно поменяются - накостылю» и «Некогда выделять класс/функцию, Ctrl+C Ctrl+V».

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

Coro

это штука не совсем относится к concurrent programming. это по сути просто yield, передающий контроль другой области кода в том же треде.

AE, EV, IO-Async.

строго говоря, ивент-модель — это ровно так же не всё, что нужно от асинхронного программирования. она есть и для рубей, и для питона, и ряд задач успешно решает. но никто в здравии ума не будет рассказывать, что это — языки, у которых хорошо с многопоточностью. потому, что даже при наличии event loop всё по-прежнему плохо. как и у перла.

а у явы почему-то лучше. хоть и мерзость. вот такая диалектика.

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

Ну давай покажи мне «фичу» в этом модуле Term::ReadLine, или снова нужно что нибудь переопределять? У меня при попытке ввода кирилицы - знаки вопроса.

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

Если поставить пакет libterm-readline-gnu-perl то и у меня все ок. И вот так во всём — где-то нужно что-то дописать, где-то что-то доустановить, где-то что-то переопределить.
P.S. Использую perl 5.20, debian8

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

Если поставить пакет libterm-readline-gnu-perl то и у меня все ок.

Потому что

Term::ReadLine - Perl interface to various readline packages.
If no real package is found, substitutes stubs instead of basic functions.

И вот так во всём

ага, ага. Кажется я понимаю с чем у тебя проблемы.

Deleted
()

таки кажется, в перл6 переборщили с синтакс-фичами. лучше б, таки, перл5 эволюционировали во что то более интересное. в перл5 уже много всего есть, надо то только добавить нормальное ооп, внести асинхронность (типа Coro) и треды в ядро, да оптимизировать хвостовую рекурсию...

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

Всё таки перечисли то «великое множество» модулей с CPAN'a. Вдруг кто-то захочет исправить, а ты не даешь ему шанса.

Как насчет поддержки юникода в модуле Curses::UI?

KernelPanic
()

«Всем давно известно что Perl мертв, а программы на нем нечитаемы. И эти традиционные стереотипы являются важной частью культуры Perl. Так что не надо их ломать. А ты вы так ляпнете ненароком, что в cpan публикаются до сотни апдейтов и новых модулей ежедневно, или что существует irc.perl.org. А этого делать не надо — традиции следует бережно хранить.»

http://habrahabr.ru/company/yandex/blog/230775/#comment_7806977

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

* Модули для nginx (раньше альтернативой Perl был только lua (при этом соответствующий модуль нужно собирать отдельно), теперь ещё javascript обещают).

* Модули для exim.

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

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