Падането на Perl, най -обещаващият език в мрежата

И възходът на Python. Има ли Perl бъдеще?

Падането на Perl, най -обещаващият език в мрежата

За първи път чух за Perl когато бях в средното училище в началото на 2000 -те. Това беше един от най -гъвкавите езици за програмиране в света, наречен Швейцарско ножче на Интернет. Но в сравнение със своя конкурент Python, Perl избледнява от популярността. Какво се случи с най -обещаващия език в мрежата?



Ниската бариера за влизане на Perl в сравнение с компилираните езикови алтернативи на по -ниско ниво (а именно C) означаваше, че Perl привлича потребители без официален CS опит (прочетете: деца на скриптове и начинаещи, които са написали лош код). Той също така се похвали с малка група от силни потребители (хардкор хакери), които могат бързо и гъвкаво да пишат мощни, плътни програми, които подхранват популярността на Perl сред ново поколение програмисти.

Централно хранилище (Цялостната мрежа за архивиране на Perl или CPAN ) означава, че за всеки човек, написал код, много повече в общността на Perl ( Програмираща република Perl ) може да го наеме. Това, заедно с остроумната евангелизация от еклектичен създател Лари Уол , чийто интерес към езика гарантира, че Perl води в синтактичния анализ на текста, беше формула за успех през времето, в което много текстова информация се разпространяваше в Интернет.

С наближаването на 21 -ви век бяха създадени много перли на мъдростта, за да се премести и анализира информацията в мрежата. Perl наистина имаше крива на обучение - често означаваше, че това е третият или четвъртият език, научен от осиновителите - но той седеше в горната част на купчината.



В надпреварата към хилядолетието изглежда, че C ++ ще спечели, Java ще се класира и Perl ще покаже, каза Уол в третия адрес на Perl през 1999 г. Някои от вас без съмнение биха искали да можем да изтрием тези първите два реда, но не мисля, че трябва да се притеснявате излишно. Обърнете внимание, че и C ++, и Java са езици за системно програмиране. Това са двата спортни автомобила пред състезанието. Междувременно Perl е най -бързият SUV, който изпреварва всички останали SUV. Той е най -добрият в своя клас. Разбира се, всички знаем, че Perl е в свой собствен клас.

После дойде разстроеното.

Мачът Perl срещу Python Grudge

Тогава се появи Python. В сравнение с директните скриптове на Perl, Python беше крива афера. Дори отне името на своя съименник, Летящия цирк на Монти Пайтън. Подходящо, повечето от ранните препратки на Уол към Python бяха безгрижни шеги за негова сметка.



Е, хилядолетието мина, компютрите оцеляха Y2K , и тийнейджърските ми години идваха и си отиваха. Учих математика, наука и хуманитарни науки, но се държах на една ръка разстояние от въвеждането на компютърен код. Познанията ми за Perl останаха като началото на нов текстов файл: бегъл , последвано от много празно място за запълване.

В колежа, приятели на CS в Принстън се радваха на Python като на любимия си език (въпреки популярния професор Брайън Керниган в кампуса, който помогна за популяризирането на C). Мислех, че Python е нов, но по -късно научих, че го има и когато порасна, просто не се вижда на класациите.

До края на 2000 -те години Python беше не само доминиращата алтернатива на Perl за много задачи за анализ на текст, обикновено свързани с Perl (т.е. регулярни изрази в областта на биоинформатика ), но беше и най -прокламираният популярен език , за които се говори с елегантност и красноречие сред моя кръг от приятели в кампуса, които харесваха да бъдат част от предстоящо движение.

Рамо до рамо: Бинарно търсене



Въпреки Python и Perl добре документирано съперничество и различията в дизайнерските решения - които продължават и до днес - те заемат подобна ниша в екосистемата за програмиране. И двата често се наричат ​​скриптови езици, въпреки че по-късните версии са ретро-оборудвани с възможности за обектно-ориентирано програмиране (ООП).

Забавящата се история на Pearl

1987 Лари Уол пуска Perl в дивата природа

1988 г. Издаден Perl 2

1989 г. Издаден Perl 3

1991 г. Издаден Perl 4

1994 г. Издаден Perl 5

2000 г. - сега [/b] Perl 6 в разработка

... И ускорението на Python

1991 г. Гуидо ван Росум пуска Python в дивата природа

1994 г. Издаден Python 1.0

2000 г. Издаден Python 2.0

2008 г. Издаден Python 3.0

[ източник , източник ]

Стилистично Perl и Python имат различни философии. Най -известните девизи на Perl са Има повече от един начин да го направите . Python е проектиран да има един очевиден начин за това. Конструкцията на Python даде предимство на начинаещите: Синтаксисът с повече правила и стилистични конвенции (например, изискващи отстъпи от празни пространства за функции) гарантира, че новодошлите ще видят по -последователен набор от програмни практики; кодът, който е изпълнил същата задача, ще изглежда горе -долу еднакво. Конструкцията на Perl облагодетелства опитни програмисти: по-компактен, по-малко подробен език с вградени преки пътища, което направи програмирането за експерта лесно.

По време на ерата на dotcom и възстановяването на технологиите от средата до края на 2000-те, високопоставени уебсайтове и компании като напр Dropbox (Python) и Amazon и Craigslist (Perl), в допълнение към някои от най -големите новинарски организации в света ( Би Би Си , Perl ) използва езиците за изпълнение на задачи, неразделна част от функционирането на бизнес в Интернет.

Но в течение на последните 15 години , не само начина, по който компаниите правят бизнес, се е променил и нараснал, но и инструментите, които използват, са се развили, неравномерно в ущърб на Perl. (Нарастваща тенденция, установена при последното сравнение на езиците, Хакер на Perl в страната на Python , както и от страна на Python агрегатор за евангелизация на Pythonista , също направено през 2000 г.)

колко давате бакшиш за доставка на хранителни стоки

Бавният спад на Perl

Днес растежът на Perl е в застой. В работилницата в Орландо Перл през 2013 г. един от разговорите беше озаглавен Perl не е мъртъв, това е задънена улица и твърди, че сега Perl съществува на остров. След като програмистите от Perl се отписаха, те винаги си тръгваха завинаги, никога да не се върнат. Други посочете, че Perl е оставени от езиците, за да се научат първи -в епоха, в която Python и Java са се разраснали изключително много, а нов участник от средата на 2000-те, Ruby, продължава да печели, като привлича нови потребители на арената на уеб приложенията (чрез Релси ), последвано от Джанго Framework в Python (PHP остава стабилен и като най -простата опция).

В биоинформатиката, където позицията на Perl като най-популярния скриптов език предизвика много пробиви през 90-те години като генетичното секвениране, Perl беше изместен от Python и статистическия език R (вариант на S-plus и низходящ от С , разработен също през 80 -те години на миналия век).

В научните изчисления моето настоящо поле, Python, а не Perl, е господарят с отворен код, дори се разширява за сметка на Matlab (също дете от 80 -те години , и по подобен начин се монтира с ООП способности ). И старт PHP нарасна по размер до точката, където сега може би е най -разпространеният език за уеб разработка (въпреки че позицията му е динамична, като Руби и Python потушиха доминирането на PHP и сега са утвърдени като законни алтернативи.)

Въпреки че Perl няма опасност да изчезне напълно, той е в опасност да загуби културно значение , иронична съдба предвид любовта на Уол към езика. Как Perl се превърна в аутсайдер и може ли тази тенденция да бъде обърната? (И, може би по -важното, ще Perl 6 да бъде освободен !?)

Как израснах да обичам Python

Защо Python , а не Perl? Може би илюстративен пример за случилото се с Perl е моят собствен опит с езика.

В колежа все още се придържах към съдържащите се среди на Matlab и Mathematica, но перспективата ми за програмиране се промени драстично през 2012 г. Осъзнах, че липсата на познания за структуриран компютърен код извън оградената градина на настолно приложение ми попречи да симулирам напълно хипотези за естествения свят , да не говорим за анализиране на набори от данни с помощта на мрежата, която също се превръща във все по -интелектуален и финансово доходоносен набор от умения.

Една година след колежа реших да науча истински език за програмиране по сериозен начин: цялостно потапяне, което ме превзема от гърба на знанието, така че дори да си направя почивка, пак ще запазя достатъчно, за да взема мястото, където тръгна, напусна. По -възрастен стипендиант от моя колеж, който споделяше подобни интереси - и опитен програмист от края на 90 -те години - ме убеди в любимия си език, за да пресявам и сортирам текст само в няколко реда код и да свърша нещата: Perl. Той отхвърли, че Python е това, което учените смятат. Бях на път да се запозная официално.

Преди да взема окончателно решение кой език да уча, направих равносметка на онлайн ресурсите, дебнех PerlMonks , и придоби няколко използвани книги на О’Райли, Камилска книга и Книга Лама , в допълнение към други книги за начинаещи. Още веднъж, Python вдигна глава , и дори форумите на Perl и сайтове, посветени на езика, оплакваха дигиталната обсада, на която езикът им се поддаваше . Какво стана с Perl? Чудех се. В крайна сметка не се притеснявах, намерих достатъчно, за да започна (качество над количеството, реших!), И започнах да изучавам синтаксиса и да работя чрез примери.

Но не трябваше да бъде. Опитвайки се да преодолея инженерната гъвкавост на избора на синтаксис на Perl, ударих стена. Бях приел Perl за анализ на текст, но след като приех предложението за завършена инженерна програма, преминах към Python, за да се подготвя.

До този момент, Огромното предимство на CPAN беше премахнато чрез ad hoc, усилия на смесички от некоординирани, но преобладаващи групи от Pythonistas, които сега се събират в Срещи , при стартиране и нататък колеж и корпоративни кампуси да евангелизираме Дзен на Python . Това създаде много проблеми с импортирането ( посочи Уол ) и синхронизиране на изтегляне на пакети за получаване на научни изчислителни библиотеки (както открих), но също така доведе до разпространение на Python като Анаконда които включват стандартните библиотеки най -важните библиотеки, за да улеснят тарифите за време при внос.

Сякаш за да се възползвате от увлечения, технически издател на книги О’Райли пусна тази реклама , разпалващи поклонници на Perl.


До 2013 г. Python беше езикът на избор в академичните среди, където трябваше да се върна за една година и каквото и да липсваше в часовете по ООП, той се компенсираше в часовете в колежа. Python беше като Google, който помогна за разпространението на Python и нает ван Росум в продължение на много години. Междувременно неговият противник Yahoo (до голяма степен развит през Perl ) се справят добре, но сравнително изостават при определянето на бъдещето на програмирането. Python беше фаворитът и титуляр; ролите бяха разменени.

Така че след шест месеца усилия на Perl, тази капка реалност пречупи гърба на камилата Perl и предизвика преврат, който свали програмната република, установила се на моя лаптоп. Аз плахо се отказах ламата . Няколко седмици по -късно дразнещото обещание на a нов курс MIT edX преподаване на общи принципи на CS в Python, в допълнение към множество примери n00b , направи синтаксиса на Perl твърде лесно да се забрави вместо съжаление.

Измерванията на популярността на езиците за програмиране, в допълнение към приятели и колеги ентусиасти по програмиране, които срещнах в общността за развитие през последната година и половина, потвърдиха тази тенденция, заедно с възхода на Ruby в средата на 2000-те години, който също изядени от вездесъщието на Perl при свързването на програми, написани на различни езици.

За да видите възхода на Python и падането на Perl в по -емпиричен план, вижте следната евристика.

Индекс Tiobe януари 2013 г. - януари 2014 г.

Python 8 -ми -> 8 -ми

Perl 9 -ти -> 13 -ти

Индекс на Тиобе Дългосрочен

1994 г. Perl 17 -ти; Python 22 -ри

1999 г. Perl 5 -ти; Python 22 -ри

2004 г. Perl 4 -ти; Python 11 -ти

2009 г. Perl 7 -ми; Python 6 -ти

2014 г. Perl 10 -ти; Python 8 -ми

Индекс на езикова популярност юли 2013 г.

Python 7 -ми

Perl 9 -ти

Продажби на технически книги на O’Reilly, 2003-2005

Python 1/6 размер Perl пазар -> Python 2/3 размер Perl пазар

Трактор за работа, февруари 2013 г. - януари 2014 г.

Python 126 до 78 работни места, Perl не са включени в списъка на 22 работни места

Модни умения, 20.01.12 - 27.01.2014

Python 5%; Perl 4%

PYPL Популярност на езиковия индекс за програмиране, януари 2013 г. - януари 2014 г.

Python 6 -ти -> 3 -ти; обявен за език на годината

Perl: без списък

PYPL Популярност на езиковия индекс за програмиране, 2004-2014

Python ~ 2,5% до ~ 11%

Perl ~ 7.5% до<2%

(Python трайно изпреварва Perl в средата на 2007 г.)

KDNuggets Най-добрите езици за анализи, извличане на данни, наука за данни, 2011-2013

Python през 2011 г .: 24,6% -> 36,1%

Python през 2012 г .: 38,8%

Perl през 2012 г. 9% -> 4,5% 2013 г. (отбелязан е спад от 50% спрямо миналата година)

Python през 2013 г .: 2 -ро място като цяло, след R

Докато исторически много аргументи биха могли да обяснят някое от тези изследвания - може би програмистите от Perl не подкрепят езика си толкова много, тъй като са твърде заети продуктивно с програмиране. Обявите за работа или посещенията в търсачките могат да означават, че езикът за програмиране има много грешки и проблеми с него, или че просто има голяма временна разлика между търсенето и предлагането.

Съпътстващата картина и тази, която мнозина в общността на Perl сега признават, е, че Perl сега е по същество език от второ ниво, който има своето място, но няма да бъде първите няколко езика, известни извън областта на компютърните науки, като Java , C или сега Python.

Бъдещето на Perl (Да, има такъв)

аз вярвам Perl има бъдеще , но може да е за ограничена аудитория. Днешният Perl е по-подходящ за потребители, които имат работи с езика от първите му дни , вече облечени, за да впечатлят . Странните стилистични конвенции на Perl, като например използването на $ отпред за деклариране на променливи, са в контраст с другия декларативен символ $ за практическите програмисти днес - парите, които отиват в непрекъснатото развитие и набор от функции на враговете на Perl като Python и Ruby. И високите разходи за активиране на изучаването на Perl, вместо да се внедри решение на Python.

По ирония на съдбата, много по същия начин, по който Perl се шегуваше с други езици, Perl сега намира себе си при приемащ край . Какво не е наред с Perl , от моя опит? Евентуалният проблем на Perl е, че ако общността на Perl не може да привлече начинаещи потребители, каквито успешно направи Python, рискува да стане като Децата на мъжа , намалявайки в застой; огромни хранилища на йероглифичен код, които се очертават в раздели на интернет и в дялове на центрове за данни, като залите на мините на Мория . (Вдъхновяващо и историческо? Да. Оживено? Не.)

Perl 6 е непрекъснато развитие от 2000 г. Все пак след 14 години не е направено официално , което го прави еквивалент на Китайска демокрация за Guns N ’Roses. По думите на Лари Уол : Не се опитваме да направим Perl по -добър език от C ++, или Python, или Java, или JavaScript. Опитваме се да направим Perl по -добър език от Perl. Това е всичко. Perl може да е на същия самопричинен път към съвършенството като Axl Rose, подценявайки не другите, а себе си. Всичко може да е твърде много.

защо американската мечта е непостижима

При липса на променяща играта версия на Perl (което все още може да е твърде малко, твърде късно) хората, които се научават да програмират в Python, нямат нужда да превключват дали Python може да изпълни техните нужди, дори ако това е широко смятано за второ или трето най-добро в някои области. Фактът, че трябва да импортирате библиотека или да потърсите допълнителен синтаксис, е значително по -лесен от транзакционните разходи за изучаване на нов език и преминаване към него. Така че с течение на времето публиката на Python остава млада чрез стратегията си за шлюз, която самият ван Росъм е пионер, Компютърно програмиране за всеки . (Това усилие беше пълен успех. Например в MIT Python замени Scheme като първи език на обучение за всички входящи първокурсници, в средата на 2000-те.)

Python плува напред

Python продължава да се утвърждава един по един в области от интерес, като визуализация (където Python все още изостава от други езикови графики, като Matlab, Mathematica или най -новия d3.js), създаване на уебсайт (рамката на Django вече е основен избор ), научни изчисления (включително NumPy/SciPy), паралелно програмиране (mpi4py с CUDA), машинно обучение и обработка на естествен език (scikit-learn и NLTK) ... и списъкът продължава.

Въпреки че нито едно от тези усилия не се координира централно от самия ван Росъм, непрекъснато разширяваща се потребителска база и достигането първо до студентите по CS преди други езици (като например Java или C), увеличава шансовете за сътрудничество в дисциплините за изграждане на Python библиотека за себе си, в същия дух с отворен код, който направи Perl успех през 90 -те години.

Що се отнася до мен? Отворен съм да се върна в Perl, ако той може да ми предложи значително различно преживяване от Python (но разочарованието не се брои!). Може би Perl 6 ще бъде това издание. Междувременно се вслушах в съветите на много други с подобна дилема в мрежата. Аз просто ще изчакайте и C. .