Dit is een belangrijke gebeurtenis in de programmeerwereldgebeurde in 1986, toen een ogenschijnlijk gewone jongen Larry Wall, na hard werken, aan de wereld aankondigde dat hij de programmeertaal Perl had ontwikkeld. De weg naar deze belangrijke gebeurtenis bleek moeilijk en netelig, maar het resultaat was het waard. Hoe, wie en waarom ontwikkelde een nieuwe programmeertaal? Al deze vragen worden hier beantwoord.
prehistorie
De aanzet voor deze ontdekking was sterkoorzaak. Daarna nam hij deel aan het UNIX-project. Het werk was moeilijk, omdat het nodig was om een beveiligd netwerk met veel lagen te creëren om het werk van meerdere computers die op aanzienlijke afstanden van elkaar werken te kunnen combineren. Het hele proces is met succes afgerond, maar de rapportages moesten erg omslachtig worden gedaan, niet alleen met een groot aantal bestanden, maar ook met kruisverwijzingen ertussen.
Wall besloot om een awk filter te gebruiken om te werken, maarer deed zich een onverwacht obstakel voor: het was onmogelijk om het openen of sluiten van een groot aantal bestanden - ironisch genoeg - te controleren op basis van de informatie die ze bevatten over de locatie van deze bestanden.
Larry moest eerst het onverwachte oplossenprobleem, besloot ik een specifiek systeemhulpprogramma te schrijven. Het leek erop dat zij een uitweg uit deze situatie was. Maar daarvoor had hij al verschillende hulpprogramma's samengesteld om dit probleem op te lossen, dat helaas geen uitlaatklep werd voor de UNIX-standaarden.
Daarom is een getalenteerde systeembeheerder,een linguïst van opleiding, die hem bij zijn werk hielp, nam hij een risico en creëerde de programmeertaal Perl zodat hij tegelijkertijd tekstbestanden kon verwerken, een oplossing voor systeemproblemen kon vinden en begrijpelijke rapporten kon maken. En tegelijkertijd, dat het programmeren op laag niveau was, dat beschikbaar zou zijn in de taal C. Daarom was de Perl-interpreter erin geschreven.
Nieuwe programmeertaal: de reden voor
Zoals Larry zei, hielp ze hem een nieuw te makentaal is lui. Maar het was juist deze luiheid die ons in staat stelde een belangrijk probleem op te lossen: hoe te voorkomen dat we de vele programma's in verschillende talen moesten compileren die een integraal onderdeel waren van de UNIX-tools. Zo'n procedure was te vervelend.
De waardigheid van de nieuwe taal werd sindsdien door anderen gewaardeerdhet combineerde op harmonieuze wijze de mogelijkheden voor bestandsverwerking en systeembeheer. En dit zijn precies twee essentiële feiten die nodig zijn bij het programmeren van een UNIX-systeem.
Opgemerkt moet worden dat de programmeertaalPerl heeft een klein verschil met andere gelijkaardige talen: het is verschenen omdat er behoefte aan was, en niet om gebruikers te verbazen of een andere mooie tool te bedenken die geen speciale rol zal spelen.
Integendeel, toen Larry gebruikers introduceerde bijmet zijn uitvinding creëerde het een echte sensatie onder systeembeheerders, omdat het nu niet meer nodig was om veel tijd te besteden aan het verdiepen in verschillende programmeertalen, en het werd mogelijk om problemen gemakkelijk op te lossen door een enkele taal te gebruiken met behulp van een symbolentabel.
kenmerken
De afkorting Perl, vertaald in het Russisch, klinkt als "een praktische taal om gegevens te extraheren en rapporten te genereren".
Ze besloten om het symbool van dit soort taal te makenkameel, waarschijnlijk gezien het feit dat, aangezien dit dier een nobel, winterhard dier is, in staat om vele dagen gelaten een zware last te dragen, hetzelfde werk lijkt op een last van een nieuwe, ook ernstige taal.
Waarom de nieuwe taal door velen meteen werd gewaardeerdgebruikers zijn er veel redenen. Iedereen die UNIX gebruikt, weet dat de instellingen hier door speciale bestanden gaan - platte tekst, en dat wijzigingen worden aangebracht nadat de opdrachten zijn uitgevoerd. Ze zijn geschreven in een speciale shell-taal en worden uitgevoerd vanaf de opdrachtregel.
Met UNIX kunt u aangepastecommando's, vertrouwend op de commando's van de tolk en ze op te slaan. Ze blijven in tekstbestanden en worden, indien nodig, uitgevoerd als een standaardset van besturingssysteemopdrachten - alleen via de opdrachtregel.
Gebruikersopdrachten scripts worden anders genoemd.Op een UNIX-systeem moet de operationele beheerder een groot aantal scripts schrijven, die op hun beurt daaropvolgende scripts verwerken, dat wil zeggen tekstbestanden met behulp van speciale programma's:
- Awk. Het programma maakt vergelijking met deze samples mogelijk en dient als rapportgenerator.
- Sed. Fungeert als een batch-editor voor tekstbestanden.
Programma's als filters één voor éénlees regels met invoerbestanden. Ze voeren vervolgens string-specifieke acties uit die worden bepaald door programma-opdrachten. Tegelijkertijd wordt een reeks symbolen geselecteerd volgens bepaalde patronen, vervanging volgens de vastgestelde regels, nieuwe bestanden worden gegenereerd.
Geweldige kansen
De nieuwe programmeertaal Perl heeft zeer rijke mogelijkheden geopend in die gevallen waarin u tekst, hardnekkige uitdrukkingen, moet verwerken. Perl biedt grote opties voor hulpmodules.
Na verloop van tijd breidde deze unieke taal zijngrenzen, en wordt nu veel gebruikt in webontwikkeling en games wanneer netwerkprogrammering of grafische gebruikersinterfaceontwikkeling nodig is.
De tong bleef hangen en werd verliefd op zijn lichtheidgebruik, wordt het nu erkend als de meest dynamische programmeertaal. Het ondersteunt een verscheidenheid aan paradigma's, waaronder stijlen - functioneel, procedureel en andere, het heeft controle over het geheugen, het heeft ondersteuning voor tekstverwerking.
Geen wonder dat een van de motto's van L. Wall is dat eenvoudige dingen eenvoudig kunnen blijven, maar dat complexe dingen moeten worden gedaan.
Het leren van de taal is gemakkelijk door toewijzingsexpressies, codeblokken, besturingsstructuren en functies te begrijpen.
Overeenkomsten met andere talen
Larry leende veel van andere programmeertalen. Bijvoorbeeld:
- UNIX-opdrachtshells. Variabelen zijn gemarkeerd met hoofdletters, zedruk duidelijk het type van een variabele uit en help deze variabelen om in strings te worden geïnterpoleerd. Ingebouwde functies bieden instrumentatie, en dit wordt gebruikt voor shell-programmering.
- Arrays van Lisp.
- Met behulp van reguliere Perl-expressies van awk, en tegelijkertijd associatieve motieven van hem leenden.
- Van sed.
Maar de nieuwe taal kon zijn eigen taken veel sneller uitvoeren en daarom begonnen ze het niet alleen te gebruiken voor het oplossen van problemen met systeembeheer.
Wall leerde van G.Spencers pakket, dat hielp om de reguliere expressies van Perl onder de knie te krijgen en het aan te passen voor zijn geesteskind. Veel van de ontwikkelde functies zijn niet alleen de verdienste van Larry. Collega's en vrienden waren niet minder enthousiast over het inbrengen van hun innovaties in het unieke programma dat wordt ontwikkeld. En toen de taal op internet verscheen, ontstond er een hele gemeenschap van gelijkgestemde mensen die ook hielpen om het te verbeteren. Sindsdien zijn er volgens de statistieken meer dan 10.000 programmeurs bij het werk betrokken.
De taal wordt echter nog steeds verbeterd dankzij de ontwikkeling van pakketten die met succes worden gebruikt bij de implementatie van nieuwe toepassingen van de taal voor het ontwikkelen van informatietechnologieën.
Stadia van ontwikkeling
Kleine maar belangrijke stadia van het pad kunnen in de tabel worden gemarkeerd.
Release-versies | Tijdstip van creatie |
perl 1. Bevat niet veel functies. Dit was de gemakkelijkste manier om bestanden te zoeken met patronen. Maar er waren bestandsdescriptoren, formaat en scalaire variabelen. | 1988 jaar. Januari. |
perl 2. Er is een nog niet verbeterde engine voor reguliere expressies. | 1988 jaar. Juni. |
perl 3. Ontwikkelaars hebben het mogelijk gemaakt om binaire datastromen te verwerken. | 1989 jaar. Oktober. |
perl 4. Verscheen grotendeels dankzij het boek dat het daglicht zag, "Programming Perl ", maar beter bekend als"Camel Book". Een gedocumenteerde nieuwe taal opgelost. Deze periode ging door een reeks releases en kwam uiteindelijk uit op versie 4.036. Het was al 1993. Toen begon het werk aan de volgende - V - versie. | 1991 jaar. Maart. |
perl 5.Er is ondersteuning voor complexe gegevenstypen, een objectmodel dat verwijzingen, pakketten en afsluiting als waarde bevat. Er wordt een mailinglijst gemaakt zodat het werk over verschillende platforms kan worden gecoördineerd. In feite was het het belangrijkste forum voor ontwikkeling, portering en onderhoud. Modules zijn nu een belangrijk onderdeel van de versie, omdat ze de taal konden uitbreiden, maar zonder tussenkomst van de tolk. Dit was in staat om hem te stabiliseren, maar breidde zijn taalvaardigheid uit. | 1994 jaar. Oktober. |
Perl's unieke programmeertaal: voor- en nadelen
Perl 5 is actief ontwikkeld en nu,aanvullen met nieuwe versies. Maar alle ontwikkelingen hebben een aantal factoren gemeen: er wordt automatisch datatypering uitgevoerd, automatische controle over het geheugen.
Dankzij de interpreter zijn niet alleen de typen bekend, maar ook de geheugenverzoeken van elk programma-object, en het is niet moeilijk voor hem om geheugen toe te wijzen, het vrij te maken bij het tellen van referenties.
Opgemerkt moet worden dat Perl-programmeringonderscheidt de tolk van anderen. Het bewijs hiervan is de vertaling van het programma in een tussenliggende bytecode, en pas dan begint het uit te voeren. Ter vergelijking: de traditionele werkt een beetje anders - de ingevoerde operator wordt geïnterpreteerd en onmiddellijk uitgevoerd, wat tijdens de workflow vol zit met syntaxisfouten. Met Perl kunt u dit soort fouten al tijdens de vertaling in by-code detecteren.
Om het ene type gegevens naar het andere over te dragen, is een automatisch proces vereist, maar als vertalingen van welk type gegevens dan ook niet mogelijk zijn, kan dit tot een fatale fout leiden.
De verdienste van versie 5 004 is dat erpakket UNIVERSAL, dat de taal het hoofdobject gaf, en daaruit kwamen alle klassen - op automatische basis. Nu kunt u de versie van modules opvragen. Het is een realiteit geworden om het aanvragen van de versie van modules te ondersteunen. Daarnaast begon perl veel besturingssystemen te ondersteunen, waaronder Microsoft Windows.
Versie 5.005, uitgebracht in 1998, verbeterde de kwaliteit van de reguliere expressie-processor aanzienlijk, verbeterde nieuwe hooks in de backend, wat werd opgelost met behulp van bepaalde modules en uitgebreide ondersteuning voor besturingssystemen.
Laatste updates
Het jaar 2000 gaf de wereld een nieuwe, 5.6, taalversie van parel. Het zag er al veel degelijker uit dan de eerste, had 64-bits systemen, kon bestanden van meer dan twee GB ondersteunen, inclusief stringweergave, rekening houdend met de Unicode-standaard en het trefwoord our. Gedurende deze periode verandert het schema voor de naamgeving van de versie om dichter bij andere open source-projecten te zijn.
Een interessant feit is deze beslissing: als een versie in ontwikkeling is, krijgt deze een nummer met oneven cijfers en de stabiele krijgt een even nummer.
Wall richtte zich toen tot zijn volgelingen metvragen om suggesties voor het maken van een meer geavanceerde versie. Zijn beroep werd gehoord en het resultaat was 361 documenten, die hielpen bij de ontwikkeling van de VI-versie. De gebruikers kregen een document voorgeschoteld dat er waarschijnlijk uitzag als een samenvatting, en deze versie bestond, maar alleen in de vorm van een beschrijving van de taal. Een aantal documenten is de specificatie voor deze versie geworden. Een poging om de VI-versie-interpreter in 2006 te lanceren, werd stopgezet. Maar sinds 2009 leeft deze versie, onder de naam Rakudo Perl, voort en wordt hij periodiek bijgewerkt.
Een belangrijke wijziging in het ontwikkelingsproces voor Perl 5 kwam met de introductie van Perl 5.11. De ontwikkelaarsgemeenschap is overgegaan op een maandelijkse releasecyclus, met een releasedatum die drie maanden van tevoren is gepland.
Een nieuwe versie
Versie 5.8 verscheen in 2002.Het staat bekend om het feit dat het vanaf die tijd jaarlijks werd bijgewerkt tot 2008, aanzienlijk verbeterde ondersteuning voor Unicode, veel functies toevoegde, waaronder ondersteuning voor multithreading, de oorspronkelijke implementatie van I / O en verhoogde de precisie van de numerieke. En opnieuw zijn er nieuwe modules verschenen.
Tot de 20ste verjaardag van de oprichting van de algemene programmeertaalDe nieuwe versie met het nummer "5.10.0" stelde de gebruikers opnieuw niet teleur. Er zijn nieuwe operatoren, evenals "slimme" overeenkomsten, bijgewerkte reguliere expressies.
Wat hebben de laatste jaren van het werk opgeleverd?
Elk jaar hebben nieuwe verbeteringen geholpenwaardoor de taal die door Wall is uitgevonden, eenvoudiger, eenvoudiger en toegankelijker wordt gemaakt. 2010 werd gekenmerkt door het feit dat de syntaxis van de perl-taal ondersteuning kreeg voor pakket NAME VERSION, overbelasting van reguliere expressie-operators, in de daaropvolgende jaren werden modules bijgewerkt en operatorondersteuning werd uitgebreid.
Het doel is bereikt - om dat tijdens het werk aan te gevende te emuleren versie betekent dat perl kan worden bijgewerkt zonder de werkende capaciteit van de gebruikte scripts te verliezen, die incompatibel dreigen te zijn met de nieuwe gepresenteerde versie. Er zijn meer functies, meer veiligheid.
Eind mei, meer recentelijk, nog eende versie is, zoals altijd, geavanceerder en gemakkelijker om mee te werken. Tegenwoordig kan iedereen het testen en er uit eigen ervaring zeker van zijn dat er veel werk is verzet om deze programmeertaal te maken.
Arrays zijn niet beperkt in deze Perl-taal.Met behulp van de taal kunt u onconventionele taken oplossen, voor de uitvoering waarvan er anders meerdere betrokken zouden zijn, beheertaken uitvoeren, tekstbestanden van hoge kwaliteit verwerken en er zal niet veel tijd aan alle problemen worden besteed. Door nieuwe programma's te ontwikkelen, gebruikmakend van de symbolentabel en de nodige operatoren, zal het resultaat correct en snel zijn.
Dit artikel heeft dat maar weer eens bewezenvoor liefhebbers in hun vakgebied is niets onmogelijk. Soms leiden zelfs de kleinste problemen tot nuttige ontdekkingen die ons leven een beetje gemakkelijker kunnen maken.