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

Just an initial demo map, so that you don't start with an empty map list ...

Get Started. It's Free
or sign up with your email address
Rocket clouds
"Преимущества (и немного недостатки) Perl" by Mind Map: "Преимущества (и немного недостатки) Perl"

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

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

1.2. Объём кода

1.3. More Fun

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

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

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

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

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

3.1. CPAN

3.1.1. 109000 модулей

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

3.1.3. 10000 авторов

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

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

4.1. Например...

4.1.1. Компиляция "на лету"

4.1.1.1. Создание модулей, классов, функций, переменных runtime

4.1.2. Операции с symbol table

4.1.2.1. Замыкания

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

4.2. В результате

4.2.1. Mechanism, not policy

4.2.2. можно делать ВСЁ

4.2.2.1. Например свой ОО

4.2.2.1.1. Moose

4.2.2.2. Например, продвинутый шаблонизатор (TT)

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

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

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

5.1.2. Прекрасно подходит для web

5.1.2.1. Full-stack

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

5.1.4. Один язык для всего

5.1.4.1. Web-приложения

5.1.4.2. Сетевые демоны

5.1.4.3. CRON-скрипты

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

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

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

5.4.1. Идеален для oneliners

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

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

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

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

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

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

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

7.1. Достаточная

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

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

7.2.1. XS сложен

7.2.1.1. Inline прост

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

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

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

8.3. Regexps

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

9.1. ФП

9.1.1. "Higher Order Perl"

9.2. ООП

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

9.3. Процедурное

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

10. More Fun

10.1. TIMTOWTDI

10.1.1. "Mechanism not policy"

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

10.3. Perl hackers

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

10.5. DWIM

10.6. Obfuscations

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

11.1. Yandex

11.2. Rambler

11.3. LiveJournal

11.4. Mail.ru

11.5. setup.ru

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

11.6.1. Rucenter

11.6.2. Reg.ru

11.6.3. Webnames

11.6.4. Masterhost

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

12. Недостатки

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

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

12.2.1. Punctiation variables

12.2.2. Formats

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

12.3.1. Требует самодисциплины и квалификации

12.3.1.1. Нужны стандарты кодирования

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

12.4.1. Зато прекрасная работа с асинхронным IO

12.4.1.1. POE

12.4.1.2. IO::Lambda

12.4.1.3. Coro

12.4.1.4. AnyEvent

12.4.1.5. IO::AIO

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

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

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

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

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

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

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

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

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

12.9.1. CGI.pm...

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

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

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

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

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

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

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

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

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

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

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

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

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

15.1.2. Мало новичков

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

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

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

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

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

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