LINUX.ORG.RU
решено ФорумTalks

Выучить perl 6

 , ,


0

4

Привет! О себе: не знаю нормально ни одного языка программирования, но с грехом пополам кодил на c++, c#, bash, perl 5. Хочу выучить нормально perl 6. Как это сделать правильнее и эффективнее? Я вижу для себя такие варианты:

  1. Спокойно пройти путь «Learning Perl» -> «Intermediate Perl» -> «Programming Perl» и жить – не тужить, а потом воспользоваться «Migrating to Perl 6».
  2. Курить на инглише «Learning Perl 6», а инглиш я не люблю :(
  3. Курить «Think Perl 6». Похоже, это то, что мне нужно, и даже в свободном доступе.
  4. Бросить все эти книжки для нубов, изучить https://perl6intro.com/ru/ и заняться практикой.

@Lilly, посоветуешь? :) P.S. Не нашел книги по perl 6 от Ларри. Он отходит от дел?



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

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

неудобства дизайна, которые были починены в «наркомании»

Если испытываешь неудобства, значит перл не подходит для задачи. Лучше взять более подходящий язык, а не хлебать нескучный борщ из перловки.

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

Так история отличается, или всё таки нет?

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

Повторяю, история с новой несовместимой версией ничем не отличается.

определитесь с понятием «живой язык»

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

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

«Куча проектов» давно переписана на питон 3, именно поэтому второй и закапывают.

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

Лучше взять более подходящий язык

Истинно так.

Так что насчёт наркомании-то, будут примеры от человека, который посмотрел на $x перед тем, как оценивать $x? Надеюсь, это же оценка не с потолка была?

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

Я пять лет писал коммерческое ПО на перле и следил это время за развитием шестого, этого вполне достаточно чтобы не путаться. И было это 15 лет назад. За это время 6-й так и не взлетел, и как его ни называй, уже никогда не взлетит.

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

Perl 5. Зачем тебе сабжевая наркомания?

Ну хороша же. Видел как удобно писать парсеры для языков? В 5м посложнее будет на регексах.

P.S. Пишу на perl5, если что. Но perl6 ракета.

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

Питоны рождаются и умирают, а пёрл живёт и здравствует :)

история с новой несовместимой версией ничем не отличается.

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

С этим понятием только фанаты дохлятины не могут определиться

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

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

Любопытно, из всех людей, отговаривающих меня от сабжа (кстати, зачем это им?), нет ни одного, который сказал бы, чем же плох этот язык. Просто ведут себя как собаки, которым сказали «фас», чесслово. В воплях о дохлятине и «нинужности» невозможно найти ни малейшего рационального зерна.

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

Это уже какое-то патологическое тугодумие

Ну раз вы по существу ничего не возразили, считаем это самокритикой.

Живой язык - это тот, которым пользуются

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

богатые дяди указывают, который язык живой

Более правильных вопрос кто указывает вам, если вы начисто игнорируете факты?

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

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

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

Так что насчёт наркомании

Перл простой язык для простых скриптов. Ракокот это закос на промышленную мудотень с ооп, типами и всеми прочими побрякушками как у взрослых, но с черезжопным перловым синтаксисом, который растет из sh и awk. Это я называю наркоманией. Ширнармассы тоже не оценили эти потуги. Вердикт: ненужно.

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

Затем что задачи есть такие, не?

Из недавного, надо было написать dsl для security compliance чекера, потому что свои устройства, протоколы, openscap где оверхед, а inspec куц, придется реализовывать свои плагины, и в связке с шефом хорош лишь для серваков с шефом для деплоя, а не серии промышленных железяк, где никакого деплоя нет, лишь вебморда для настроек.

Писал на 5ке, потому что времени было в обрез и лучше его знаю. Но 6ка для парсинга языков невероятно вкусна.

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

Перл простой язык для простых скриптов.

Ну неее. В perl5 есть regex debug, который позволяет писать на нем парсеры очень большой сложности, и не споткнуться. Есть лучший на сегодняшний день из всех скриптовых профайлер NY, который и в многопоточных приложениях дойдет до самого низкоуровневых функций и покажет затыки. Есть code convention тулзы, вроде perltidy, который поможкт организовать code style для организации в любом стиле, это тебе не pep8. Есть metacpan, который, если в твоей организации происходит мейнтейнинг пакетов поможет тебе со всем необходимым: сборка, версии, тестирование, багзилла, в общем man metacpan, это тебе не pypi или gems, все как у людей и для людей.

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

Дно — это то место, где покоится твоё чувство юмора.

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

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

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

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

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

Мне сложно поверить, что кто-то может настолько неудачно пошутить. Я все же буду придерживаться мнения, что ты пытался потроллить, но прилюдно жидко обосрался.

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

А я не застал ЕГЭ, а мой брат не сдавал, ТК победитель всероссийской олимпиады.

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

Ну неее. В perl5 есть ... волшебные костыли

Ну ладно тогда, удачи вам. Но я все-таки больше сотни строк не буду на перле писать, и никому не посоветую.

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

Я тут весь тред пытаюсь выяснить, какие такие **фундаментальные** проблемы есть в Perl 6 кроме факторов типа его популярности (которые не влияют на то, что ты можешь сесть и пилить код, и абсолютно всё в мире из культуры когда-либо было непопулярным). Но мне не приводят ни живых кусков кода, типа «Вот это плохо», ни каких-то фатальных недостатков дизайна, всё тщетно. Может ты мне сможешь показать код и какие-то причины, почему на Perl 6 невозможно и абсолютно нельзя писать программы? Хотя бы что-нибудь кроме ярлыков-прилагательных(«никто не пишет», «либ нет» и другого 4.2) и недоказуемых/неопровергаемых ярлыков уровня «синтаксис ужасен»(где, в чём, почему?). Складывается впечатление, что говорящие в глаза никогда не видели язык и судят исходя из банального трайбализма, хотя, конечно, этому впечатлению я не доверяю, ведь всегда может оказаться, что человек язык знает и покажет мне сейчас аргументированную точку зрения, с которой я не смогу не согласиться.

Если ты уверен в истинности того, что это нож, которым ненужно программировать ни при каких условиях, ты можешь привести свидетельства этого высказывания, на которых основываешь свою точку зрения, верно? Типа «Вот в языке есть вот это, значит невозможно программировать» или «Есть вот это вот, это усложняет программирование в 10, 50 раз, а вот в аналогичном примере кода в $lang-name это делается красивее и в сто раз короче». Если ты задумаешься и не найдёшь свидетельств, спросишь ли себя «Хмм, откуда у меня это мнение, если я не знаю свидетельств в его поддержку? Может его нужно откалибровать?»?

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

Классы из коробки с сокрытием данных, роли по Алану Кею, мультиметоды с поздним связыванием, сахар для геттеров-сеттеров, делегирования, композиция, наследование (в том числе множественное), объекты типов как first-class citizen, генерация конструкторов для атрибутов(полей), реализация мета-объектного протокола. Есть акторы (в данном случае имея в виду потокобезопасные классы), причём сделанные за сто строчек библиотеки, запиленные через метаобъектный протокол, а не руками в компиляторе. Для пользователя нужно только заменить объявление «class» на «monitor» в коде и бум - вызовы методов экземпляров будут потокобезопасными, zero boilerplate, так сказать.

Криво или не очень? Если криво, то в чём кривота?

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

Ещё простенький бенчмарк, замеряющий создание и работу с объектами, вот здесь, который почти втрое короче, чем на Perl 5, работает быстрее при том, что сложностей в реализации с точки зрения фич Perl 6 больше. А вот здесь расписывается, что эта скорость учитывает отвратный startup time, который можно починить, аллокацию ряда объектов, которую можно выоптимизировать, а также perl 6 использует числа произвольной длины изкоробки, и всё это можно сделать быстрее.

Опоздало на 10 лет

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

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

Мне также любопытно, в чём конкретно выражается это «язык опоздал»? Он «опоздал» и компилятор вдруг перестал запускаться? Он «опоздал» и все фичи вдруг рассыпались в прах? Мало того, что опоздание субъективно, даже если оно есть, как именно оно препятствует использованию языка?

Как происходит внутреннее создание цепи «Опоздал на 10 лет => ... => Нельзя использовать», какие промежуточные звенья?

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

Классы из коробки с сокрытием данных, роли по Алану Кею, мультиметоды с поздним связыванием, сахар для геттеров-сеттеров, делегирования, композиция, наследование ...

Широкий простор для мамкиных архитекторов. Особенно ржачно это все смотрится в контексте запросов ТС (от однострочников до скриптов на тыщу строк).

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

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

А теперь представь сколько стоит переписать с 5 версии на 6.

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

Это подмена задачи. Речь идёт о том, есть ли разумные, подкреплённые свидетельствами аргументы против использования языка (написания на нём кода). Речь не идёт о портировании и работе с легаси.

Но мы отходим от конкретики, технические вопросы ещё будут? Я помню, про асинхронщину и канкаренси уже писал тебе, интересно было на слайды глянуть пару минут?

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

Я помню, про асинхронщину и канкаренси

Ну это уже Go всё захавал.

технические вопросы ещё будут?

А в чем вопросы ? Все подобные языки интерпретируются в байт-код, работают примерно одинаково по скорости. Остальное - дело вкуса и хайпа. Хайп на perl прошел 10 лет назад.

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

Ну это уже Go всё захавал

Ты код видел? Если да, можешь в уме прикинуть, как написать простенький observable с подпиской для событий на go? Теперь добавь туда условие, например сделать из него новый observable, типа «Если нет события N секунд, выбросить исключение и закрыть подписку», прикинь, каким будет код. Теперь прикинь, твой код учитывает гонку, когда выброс исключения может начаться и тут тебе приходит событие? Если ты закрыл подписку на этот observable, таймаут будет автоматически отключён? Если первый observable выбросит исключение и упадёт, сработает ли таймаут? Если сработает таймаут, будет ли автоматически закрыта подписка на первый observable? Если первый observable скажет «Больше событий не будет», остановится ли таймаут? Является ли этот код composable в том смысле, что его можно переиспользовать просто вызвав?

Сколько это займёт строк и если ты их напишешь, вспомнишь ли ты обо всех этих крайних случаях? Поможет ли тебе этот инструмент?

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

Все подобные языки интерпретируются в байт-код, работают примерно одинаково по скорости

Речь не о скорости, а о том, что есть утверждение о том, что на этом языке ненужно/невозможно писать программы, на ветку о котором ты ответил. Я пытаюсь найти свидетельства этому утверждению. Мне говорят «хайп прошёл», как будто компилятор перестаёт работать, если хайпа нет. Поэтому я интересуюсь, какие есть реальные причины вместо хайпов, гироскутеров и вейпов, «не модно» и других интересных причин.

Особенно иронично это на сайте про gnu/linux, который в широких массах на десктопах хайпа не имеет от слова совсем.

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

Да нет никаких фундаментальных проблем. Можно и брейнфак изучать, благо тюринг-полный. Просто одно дело - изучать язык для фана, как хобби, другое - с перспективной реального применения. Поэтому и советуют человеку есть суп ложкой, то есть изучать питон или там джулию, а не мёртвые языки. Perl6 хорош настолько же, насколько хорош PL/I, и практически настолько же мёртв.

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

есть ли разумные, подкреплённые свидетельствами аргументы против использования языка (написания на нём кода)

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

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

Можно и брейнфак изучать

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

другое - с перспективной реального применения

Если фундаментальных проблем нет, с чего ты решил, что у него нет перспективы реального применения? Вот сесть и написать бекенд на Perl6 или там клиент к бд или какой-нибудь скрипт автоматизации или $whatever? Руки ломаются, пальцы код не пишут? Вовсе нет.

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

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

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

Если ты в курсе про bandwagon effect, ты должен также быть в курсе, что единственное, что помогает набрать критическую массу - это её увеличивать, разрывая порочный круг, а не ходить по форумам и отговаривать от этого тех, у кого есть желание это делать, во имя махрового конформизма.

Для языка, который зарелизился чуть меньше, чем 4 года назад, это нормально. Какой-нибудь Руби 10 лет не мог взлететь, например. Это не делает инструмент плохим.

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

Вот сесть и написать бекенд на Perl6 или там клиент к бд

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

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

ТС ищет не работу, а приключений. Хотя для его однострочников можно взять искоробочный перл5 и не заморачиваться, может и по работе где пригодится. Питон не подходит, потому что во-первых нет гарантий, что твой скрипт запустится через n лет, во-вторых питон недостаточно выразителен для одно(десяти и сто)строчников.

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

См. ответ на твой второй комментарий.

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

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

У C когда-то было два пользователя, но когда C вышел, ему не было альтернатив, он был удобен, и все стали на нём писать. То же самое - perl (оригинальный), то же самое - питон. Сейчас альтернативы есть. Есть питон, есть пых, есть js, есть в конце концов .net-и-не-надо с его системой языков.

Какой-нибудь Руби 10 лет не мог взлететь, например

Какой-нибудь руби так и не смог взлететь.

Для языка, который зарелизился чуть меньше, чем 4 года назад, это нормально

Для языка, который начал разрабатываться 10 лет назад - это не нормально. Поезд ушёл, просто ушёл. Люди ушли. Люди пишут на том, на чём можно писать, и на том, чьё не вызывает коллизий с другими инструментами. JScript помер, J# и Visual J++ померли, и perl6 утонет, побултыхавшись.

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

инструмент должен подбираться под задачу по удобству

Именно поэтому судьба Perl6 незавидна.

на С кучка людей, которые казались отщепенцами

Гм. Не уверен, что был такой момент, когда C программисты казались отщепенцами.

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

Вот сесть и написать дырявый бекенд на Perl6

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

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

Сейчас альтернативы есть

Немного пооффтоплю: как ты себе видишь будущее через, скажем, 50 лет? Будем ли мы(или просто погромисты как класс) писать на питоне, пыхе, js-е в конце-концов? Если будут какие-то другие инструменты, то почему?

Какой-нибудь руби так и не смог взлететь

Теперь нам нужно дать определение «взлёту» сейчас, ведь мы явно не сходимся по терминам с тобой.

JScript помер, J# и Visual J++ померли, и perl6 утонет, побултыхавшись

В истории было гораздо больше мёртвых языков, чем мы с тобой знаем. Были разные там платформы типа этого, про которых мало кто и слышал. Всё когда-то умрёт, умрёт и С, умрёт и питон. Предсказания о том, что умрёт раньше, а что позже, это не очень оптимальный способ проведения свободного времени. Ты не находишь советы вида «Я пытаюсь угадать будущее и думаю, что икс умрёт позже, чем игрек, поэтому бери икс» странными?

Lilly
()
Последнее исправление: Lilly (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.