LINUX.ORG.RU

Разработчики Perl 6: язык готов к использованию

 ,


2

6

24 декабря в официальном блоге, посвящённом новостям разработки Perl 6, появилась поздравительная запись. Разработчики поздравили всех с наступающим католическим Рождеством, и с тем, что так долго ожидаемое взросление языка, наконец, состоялось. Фактически, язык готов к использованию в рабочих проектах, и разработчики обещают больше ничего существенно не менять.

С момента выхода первой версии Perl прошло 28 лет, с момента выхода самой популярной в данное время версии Perl 5 – более 20 лет. Как шутит Ларри Уолл, создатель языка и лидер его разработки, 6-я версия, возможно, когда-нибудь и заменит 5-ю – примерно лет через 40.

Версия Perl 6 была анонсирована более 10 лет назад – на Amazon ещё можно купить книгу про этот «вскоре выходящий» язык, изданную в 2004 году. Длительность разработки можно объяснить тем, что Perl 6 – фактически, новый язык, написанный по мотивам 5-й версии. И хотя некоторые утверждают, что 6-ка отличается от 5-ки не более, чем C++ от C, всё-таки идеология в Perl 6 эволюционировала достаточно сильно для того, чтобы назвать его более современным языком.

Ларри Уолл надеется, что преподаватели в институтах смогут, наконец, используя один и тот же язык, обучать студентов разным стилям программирования – функциональному, процедурному и объектному.

Логотипом Perl 6 выбрали весёленькую бабочку. Как (полушутя) пояснил Уолл на конференции в октябре этого года, это было сделано специально для того, чтобы сделать язык привлекательным для 7-летних девочек. В качестве примера хорошей рекламы ЯП среди детей он рекомендовал посмотреть на Python.

Уолл отметил, что основное, что объединяет две версии языка – сообщество программистов-единомышленников, стремящихся к тому, чтобы языки были более-менее взаимозаменяемыми. Например, для Perl 6 существует модуль Inline::Perl5, а для Perl 5 — модуль Inline::Perl6.

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

anonymous

Проверено: splinter ()

В заголовке какая-то ошибочка. Перл мёртв.

anonymous ()

Оставьте покойника в покое!

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

Но как можно использовать мертвеца?

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

Немного некрофилии никогда не повредит красноглазым))

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

А кого ты называешь красноглазым? Вроде слышал этот термил 5-6 лет назад, но вот вспомнить не могу.

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

Вы с этим не шутите: 5 и 6 в отношении Перла --- очень бооольшая разница.

Vudod ★★★★★ ()

Книжек бы на русском актуальных. А так...

anonymous ()

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

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

Вроде жеж утверждали, что самое интересное из 6го в 5ый портировали. В этом смысле резкого разрыва не возникает. То есть это что-то вроде разницы между Python 2 и 3.

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

То есть это что-то вроде разницы между Python 2 и 3.

Плохое сравнение. Разница между Perl 6 vs Perl 5 в том, что ЯП изменил нишу применения. Раньше это был интерпретатор, теперь это виртуальная машина. Имеется также вероятность, что Perl 6 распухнет так, что будет запускаться как Java VM. Т.е. ждать секунд 10-30 пока там эта VM заалоцирует себе кучу, пока она там запустит потоки, пока-пока-пока-пока. В этом гигантская разница от перехода Python 2 -> 3.

ИМХО. Поправьте, если что не так сказал.

gh0stwizard ★★★★★ ()

Я тут на днях начал познавать лучший язык программирования, Python конечно. Так вот вопрос возник - отчего регулярные выражения называются регулярными? Ваще не могу понять.

anonymous ()

Ага, уже собрал:

> perl6 -v
This is Rakudo version 2015.12 built on MoarVM version 2015.12
implementing Perl 6.c.
> moar --version
This is MoarVM version 2015.12 built with JIT support

saahriktu ★★★★★ ()

Как (полушутя) пояснил Уолл на конференции в октябре этого года, это было сделано специально для того, чтобы сделать язык привлекательным для 7-летних девочек.

Бугага :-)

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

В наше время много чего утверждают, и утверждают в основном маркетолухи, что снижает доверие в геометрической прогрессии. Так что вопрос скорее к тем, кто пробовал.

То есть это что-то вроде разницы между Python 2 и 3.

Синтаксис меня мало волнует, так как я перл только в регулярки юзаю, и то крайне редко.

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

Разница между Perl 6 vs Perl 5 в том, что ЯП изменил нишу применения. Раньше это был интерпретатор, теперь это виртуальная машина.

Сменили интерпретатор на ВМ - сразу ниша другая? Что за бред? Вон для PHP например сделали компилятор в плюсокод https://en.wikipedia.org/wiki/HipHop_for_PHP - и что, он после этого резко поменял нишу? Нет, конечно же это может расширить область применения, но если язык затачивался под конкретную область, смена интерпретации на компиляцию или на ВМ с JIT-ом погоды не сделает. Какие новые ниши появились у Perl после перехода на ВМ?

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

Какие новые ниши появились у Perl после перехода на ВМ?

Лучше спросить какие ниши он потерял. Ты много видел однострочников на Java?

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

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

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

A common implementation of JIT compilation is to first have AOT compilation to bytecode (virtual machine code), known as bytecode compilation, and then have JIT compilation to machine code (dynamic compilation), rather than interpretation of the bytecode. This improves the runtime performance compared to interpretation, at the cost of lag due to compilation. JIT compilers translate continuously, as with interpreters, but caching of compiled code minimizes lag on future execution of the same code during a given run. Since only part of the program is compiled, there is significantly less lag than if the entire program were compiled prior to execution.

https://en.wikipedia.org/wiki/Just-in-time_compilation

Именно этот момент не позволяет писать однострочники на яве, в отличие от перла или awk. Потому что, однострочник пишется на лету, он не имеет ничего общего с предыдущим однострочником (говорим про консоль, скажем, парсинг логов + однострочник на перле). Из-за этого код надо все время перекомпилировать и все оптимизации идут лесом.

Поэтому на яве дохрена серверов, долгоживущих приложений и почти ни одного однострочника.

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

Что-то я не понимаю. Во-первых в яве (hotspot) есть режим интерпретации (без JIT) https://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

Operate in interpreted-only mode. Compilation to native code is disabled, and all bytecodes are executed by the interpreter. The performance benefits offered by the Java HotSpot Client VM's adaptive compiler will not be present in this mode.

Во-вторых, сам по себе JIT не мешает писать эти однострочники. Без JIT-а они б просто интерпретировались, вместо того чтобы налету компилироваться. С JIT твой однострочник запускался б дольше за счет того, что компилировался, но потом бы работал быстрее. Если тебе для твоего однострочника время запуска критично, а оптимизировать в твоем однострочнике нечего - запускай без JIT.

Из-за этого код надо все время перекомпилировать и все оптимизации идут лесом.

В режиме интерпретации у тебя с оптимизациями ситуация будет еще хуже.

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

не более, чем C++ от C

В качестве примера хорошей рекламы ЯП среди детей он рекомендовал посмотреть на Python

Вот это я понимаю - правильно оформленная новость!

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

Так вот вопрос возник - отчего регулярные выражения называются регулярными? Ваще не могу понять.

Это просто придуманный термин, который придумал один математик. https://en.wikipedia.org/wiki/Stephen_Cole_Kleene

К слову, выражения Perl не являются регулярными выражениями (в смысле не соответствуют математическим определениям), поэтому советуют их называть регексами.

allter149 ()

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

Нда.

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

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

anonymous ()

А где используют Perl? Вроде слышал, что синтаксис у него крайне тяжелый для восприятия человеком.

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

Было бы излишне изучать Perl в ВУЗе, слишком весело. Для ООП выбрал бы Java.

anonymous ()

«Язык готов к использованию»...

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

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

Что-то не встречал такое на практике. Надо смотреть. Спасибо.

gh0stwizard ★★★★★ ()

И хотя некоторые утверждают, что 6-ка отличается от 5-ки не более, чем C++ от C

Лол

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

Во-первых, не регексами, а регекспами. Во-вторых, не советуют такого нигде. В-третьих, регексп - калька с английского regexp, что является сокращением от Regular Expression, т.е. регулярное выражение.

shell-script ★★★★★ ()
Ответ на: комментарий от te111011010

Но зачем?

Это документацию на Qt можно на английском чичтать. А токности перла, покрайней мере раньше, и на русском было сложно воспринимать.

x86_64 ★★★ ()

Не более чем C++ от Си, да ведь это же лол!

anonymous ()

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

enso ★★★★ ()

Как у него со скоростью?

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

perl6 работает в том числе поверх jvm, это одна из двух основных машин. Но всё же перл6 вряд ли распухнет как жаба просто потому, что встроенных возможностей не так много, перл по прежнему надеется на сторонние модули.

ixrws ★★ ()
Ответ на: комментарий от shell-script

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

nightuser ()

Perl 6: язык готов к использованию

я не готов, иду мимо

gray ★★★★★ ()

perl мёртв... Да здравствует PerlPython!

Sahas ★★★★★ ()

Зачем? Если упарываться то хаскелем и в таком роде.

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

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

Бля, сижу на работе, открываю и ржу как сучка.

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

RegEx сейчас более популярное сокращение.

То-то я его нигде не встречал

devl547 ★★★★★ ()

6-я версия, возможно, когда-нибудь и заменит 5-ю – примерно лет через 40

Пфф. Вы мелочитесь, сударь.

onekasper ()
Ответ на: комментарий от shell-script

регексп - калька с английского regexp
калька

Это заимствование, а не калька. Не знаешь смысла лингвистических терминов - не умничай.

anonymous ()

Язык для 7-летних девочек))))

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

отчего регулярные выражения называются регулярными?

От древнего иностранного слова «правило».

И вообще по хорошему правильно было бы говорить «правильные выражения», а регулярные это калька.

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

От древнего иностранного слова «правило».

Неверно.

это калька

Неверно.

Садись, опять двойка.

Специально для идиотов в этом треде: regular - following a pattern. По-нашему, это должно было быть «шаблонное выражение», но компьютерщики и в советские времена, и сейчас ни английского языка, ни родного толком не знают - вот и результат.

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