LINUX.ORG.RU

Сегодня языку Perl исполнилось 25 лет!

 , , ларри уолл


5

2

25 лет назад, 18 декабря 1987г., программист и лингвист Ларри Уолл выпустил первую версию языка программирования Perl.

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

★★

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

Кстати, писать непонятную никому НЁХ - да, это круто, если сделано специально. А тетрис на sed? Бессмысленно, но круто. Тебе слабо? Не завидуй так громко, не всем быть мастерами, ремесленники даже более востребованы.

тетрис на sed не бессмысленно. а мне - да, слабо. лень столько ерунды писать, хотя код там простой.

Но не съезжай на sed, не провоцируй мну (: Лучше покажи мне выше по треду _читаемый_ код на перловке. Я такого не наблюдаю. Сам язык по читаемости говно, дык и перловоды делают ещё хуже.

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

читать регулярные выражения я немного умею. Неужели ты об этом не знаешь?

ЗЫЖ вот тебе первый попавшийся код с регулярками http://drbatty.ru/sed/ch04s05.html

drBatty ★★
()
Ответ на: комментарий от border-radius

Но ведь не называю неосиляторами тех, кто не знает системы команд x86.

случаи разные бывают. Если человек пишет серьёзное ПО и называет себя «программистом», причём пишет он под x86 (ОС и ЯП не играет роли), и при этом не понимает что-то типа XOR EAX,EAX... То он не программист, а му... Ну может просто студент.

Или просто показной «Ылитизм». В общем, да, ничто так не портит команду, как её фанаты.

вот и я о том...

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

А с C я трахаюсь прямо сейчас, о его чудесной концепции можно мне не рассказывать.

сишечка, это не ЯП. Сишечка - это любовь до гробовой доски.

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

хоспаде, еще один базовые утилиты не осилил? есть же rev, да даже awk-ом будет лучше

кому нужно ваше rev? преподавателям? Вот дайте им мой скрипт. (скрипт правда не совсем мой, авторство утеряно).

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

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

почему фанаты перла не тратят время, не учат сахар, а пишут нечитаемое говно?

Вот для меня хаскел тоже был ппцом пока не потратил три недели на его изучение. Гуру не стал, но конструкции типа qsort читаются в лёт.

анекдот:

- что умеешь?

- могу копать, могу не копать.

- А лестницу можешь?

- могу! только копать долго...

Вот твоя qsort на хаскеле - как та лестница. Если ты не в курсе, IRL требуется иное.

По твоей логике и линух по сравнению с виндой говно - там же ничего не понятно и надо читать кучу манов.

не. в последние лет пять, для меня маздай говно: ничего непонятно, дык ещё и манов нет... Отвык (:

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

Лучше покажи мне выше по треду _читаемый_ код на перловке

$a=IO::Select->new;
$s=IO::Socket::INET->new(LocalPort => 3000, Blocking => 0, Listen =>1);
$a->add($s);
while(1) {
  for $e ($a->can_read) {
    $e == $s ? $a->add($e->accept)
             : do { 
                 $e->recv($msg, 4096);
                 $msg ? $e->send($msg) 
                      : $a->remove($e);
               }
  }
}

Какое конкретно месте нечитаемо? Ну, кроме того, что для краткости if () {} else {} были заменены на не совсем привычное для сишников (но не для перлистов, которым конструкции do { it } or die знакомы с детства) использование тернарного оператора ?:

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

Ты не поверишь, детка :D Сегодня нет времени, завтра найду в книге по перлу пример, как выполнять поиск по области видимости. Если забуду - ты не стесняйся, сбрось напоминание. Perl именно что хранит список переменных из каждой области видимости в переменной ( ЕМНИП, в хэше )

Поверю. Дедок, у меня только один вопрос(это в догонку о том что отступы в python это маразм), а этот хэш скобочки тоже хранит? И semicolon?

Пробелы значимы во всех языках, и уверен в Perl тоже. Даже в scheme позволяет отличить float от создания pair.

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

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

Какое конкретно месте нечитаемо?

спасибо. Вот если-бы хотя-бы кто-то кроме тебя так писал - вопросов-бы не было.

Ну, кроме того, что для краткости if () {} else {} были заменены на не совсем привычное для сишников (но не для перлистов, которым конструкции do { it } or die знакомы с детства) использование тернарного оператора ?:

тернарный оператор вполне естественен для сишника. Вот использование do{} действительно непривычно...

drBatty ★★
()

Такие события нужно отмечать ИРЛ. Чтоб можно было дать в морду несогласным любителям пресмыкающихся.

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

Пробелы значимы во всех языках, и уверен в Perl тоже.

4.2

int main(){printf("helloworld!\n");return 0;}
пробелы нужны только если нужно разделить два слова, например int и main.

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

ну не звёздочками-же их отбивать?!

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

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

Это ещё в книге надо искать?

В python всё __dict__.

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

Вот если-бы хотя-бы кто-то кроме тебя так писал

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

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

В виде «a ? b : c;» а не «x = a ? b :c;» ?

redgremlin ★★★★★
()

Что характерно, большинство комментаторов, высказавшихся о write-only природе перла не видели на нем ничего кроме пары меметичных однострочников. Наверное, какая-то альтернативная питонологика.

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

пробелы нужны только если нужно разделить два слова, например int и main.

Я не сомневался. Значимый пробел, ох какой значимый. Но почему остановились на этом? Ведь можно было какой-то символ вставлять вместо пробела, что бы совсем от них избавиться.

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

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

Дык о чём и речь. Адекватный программист сразу с ними бы и написал. Перл портят эти самые «труъ-хэццкеры», вываливающие в качестве примеров дампы бредокода (если б это был JS, я бы сказал, что его через Closure Compiler + UglifyJS прогнали).

Хотя нет, всё-таки не буду я писать MMIO-brainfuck. Он ведь уже есть. Perl называется.

border-radius
()
Ответ на: комментарий от border-radius

Со всей ответственностью заявляю: баш не тормозит даже на 486DX2.

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

Некоторым кстати не нравится именно эта природа юниксов: сотни утилит которые плюют друг в друга файлами или текстом посредством простого скриптинга, да и сущности системы хранятся в виде файлов подключённых к общему дереву во время старта.

А мне нравится. Я теперь не могу ничего сделать в windows, просто потому что нет общей методики. Каждый додик в microsoft придумывает, и никогда об этом не узнаешь если рецепт не напишут на msdn, или где они там...

Чё не устраивало создателя Perl?

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

Однострочник? Что ты курил?

Ты не въехал в мой msg. Адекватный программист не сделал бы эту портянку однострочником.

border-radius
()
Ответ на: комментарий от andreykyz

Обычно скрипт написанный в одну строчку на Перле проще заново переписать на питоне в 20 строк, чем втыкать что да как.

+1 Только не в 20, а скорее в 5-10.

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

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

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

В виде «a ? b : c;» а не «x = a ? b :c;» ?

какая разница? x = y тоже выдаёт результат, и printf(), и x++. Ну и что? В C/C++ полно конструкций, результат которых никогда/редко/часто не используют. :? одна из них.

drBatty ★★
()

Лол я уже пива успел выпить за Перл вчера а тут все срутся )) Причем перловики еще и специально постят злые однострочники веб серверов, как будто бы специально чтобы антиперловиков еще сильнее убедить в нечитаемости перла :D На самом деле ни один адекватный разработчик в нормальном, большом Perl проекте такие вещи не пишет. Все четко форматируется и выглядит не хуже чем в питоне. Максимум что может быть это какаято конвеерная обрабокта списков/хешей через map/grep/etc, но такие конструкции выглядят как абракадабра только для адептов Си или Асма, для людей знакомых хоть немногос ФП языками, да и вообщемто любыми более-менее современными языками это выглядит вполне читаемо. Точно также и закорлючки - мне как правилов 90% случаев используется только $_ ну может еще $$...все.

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

Перл портят эти самые «труъ-хэццкеры», вываливающие в качестве примеров дампы бредокода.

Хэцкеры за годы застоя разбежались по другим языкам. Сейчас всё спокойно. Если видишь, что перлист в качестве примера даёт однострочник
1) на то он и пример, чтобы в продакшен не идти;
2) весьма вероятно, что он его проверял perl -e 'код'.

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

После суходрочки на Си, Перл казался совершенством!

Вы слишком много применяли Си для того, для чего он не нужен, видимо.

sv75 ★★★★★
()

Не поймёшь...

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

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

даже на третьем пне bash не тормозит

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

shell _обязан_ знать любой системный администратор

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

видел я вашу говно...

Вместо созерцания фекалий я всё-таки рекомендую посвятить время документации. Причём не просто её созерцанию, но чтению и понимаю.

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

Я не сомневался. Значимый пробел, ох какой значимый. Но почему остановились на этом? Ведь можно было какой-то символ вставлять вместо пробела, что бы совсем от них избавиться.

а зачем? Их и так практически не нужно. В данном случае int можно не писать, и return 0 тоже. Потому без пробелов можно и обойтись в принципе.

main(){printf("helloworld!\n");}

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

а этот хэш скобочки тоже хранит? И semicolon?

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

Пробелы значимы во всех языках, и уверен в Perl тоже. Даже в scheme позволяет отличить float от создания pair.

в perl все int, string и прочие boolean - просто scalar. И один скаляр в другой переводится на лету без всяких программистских заморочек

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

Для вменяемого оформления кода - само собой ( хотя лично я предпочитаю табуляцию )

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

Однострочник? Что ты курил?

почему на C однострочники пишут только дебилы и задроты?

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

Ты не ответил насчёт твоих нетленных работ, жду. Остальные вопросы до появления примеров игнорирую

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

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

а вот у Леннарта тормозит на федоре (а там минимально 4й пень + тыща метров).

А мне нравится. Я теперь не могу ничего сделать в windows, просто потому что нет общей методики. Каждый додик в microsoft придумывает, и никогда об этом не узнаешь если рецепт не напишут на msdn, или где они там...

вот поставят тебе systemd, и будет как в венде.

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

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

Выше по треду встречались совершенно противоположные вещи от поклонников. Короче, перлисты не могут даже определиться, «годы застоя» или «активно развивается». Забавно.

1) на то он и пример, чтобы в продакшен не идти;

Хорошая отмазка. Главное - не перепутать когда-нибудь продакшн с выпендрежом.

2) весьма вероятно, что он его проверял perl -e 'код'.

В перле нету REPL?

border-radius
()
Ответ на: комментарий от Lennart

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

и что? мне до аэропорта тоже дольше, чем до Невы. Но в Америку я не поплыву, а полечу.

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

о да... Сложно написать имя демона?

Вместо созерцания фекалий я всё-таки рекомендую посвятить время документации. Причём не просто её созерцанию, но чтению и понимаю.

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

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

Бэтти, откуда такая ненависть к systemd? На относительно слабом железе грузится ощутимо быстрее сисвинита. Была бы возможность - и на 486DX2 потестил бы.

border-radius
()
Ответ на: комментарий от drBatty

а зачем, если слака на башевской инициализации у меня влёт загружается

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

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

В принципе в хеше пробелы и любые спецсимволы хранятся без проблем.

Ничуть не ставил под сомнение. И никаких удобств по чтению кода скобочки не создают(исключение лиспы). За обозначение блоков кода фигурными скобочками ратуют рабы привычки.

Люди много лет программирующие и работающие с клиентами и компаниями которые платят за код - выбирают python часто просто за то как он выглядит на экране. Всё остальное им уже индифферентно.

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

У меня складывается такое впечатление, что адептов systemd и прочих Леннартопоклонников кто-то в детстве сильно обидел, раз они даже в холивар «perl vs другие языки» приходят, чтобы доказать, что systemd лучше.

shell-script ★★★★★
()
Последнее исправление: shell-script (всего исправлений: 1)
Ответ на: комментарий от anonymous

Такие события нужно отмечать ИРЛ. Чтоб можно было дать в морду несогласным любителям пресмыкающихся.

Давать в морду несогласным как раз лучше over HTTP.

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

Вот это приспособляемость. Только что тебя поймал на сказанной глупости

Сегодня языку Perl исполнилось 25 лет! (комментарий)

Scope это область видимости переменных. Вот когда сделаешь интерпретатор который будет хранить символы которыми обозначается scope, a lookup переменных будет осуществляться поиском в тексте, вот тогда обозначение области видимости переменных отступами можно будет с гордостью назвать маразмом!

Как ты уже начинаешь выкручиваться

И никаких удобств по чтению кода скобочки не создают(исключение лиспы). За обозначение блоков кода фигурными скобочками ратуют рабы привычки.

Люди много лет программирующие и работающие с клиентами и компаниями которые платят за код - выбирают python часто просто за то как он выглядит на экране. Всё остальное им уже индифферентно.

Ну типа «обозначение scope'а пробелами это конечно маразм, но вроде бы и не совсем, а ваши скобочки всё равно не рулят» :)

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

Я не буду ставить вердикт вашим умственным способностям, они наверняка хороши.

Но у вас дислексия.

Ключевая фраза была «вот тогда обозначение области видимости переменных отступами можно будет с гордостью назвать маразмом!».

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

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

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

Это доказательство от противного.

Был такой непризнанный коллегами учёный.

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

А он устроен как в Америке или любой другой стране. Никто не будет вкладывать деньги в сомнительные технологии типа perl или похапе. Можно нанять индусов (такжиков или молдаван) на ASP.NET или явские технологии. И получить лучший результат, намного быстрее и за гораздо меньшие деньги.

я тебе рассказываю о реальной ситуации на Российском рынке труда, а ты мне рассказываешь чего-то вымышленное, сферическое и в вакууме

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

Я говорил, что этой идиоме уже как минимум лет 40, она в LISP'е испокон веков.

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

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

Потому без пробелов можно и обойтись в принципе.

«разве это жизнь»? Давайте ещё от чего-нибудь откажемся.

в последние лет пять, для меня маздай говно: ничего непонятно, дык ещё и манов нет... Отвык (:

посади человека который никогда компов не видал и спроси что ему понятнее - окошки или коммандная строка? Вряд ли его мнение совпадёт с твоим.

true_admin ★★★★★
()

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

2. Мать его, perltidy, но некоторые никак не понимают что структура программы не зависит от ее представления. Не можете осилить смысл строки? Печально, но вы - слабак. А отформатировать и разобрать суть исполнения программы - снова мозгов не хватает? Может хотя бы немного стоит обрабатывать ситуацию интеллектом прежде чем идти на поводу своей быдловатой натуры с рефлексами? Но тут похоже клиника: поскольку людям принципы TIMTOWTDI не знакомы, то и влиять на исход ситуации вовремя они не способны, поскольку для этого нужен интеллект и мышление чтобы ориентироваться в пространстве событии и вариантов. Насколько мне известно, питон в основе своей как раз базируется на примитивизме и, как следствие, воспитывает это в своих поклонниках-программистиках.

3. А что в perl? - А в perl можно все. Coroutines? - Легко. Lazy evaluations? - Легко. REPL? - все есть. Более того, все как-то можно - можно и по-другому. Сколько концепции? Сколько способов? Какова же метрика пространства решении в perl? - Сделать оценку языка perl сможет ИИ. Его можно создать с использованием модуля AI-Prolog (доступен из cpan), который реализует парадигму логического программирования в perl.

4. Что еще? - Это уже есть и/или возможно.

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

Выше по треду встречались совершенно противоположные вещи от поклонников. Короче, перлисты не могут даже определиться, «годы застоя» или «активно развивается». Забавно.

Если бы вы перед тем как чтото писать, потрудились хоть немного изучить предмет разговора - то такие глупости бы не писали. Я именно тот анонимус который писал о текущем развитии. Активное развитиеперла идет начиная с версии 5.10 (-5.16 текущая), начиная с версии 5.11 изменился даже цикл выпуска новых версий - он стал более коротким. Застой же действительно имел место быть, в период развития 5ой ветки до 5.8 включительно.

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