Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

"Преимущества (и немного недостатки) Perl" by Mind Map: "Преимущества (и немного
недостатки) Perl"
5.0 stars - 2 reviews range from 0 to 5

"Преимущества (и немного недостатки) Perl"

Про великий и могучий язык и его сравнение с другими

Ключевые преимущества

Скорость разработки

Объём кода

More Fun

Фокусировка на языке задачи, а не на языке решения

How does Perl put the focus onto the creativity of the programmer? Very simple. Perl is humble. It doesn't try to tell the programmer how to program. It lets the programmer decide what rules today, and what sucks. It doesn't have any theoretical axes to grind. And where it has theoretical axes, it doesn't grind them. Perl doesn't have any agenda at all, other than to be maximally useful to the maximal number of people. To be the duct tape of the Internet, and of everything else. You've heard the joke, I'm sure. How is duct tape like the Force? It has a light side, and a dark side, and it holds the universe together. Later in this talk, I intend to define the universe and give three examples.

Динамическая типизация

Тестирование против статичной типизации

5000 модулей на CPAN связанных с тестированием

Готовые библиотеки

CPAN

109000 модулей

25000 дистрибутивов

10000 авторов

Охвачены все сферы примения

Динамические возможности

Например...

Компиляция "на лету", Создание модулей, классов, функций, переменных runtime

Операции с symbol table, Замыкания

Devel::Declare -- создание дополнительных синтаксических конструкций

В результате

Mechanism, not policy

можно делать ВСЁ, Например свой ОО, Moose, Например, продвинутый шаблонизатор (TT)

Доп. преимущества

Подходит для любых задач

Кроме вычислительных

Прекрасно подходит для web, Full-stack

Подходит для бизнес-логики

Один язык для всего, Web-приложения, Сетевые демоны, CRON-скрипты

Кросс-платформенность из коробки

Прекрасная поддержка unicode

Великолепно "Масштабируется"

Идеален для oneliners

Подходит для больших проектов

Встроенные структуры данных

Очень просто обращаться

Прозрачная конвертация в/из JSON, YAML

Не нужны доп. библиотеки

Возможность писать на "голом" Perl

Производительность

Достаточная

По крайней мере для бизнес логики и web -- более чем

Критичные участки можно писать на C/C++ (XS)

XS сложен, Inline прост

Высокоуровневые возможности

Операции над списками

Цепочные конструкции

Regexps

Мультипарадигменность

ФП

"Higher Order Perl"

ООП

ООП можно делать "под себя" какое угодно

Процедурное

"Бесструктурное"

More Fun

TIMTOWTDI

"Mechanism not policy"

"Насыщенный" код

Perl hackers

Адекватное коммьюнити

DWIM

Obfuscations

Крупные проекты

Yandex

Rambler

LiveJournal

Mail.ru

setup.ru

Регистраторы доменов

Rucenter

Reg.ru

Webnames

Masterhost

Мало новых больших/успешных проектов публично анонсирующих использование perl

Недостатки

Крутая кривая обучаемости

Много "исторического мусора"

Punctiation variables

Formats

Сопровождабельность кода

Требует самодисциплины и квалификации, Нужны стандарты кодирования

Не очень удачная мультитредовость

Зато прекрасная работа с асинхронным IO, POE, IO::Lambda, Coro, AnyEvent, IO::AIO

Любую фичу можно рассматривать как недостаток ;)

Неудобный поиск модулей на CPAN (их СЛИШКОМ много)

Бывает, трудно найти САМОЕ подходящее решение

Часть модулей устарела, не обновляется

Отсутствие удобоваримго дешёвого хостинга

Однако, есть VPS...

Не так удобно выкладывать на хостинг, как PHP

Дополнительно повышает "планку входа"

Большое количество информации о морально устаревших подходах

CGI.pm...

Замечания по докладу

ЛЮБУЮ фичу можно рассматривать как преимущество, так и как недостаток

Невозможно быть 100% объективным, весь мир IT-технологий субъективен

Не хочу разводить holywar

Каждый использует то, что ему ближе

Хочу донести некоторые соображения, которые можно принять или не принимать

Ресурсы по теме

http://123.writeboard.com/470b8ce9d41307670

http://www.slideshare.net/aspushkin/perl-vs-java

http://www.perl.com/pub/a/1999/03/pm.html

"Социальные" и экономичекие аспекты

Тяжело найти разработчиков

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

Мало новичков, Считают этот язык "устаревшим" и малопопулярным

Большинство разработчиков начали работать с языком достаточно давно

Высокий уровень профессионализма

Высокий ценник

Много споров по поводу "Умирающий ли язык Perl"

В целом тяжелее убедить инвесторов начать новые разработки на Perl