LINUX.ORG.RU

Выпуск Pragmatic Perl №29

 ,


0

0

Состоялся 29 выпуск журнала Pragmatic Perl.

В этом номере:

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

★★★★★

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

Друзья, есть вопрос: можно ли совместить Perl с HTML/CSS? Можно ли заменить PHP Perl'ом? Хочу изучить Perl....впринципе :)

Если да, то не подскажете примеры успеха? (ну или узбека).

Заранее всем спасибо!

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

Друзья, есть вопрос: можно ли совместить Perl с HTML/CSS? Можно ли заменить PHP Perl'ом?

да! еще и как!

Хочу изучить Perl....впринципе :)

смотри не блевани от https://ru.wikipedia.org/wiki/TMTOWTDI
я предупредил :)

Если да, то не подскажете примеры успеха? (ну или узбека).

первое что попадается на память амазон был сначала написан не perl, и вполне себе хорошо работал

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

примеры успеха

- LiveJournal - Booking.com

Оба теперь испытывают большие проблемы, т.к. программистов найти сложно, код разросся до уродских размеров, а переписать всё с нуля дороже выйдёт. Я имею опыт поддержки кодовой базы крупного портала, написанного на перле, больше такого я не хочу. Так что советую подумать дважды, прежде чем делать ставку на перл. Этот язык хорош как command-line tool и для автоматизации рутинных задач простыми скриптами. Крупные проекты на перл - это АД.

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

Можно ли заменить PHP Perl'ом?

google://троллейбус+буханка

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

Если да, то не подскажете примеры успеха?

Ruby

C#

anonymous
()
Ответ на: примеры успеха от vakorol

Тоже самое кроме «программистов найти сложно» можно сказать и про Ruby с Python. Оно все годится to quickly bootstrap a website, и если дальше виден рост, то лучше переписать его на что-то статическое-конпелируемое и вообще.

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

Можно ли заменить PHP Perl'ом?

Смотря что ты делаешь с PHP. Взять готовую CMS-ку и на ней быдлокодить - с перлом такое не прокатит. А если программировать с понимаем смысла того, что ты делаешь - на CPAN полно фреймворков и прочих ништяков.

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

use Mojolicious

Небольшие и средние проекты на ура. Также Perl великолепен в качестве “системного клея”. Для разработки прототипов.

Крупные же проекты требует иной культуры производства - всё должно быть строже, согласно инструкциям и требует избегать творческих излишеств в коде. Имхо в этом случае уже в сторону Java (Scala) смотреть.

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

Как там Перл 6?

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

ну, хотя бы: http://rabout.park.rambler.ru/doc/perl.shtml https://workingatbooking.com/vacancies/perl-developer-2/ вакансии открыты постоянно.

У Яндекса, пока тот бэкенд на перле держал, тоже постоянно вакансии перловиков висели открытыми.

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

У меня знакомый в Booking.com думал устроиться, там чуть ли не на коленях ползали, уговаривали, хотя у него тогда и опыта-то мало было (года 2 назад).

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

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

vakorol
()

Если PHP - это фрактал плохого дизайна, то Perl - это квантовое самоубийство, фанаты Перла не видят очевидных проблем, вся суть комьюнити - «закроем глаза и огня уже нет!» Кривые сериализация, исключения и многое другое...

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

У Яндекса, пока тот бэкенд на перле держал, тоже постоянно вакансии перловиков висели открытыми.

Они и сейчас есть https://yandex.ru/jobs/vacancies/dev/dev_perl_main/. Откуда информация про бэкэнд?

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

Нет, скорее притянутый за уши аргумент. Крупные компании всегда ищут людей под свою тех. платформу.

У меня знакомый в Booking.com думал устроиться,..

Так что не устроился? Узнали бы какие там проблемы с Perl.

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

Кривые сериализация, исключения и многое другое...

Давайте уж по порядку - начнём с «Кривые сериализация», распишите детальнее?

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

Соглашусь с аппонентом, только частично. Всех перловиков разобрали в РФ. Новые не появляются, а если и появляются, то уходят на другие ЯП. У перла есть масса недостатков, которые не в силах исправить никто (например, многопоточность).

В Европе и Америке перл относительно процветает, ибо, там есть все условия, а главное нормальные (не лохи, которые вчера услышали слово scrum) product manager'ы (по сути high-level программисты): http://jobs.perl.org

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

Можно ли заменить PHP Perl'ом?

Хочешь пересесть с калины на москвич?

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

rex интересная штука, думаю, стоит попробовать на досуге

Такой же неработоспособный говнокод для локалхостов, как и ansible, puppet, saltstack, тысячи их. Не трать время впустую. Серьёзно. Если тебе надо автоматизировать большое количество серверов просто, быстро и не сложнее копипасты, бери chef. Если тебе нужно автоматизировать конфигурации любой практически осуществимой сложности, чтобы работало навека и не боишься немного поднапрячь мозги — бери CFEngine. Если у тебя три с половиной сервака, то не выпендривайся и автоматизируй на баше. В любом случае, при прочих равных я бы нанял человека, который осилил chef, а не клоуна с rex или ansible.

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

В гугл

Фраза «Гугл использует X» лишена смысла без уточнения где, как и для чего конкретно. Гугл использует вообще все существующие технологии. Какие-то для экспериментов на компах двух разработчиков, а какие-то — в проде. Так же Гугл использует кофеварки, стиральные машины и элеткрические духовые шкафы. Как бы не оказалось, что у гугловских кофеварок аудитория больше, чем у проектов на Перле ;)

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

В любом случае, при прочих равных я бы нанял человека, который осилил chef, а не клоуна с rex или ansible.

Ну вот у нас в компании куча разношерстных серверов провижнилась чефом из одной репы (ну и на дев-виртуалках, ессно). Оно, конечно, в разы приятнее паппета, но энсибл просто свежий воздух после обоих. Правда, вот его я пробовал на своих проектах, а не крупных — мейби есть грабли на каком-то этапе?

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

У перла есть масса недостатков, которые не в силах исправить никто (например, многопоточность).

многопоточность не уперлась - хватает fork'а и асинхронного взаимодействия процессов.

давайте еще что-то обсудим из этой «массы недостатков»?

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

У перла есть масса недостатков, которые не в силах исправить никто (например, многопоточность).

у какого равноценного языка с этим всё супер?

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

многопоточность не уперлась - хватает fork'а и асинхронного взаимодействия процессов.

Очень уперлась. Современный мир это виртуалки. Нынешний тренд это запихнуть как можно больше процессов в единицу памяти. Увы, без мультипоточности, а точнее шаринга ОЗУ такой «плотности» не добиться.

Что касается асинхронного взаимодействия, то это приводит к проблеме пожирания CPU на (де-)сериализацию. Итого, проигрышь в ОЗУ и проигрышь в CPU. Остается в плюсе только скорость разработки, кою могут предложить, не хуже чем у Perl, любые другие ЯП.

давайте еще что-то обсудим из этой «массы недостатков»?

Озвучил выше: память, cpu.

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

и производительность в 3.14zду.

Ок. Назови мне альтернативу тогда для yaws. Erlang хоть и специфичен, но рулит и педалит в ваших веб-2.0.

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

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

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

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

Зависит от задачи, fork + COW тоже неплохо шарит память.

Вот скажи, на Perl ты это делал? Какая БД?

Из того, что я делал получаем блокировки в любой БД. Если 1 writer, то все более-менее нормально. Берем два writer'а и привет дедлоки, фризы и т.д. Все это решается, ценой ожидания на разблокировку, что ну никак не доходит до уровня потоков.

Кстати о COW. Что-то единственный модуль LMDB_File никто усердно не пилит. А ведь должны. Но, как я уже сказал, рано или поздно проект съедет на что-то вменяемое, поэтому никто не парится.

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

Зачем ты пришел в этот тред? Иди отседова, пророк хренов. Церкоф свидетелей жабы седьмого дня

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

Нынешний тренд это запихнуть как можно больше процессов в единицу памяти. Увы, без мультипоточности, а точнее шаринга ОЗУ такой «плотности» не добиться.

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

Современный мир это виртуалки.
Что касается асинхронного взаимодействия, то это приводит к проблеме пожирания CPU на (де-)сериализацию.

Процессы которые которые крутятся в этих виртуалках по большому счёту только этим и занимаются: (де-)сериализация и трансформация.

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

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

Очень уперлась. Современный мир это виртуалки. Нынешний тренд это запихнуть как можно больше процессов в единицу памяти. Увы, без мультипоточности, а точнее шаринга ОЗУ такой «плотности» не добиться.

Вы эти сказки для пользователей nodejs расскажите, которая принципиально однопоточная.

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

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

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

Perl же нечитаем, ты ничего не поймешь, зачем время тратить?

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

да, что там особенно проделывать:

use strict; use warnings;
use Inline C => <<'...';
int n = 500;

void *inc(void *v_ptr)
{
int *ptr = (int *)v_ptr;
while(++(*ptr) < n);
return NULL;
}

void thr() {
    int x = 0, y = 0;
    pthread_t inc_t;
    if(pthread_create(&inc_t, NULL, inc, &x)) { fprintf(stderr, "err create\n"); }
    while(++y < n);
    if(pthread_join(inc_t, NULL)) { fprintf(stderr, "err join\n"); }
    printf("%d, %d\n", x, y);
    return NULL;
}
...

thr;

также видел в ZMQ::LibZMQ3, PDL::ParallelCPU - работает хорошо

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

Ну вот у нас в компании куча разношерстных серверов провижнилась чефом из одной репы (ну и на дев-виртуалках, ессно). Оно, конечно, в разы приятнее паппета, но энсибл просто свежий воздух после обоих. Правда, вот его я пробовал на своих проекПросто представь себе, сколько тах, а не крупных — мейби есть грабли на каком-то этапе?

Просто представь себе, сколько ты будешь ждать, пока Ансибл отыграет на 100 серверах свои плейбуки по SSH. Pull там просто никакой, всей инфраструктуры, которая вокруг Chef образовалась за всё время, там отсутствует напрочь. А ради трёх серверов я бы не стал морочиться вообще. Скрипт на баше накатал и сиди довольный.

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

а что не так с saltstack?

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

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

Где студенту со знанием Perl искать работу, программистом чтоб?

В Киеве. Джуниор (3й курс закончил), с которым вместе работаем над проектом, получает 1.5 килобакса.

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

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

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

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

И что там нормального в концепции? С pull часть функций просто не работает (состояние на начало 2015). На этом разговор о пригодности для использования в проде можно сразу заканчивать.

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

Чем rex интереснее тупого dsh (distributed shell) или в 1000 раз более мощного OpenMPI, который далеко не только для математики можно использовать?

DRVTiny ★★★★★
()
24 сентября 2015 г.
Ответ на: комментарий от anonymous

Фраза «Гугл использует X»

«в гугл» значило «вбей в гугл», т.е. поищи в гугле а сомсем не про то, что там гугл использует.

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