Perls fald, webens mest lovende sprog

Og fremkomsten af ​​Python. Har Perl en fremtid?

Perls fald, webens mest lovende sprog

Jeg hørte først om Perl da jeg gik i mellemskolen i begyndelsen af ​​2000'erne. Det var et af verdens mest alsidige programmeringssprog, kaldet Schweizisk hærkniv af Internettet. Men i forhold til sin rival Python er Perl falmet af popularitet. Hvad skete der med webens mest lovende sprog?



Perls lave adgangsbarriere sammenlignet med kompilerede sprogalternativer på lavere niveau (nemlig C) betød, at Perl tiltrak brugere uden en formel CS -baggrund (læs: script -børn og begyndere, der skrev dårlig kode). Det pralede også en lille gruppe af power -brugere (hardcore -hackere), der hurtigt og fleksibelt kunne skrive kraftfulde, tætte programmer, der drev Perls popularitet til en ny generation af programmører.

Et centralt lager (det omfattende Perl -arkivnetværk eller CPAN ) betød, at for hver person, der skrev kode, var mange flere i Perl -samfundet ( Programmeringsrepublik Perl ) kunne anvende det. Dette sammen med den vittige evangelisering af eklektisk skaber Larry Wall , hvis interesse for sprog sikrede, at Perl ledede i tekstanalyse, var en formel for succes i en tid, hvor masser af tekstinformation spredte sig over internettet.



Da det 21. århundrede nærmede sig, blev mange visdomsperler udført for at flytte og analysere oplysninger på nettet. Perl havde en indlæringskurve - hvilket ofte betød, at det var det tredje eller fjerde sprog, som adoptere lærte - men det sad øverst i stakken.



I løbet til årtusindet ser det ud til, at C ++ vil vinde, Java vil placere, og Perl vil vise, sagde Wall i den tredje State of Perl -adresse i 1999. Nogle af jer vil uden tvivl ønske, at vi kunne slette de to øverste linjer, men jeg synes ikke du skal være urimeligt bekymret. Bemærk, at både C ++ og Java er systemprogrammeringssprog. Det er de to sportsvogne ude foran løbet. I mellemtiden er Perl den hurtigste SUV, der kommer foran alle de andre SUV'er. Det er det bedste i sin klasse. Selvfølgelig ved vi alle, at Perl er i en klasse for sig.

Så kom oprøret.

Perl vs. Python Grudge Match

Så kom Python med. Sammenlignet med Perls straight-jacketed scripting var Python en skæv affære. Det tog endda efter sin navnebror, Monty Python's Flying Circus. Passende nok var de fleste af Walls tidlige referencer til Python lethjertede vittigheder på dets bekostning.



Jo, årtusindet gik, computere overlevede Y2K , og mine teenageår kom og gik. Jeg studerede matematik, naturvidenskab og humaniora, men holdt mig et stykke væk fra at skrive computerkode. Mit kendskab til Perl forblev som starten på en ny tekstfil: flydende , efterfulgt af en masse tom plads til at fylde op.

På college, CS venner på Princeton fablede om Python som deres yndlingssprog (på trods af populær professor Brian Kernighan på campus, der hjalp med at popularisere C). Jeg troede, at Python var nyt, men jeg lærte senere, at det også var der, da jeg voksede op, bare ikke synlig på diagrammerne.

I slutningen af ​​2000'erne var Python ikke kun det dominerende alternativ til Perl for mange tekstparsingsopgaver, der typisk er forbundet med Perl (dvs. regulære udtryk inden for bioinformatik ), men det var også mest udråbte populære sprog , talte om med elegance og veltalenhed blandt min kreds af campusvenner, der kunne lide at være en del af en opadgående bevægelse.

Side om side sammenligning: Binær søgning



På trods af Python og Perl veldokumenteret rivalisering og designbeslutningsforskelle - som vedvarer den dag i dag - indtager de en lignende niche i programmeringsøkosystemet. Begge omtales ofte som scriptsprog, selvom senere versioner er retro-udstyret med objektorienteret programmering (OOP).

Perlens bremsende historie

1987 Larry Wall frigiver Perl i naturen

1988 Perl 2 frigivet

1989 Perl 3 frigivet

1991 Perl 4 frigivet

1994 Perl 5 frigivet

2000 - nuværende [/b] Perl 6 under udvikling

... Og accelerationen af ​​Python

1991 Guido van Rossum frigiver Python i naturen

1994 Python 1.0 frigivet

2000 Python 2.0 frigivet

2008 Python 3.0 frigivet

[ kilde , kilde ]

Stilistisk set har Perl og Python forskellige filosofier. Perls mest kendte mottoer er Der er mere end én måde at gøre det på . Python er designet til at have en oplagt måde at gøre det på. Pythons konstruktion gav en fordel for begyndere: En syntaks med flere regler og stilistiske konventioner (for eksempel, der kræver indrykninger i mellemrum for funktioner) sikrede, at tilflyttere ville se et mere konsekvent sæt programmeringspraksis; kode, der udførte den samme opgave, ville se mere eller mindre ens ud. Perls konstruktion favoriserer erfarne programmører: et mere kompakt, mindre ordentligt sprog med indbyggede genveje, der gjorde programmering til eksperten til en leg.

I løbet af dotcom-æraen og den tekniske genopretning i midten til slutningen af ​​2000'erne, profilerede websteder og virksomheder som f.eks Dropbox (Python) og Amazon og Craigslist (Perl), foruden nogle af verdens største nyhedsorganisationer ( BBC , Perl ) brugte sprogene til at udføre opgaver, der er integrerede i driften af ​​forretninger på Internettet.

Men i løbet af sidste 15 år , ikke kun hvordan virksomheder driver forretning har ændret sig og vokset, men det har de værktøjer, de bruger til også at vokse, også ulige til skade for Perl. (En voksende tendens, der blev identificeret i den sidste sammenligning af sprogene, En Perl -hacker i Pythons land , samt fra Python -siden en Pythonistas evangelisationsaggregator , også udført i år 2000.)

bedste sted at få sengetøj

Perls langsomme tilbagegang

I dag er Perls vækst stagneret. På Orlando Perl Workshop i 2013 fik en af ​​foredragene titlen Perl er ikke død, det er en blindgyde , og hævdede, at Perl nu eksisterede på en ø. Når Perl programmører tjekket ud, de altid forlod for godt, aldrig at vende tilbage. Andre påpege, at Perl er udeladt af sprogene for først at lære –I en æra, hvor Python og Java var vokset enormt, og en ny aktør fra midten af ​​2000’erne, Ruby, fortsætter med at vinde terræn ved at tiltrække nye brugere til webapplikationsarenaen (via Skinner ), efterfulgt af Django ramme i Python (PHP er også forblevet stabil som den enkleste mulighed).

I bioinformatik, hvor Perls position som det mest populære scriptsprog drev mange gennembrud fra 1990'erne som genetisk sekventering, er Perl blevet fortrængt af Python og det statistiske sprog R (en variant af S-plus og efterkommer af S , også udviklet i 1980'erne).

I videnskabelig databehandling er mit nuværende felt, Python, ikke Perl, open source -overlordet, der endda udvider for Matlabs regning (også en barn i 1980'erne , og på samme måde eftermonteret med OOP evner ). Og opstart PHP voksede i størrelse til det punkt, hvor det nu uden tvivl er det mest almindelige sprog til webudvikling (selvom dets position er dynamisk, som Rubin og Python har dæmpet PHPs dominans og er nu forankret som legitime alternativer.)

Selvom Perl ikke er i fare for at forsvinde helt, er det er i fare for at miste kulturel relevans , en ironisk skæbne givet Walls kærlighed til sprog. Hvordan er Perl blevet underdog, og kan denne tendens vendes? (Og måske endnu vigtigere, vil Perl 6 blive udgivet!?)

Hvordan jeg voksede til at elske Python

Hvorfor Python , og ikke Perl? Måske er et illustrerende eksempel på, hvad der skete med Perl, min egen erfaring med sproget.

På college holdt jeg mig stadig til de indeholdte miljøer i Matlab og Mathematica, men mit programmeringsperspektiv ændrede sig dramatisk i 2012. Jeg indså, at manglende viden om struktureret computerkode uden for en muret have i et skrivebordsprogram forhindrede mig i fuldt ud at simulere hypoteser om den naturlige verden , endsige analysere datasæt ved hjælp af internettet, som også blev et stadig mere intellektuelt og økonomisk lukrativt færdighedssæt.

Et år efter college besluttede jeg mig for at lære et rigtigt programmeringssprog på en seriøs måde: En altomfattende fordybelse, der tog mig over videnens pukkel, så selvom jeg tog en pause, ville jeg stadig beholde nok til at hente, hvor jeg slap. En ældre alun fra mit kollegium, der delte lignende interesser - og en erfaren programmør siden slutningen af ​​1990'erne - overbeviste mig om sit yndlingssprog til at sile og sortere tekst i bare et par kodelinjer og få tingene gjort: Perl. Python, afviste han, var hvad akademikere plejede at tænke. Jeg var ved at blive bekendt formelt.

Inden jeg tog en endelig beslutning om, hvilket sprog jeg skulle lære, gjorde jeg status over online -ressourcer, lurede på PerlMonks , og erhvervede flere brugte O'Reilly -bøger, the Kamelbog og Lama -bog , foruden andre begynderbøger. Endnu en gang, Python rejste hovedet , og selv Perl fora og websteder dedikeret til sproget beklagede den digitale belejring, deres sprog var under for . Hvad skete der med Perl? Jeg undrede mig. I sidste ende uforfærdet fandt jeg nok til at komme i gang (kvalitet frem for kvantitet, regnede jeg med!), Og begyndte at studere syntaksen og gennemgå eksempler.

Men det skulle ikke være. I forsøget på at overvinde den konstruerede fleksibilitet i Perls syntaksvalg ramte jeg en væg. Jeg havde adopteret Perl til tekstanalyse, men da jeg accepterede et tilbud om ingeniøruddannelser, skiftede jeg til Python for at forberede.

På dette tidspunkt, CPANs enorme fordel var blevet fjernet ad hoc, hodgepodge indsats fra ukoordinerede, men overvældende grupper af pythonister, der nu samles i Møder , ved opstart og videre kollegium og virksomhedernes campusser at evangelisere Zen of Python . Dette har skabt mange problemer med import ( påpeget af Wall ), og pakke downloadsynkroniseringer for at få videnskabelige databiblioteker (som jeg fandt), men har også resulteret i distributioner af Python som f.eks. Anaconda der inkorporerer de vigtigste biblioteker ud over standardbiblioteket for at lette tidstariffen på import.

Som for at udnytte den tidligst, tekniske bogudgiver O’Reilly kørte denne annonce , betændende Perl -hengivne.


I 2013 var Python det valgte sprog i den akademiske verden, hvor jeg skulle vende tilbage i et år, og uanset hvad det manglede i OOP -klasser, gjorde det op i college -klasser. Python var som Google, der hjalp med at sprede Python og ansat van Rossum i mange år. I mellemtiden udviklede dens modstander Yahoo (stort set udviklet sig i Perl ) gjorde det godt, men faldt forholdsvis længere bagud med at definere programmeringens fremtid. Python var favoritten og den siddende; rollerne var vendt.

Så efter seks måneders Perl-gøringsindsats brød dette virkelighedsstrå Perl-kamelens ryg og forårsagede et kup, der styrte programmeringsrepublikken, der havde etableret sig på min bærbare computer. Jeg opgav skamfuldt lamaen . Flere uger senere kom det pirrende løfte om en nyt MIT edX -kursus undervisning i generelle CS -principper i Python, foruden talrige n00b eksempler , gjorde Perls syntaks alt for let at glemme i stedet for at fortryde.

Målinger af populariteten af ​​programmeringssprog ud over venner og andre programmeringsentusiaster, jeg har mødt i udviklingssamfundet i det sidste halvandet år, har bekræftet denne tendens sammen med Ruby's fremgang i midten af ​​2000'erne, som har også spist væk ved Perls allestedsnærværende i at sammensætte programmer skrevet på forskellige sprog.

For at se stigningen i Python og faldet af Perl i mere empiriske termer, tjek følgende heuristik.

Tiobe Index Jan 2013 - Jan 2014

Python 8. -> 8.

Perl 9. -> 13.

Tiobe Index Lang sigt

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

Sprogpopularitetsindeks juli 2013

Python 7.

Perl 9.

O'Reilly teknisk bogsalg, 2003-2005

Python 1/6 størrelse Perl marked -> Python 2/3 størrelse Perl -marked

Job Tractor, februar 2013 - januar 2014

Python 126 til 78 job, Perl unoteret til 22 job

Trendy færdigheder, 1/20/12 - 1/27/2014

Python 5%; Perl 4%

PYPL Popularity of Programming Language Index, januar 2013 - januar 2014

Python 6. -> 3.; kåret til årets sprog

Perl: unoteret

PYPL Popularity of Programming Language Index, 2004-2014

Python ~ 2,5% til ~ 11%

Perl ~ 7,5% til<2%

(Python overhaler Perl permanent i midten af ​​2007)

KDNuggets Topsprog til Analytics, Data Mining, Data Science, 2011-2013

Python i 2011: 24,6% -> 36,1%

Python i 2012: 38,8%

Perl i 2012 9% -> 4,5% 2013 (noteret et fald på 50% i forhold til sidste år)

Python i 2013: 2. pladsen samlet, efter R

Selvom mange argumenter historisk set kan forklare en af ​​disse undersøgelser - kan Perl -programmører måske ikke cheerlead deres sprog så meget, da de har for travlt med produktivt at programmere. Jobfortegnelser eller søgemaskinehits kan betyde, at et programmeringssprog har mange fejl og problemer med det, eller at der simpelthen er et stort midlertidigt hul mellem udbud og efterspørgsel.

Det ledsagende billede, og et som mange i Perl-samfundet nu anerkender, er, at Perl nu i det væsentlige er et andet niveau-sprog, et, der har sin plads, men ikke vil være de første flere sprog, der kendes uden for datalogiens domæne som f.eks. Java , C eller nu Python.

Perls fremtid (Ja, den har en)

Jeg tror Perl har en fremtid , men det kan være et for et begrænset publikum. Nutidens Perl er mere velegnet til brugere, der har arbejdede med sproget fra dets tidlige dage , allerede klædt på til at imponere . Perls finurlige stilistiske konventioner, såsom at bruge $ foran til at deklarere variabler, står i kontrast til det andet deklarative symbol $ for praktiske programmører i dag - pengene, der går til den fortsatte udvikling og funktionssæt af Perls frenemier som Python og Ruby. Og de høje aktiveringsomkostninger ved at lære Perl, i stedet for at implementere en Python -løsning.

Ironisk nok meget på samme måde, som Perl spøgt med andre sprog, Perl nu finder sig selv ved modtagende ende . Hvad er der galt med Perl fra min erfaring? Perls eventuelle problem er, at hvis Perl -samfundet ikke kan tiltrække begyndere, som Python med succes har, risikerer det at blive som Mænds børn , svinder væk til stilstand; enorme lagre af hieroglyfekode truende i dele af Internettet og i datacenterpartitioner som hallerne i Minerne i Moria . (Ærefrygtindgydende og historisk? Ja. Livlig? Nej.)

Perl 6 har været en løbende udvikling siden 2000. Dog efter 14 år det er ikke officielt gjort , hvilket gør det svarende til Kinesisk demokrati til Guns N ’Roses. Med Larry Walls ord : Vi forsøger ikke at gøre Perl til et bedre sprog end C ++ eller Python eller Java eller JavaScript. Vi forsøger at gøre Perl til et bedre sprog end Perl. Det er alt. Perl er muligvis på samme selvforskyldte vej til perfektion som Axl Rose, og undervurderer ikke andre, men sig selv. Alt kan stadig være for meget.

hvordan kan jeg se debatten

Fraværende en spilskiftende Perl-udgivelse (som stadig kan være for lidt, for sent), folk, der lærer at programmere i Python, har ikke behov for at skifte, hvis Python kan opfylde deres behov, selvom det i vid udstrækning betragtes som det andet eller tredje bedste i nogle områder. Det faktum, at du skal importere et bibliotek eller stille op med en ekstra syntaks, er betydeligt lettere end transaktionsomkostningerne ved at lære et nyt sprog og skifte til det. Så over tid forbliver Pythons publikum unge gennem sin gateway -strategi, som van Rossum selv var banebrydende, Computerprogrammering for alle . (Denne indsats har været en komplet succes. For eksempel på MIT Python erstattede Scheme som det første undervisningssprog for alle indkommende nyuddannede i midten af ​​2000'erne.)

Python pløjer fremad

Python får fortsat fodfæste en efter en inden for interesseområder, såsom visualisering (hvor Python stadig halter bagefter anden sproggrafik, som Matlab, Mathematica eller den nylige d3.js), oprettelse af websteder (Django -rammerne er nu et almindeligt valg ), videnskabelig computing (herunder NumPy/SciPy), parallel programmering (mpi4py med CUDA), maskinlæring og behandling af naturligt sprog (scikit-learning og NLTK) ... og listen fortsætter.

Selvom ingen af ​​disse bestræbelser er centralt koordineret af van Rossum selv, en løbende ekspanderende brugerbase og først at komme til CS -studerende før andre sprog (f.eks. Java eller C), øges chancerne for, at samarbejde inden for discipliner vil opstå for at bygge en Python bibliotek for sig selv i samme open source -ånd, der gjorde Perl til en succes i 1990'erne.

For mig? Jeg er åben for at vende tilbage til Perl, hvis det kan tilbyde mig en væsentlig anden oplevelse end Python (men at være frustrerende tæller ikke med!). Måske er Perl 6 den udgivelse. Imidlertid har jeg i mellemtiden fulgt rådene fra mange andre med et lignende dilemma på nettet. Jeg vil bare vent og C. .