Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 56, views: 13.184 •

De scripttaal Perl bestaat vandaag 25 jaar: versie 1.0 werd op 18 december 1987 vrijgegeven in een nieuwsgroep. De programmeertaal, die wordt geroemd om zijn flexibiliteit, was in de jaren negentig alomtegenwoordig op internet, maar is inmiddels minder populair.

Perl, Perl, PerlOp 18 december 1987 uploadde de 33-jarige Unisys-werknemer Larry Wall de allereerste versie van Perl naar de nieuwsgroep comp.sources.misc. De taal leende links en rechts features, zowel uit de Unix-shell als de programmeertalen C, AWK en sed. Aanvankelijk wilde Wall de taal de naam 'Pearl' meegeven, maar er bleek al een programmeertaal met die naam te bestaan. Daarop werd gekozen voor 'Perl'.

Oorspronkelijk draaide Perl alleen onder Unix en was de functionaliteit beperkt, maar de scripttaal werd steeds uitgebreider en kreeg ondersteuning voor meer platforms, van Linux en BSD tot Microsoft Windows en OS X. Zelfs voor Symbian, het mobiele besturingssysteem dat Nokia inmiddels van de hand heeft gedaan, is Perl beschikbaar.

In de jaren negentig hield Perl min of meer internet bij elkaar, zo alomtegenwoordig was de programmeertaal. Inmiddels is dat niet meer zo. Volgens onderzoeksbureau RedMonk is Perl als scripttaal inmiddels ingehaald door php, Python en Ruby - drie talen die overigens door Perl zijn beïnvloed. Perl is in bepaalde sectoren nog onverminderd populair. Ook worden grote websites als die van de BBC, Ticketmaster en Amazon in de lucht gehouden door de taal.

De laatste major-release van Perl, versie 5, stamt inmiddels alweer uit 1994, maar volgens de Perl Foundation komt dat ook doordat de manier waarop versienummers werden toegekend toen is gewijzigd. Was dat niet gebeurd, dan waren er inmiddels meerdere major-releases geweest. Aan Perl 6 wordt al sinds 2000 gewerkt, maar hoewel Tweakers destijds schreef dat Perl 6 'op komst' was, is die versie nog altijd niet uit.

Gebruik jij Perl?

Nee, nooit gebruikt
54,2%
Nee, niet meer
14,1%
Ja, soms
11,5%
Zelden
10,3%
Ja, vaak
9,8%

Aantal stemmen: 3.033. Deelname gesloten op 08-01-2013 16:17. Stemmen is niet meer mogelijk.

Reacties (56)

Enige waar ik perl voor gebruikt heb is om scripts voor irssi te schrijven, en wat een ellende was dat :)
Het wordt niet druk op de verjaardag als ik naar de poll kijk :P.
Het wordt niet druk op de verjaardag als ik naar de poll kijk :P.
druk genoeg hoor ;) In Nederland alleen zijn er al honderden al dan niet actieve perl developers.
Ik heb Perl zelf nooit gebruikt, waarschijnlijk omdat ik wat 'later' ben begonnen met programmeren en webdesign. Maar waar ik Perl wel van ken zijn code golfs op forums. Ik heb me erover verbaasd in hoe weinig tekens je een compleet onleesbaar en functionerend script in Perl kan schrijven:

Bijvoorbeeld 69 tekens:

s;.;y/XVI60-9/CLXVIX/dfor$a[$_].="32e$&"%72726;gefor 1..100;print"@a"

resulteren in de eerste honderd getallen in Romeinse cijfers. (zie verklaring op stackexchange).
Tuurlijk, kan in elke taal compleet onleesbare scripts schrijven. Maar, het hoeft niet bij Perl, zeker in combinatie met CPAN. Bijvoorbeeld, in 64 tekens:

use Roman;
for (my $i=1;$i<100;$i++) {
print Roman($i)."\n";
}
Volgens mij levert dit alleen de cijfers 1-99 op :P
Meer Perlish:

use Roman;
print Roman $_, "\n" for 1..100;


Of als oneliner:

perl -MRoman -e 'print Roman $_, "\n" for 1..100;'


Vroeger redelijk veel gePerld, maar tegenwoordig gebruik ik alleen nog Ruby. Eleganter, leesbaarder, en eigenlijk nog krachtiger.
Tel je even de regels van de Roman.pm module erbij?
Daar waren hele obfuscated perl contests voor. :) vaak ultiem smerige code, maar dat is ook de kracht van perl. Tis een van de beste talen om regular expressions mee uit te voeren. Daarnaast wordt het doordat het zo'n krachtige taal is ook nog steeds door sysadmins onder *nix gebruikt.
Perl wordt dan ook wel een "write-only" language genoemd: het werkt om iets mee te schrijven, maar later teruglezen is vrijwel onmogelijk.
Je kan prima leesbare code schrijven in Perl hoor. Dat heb je helemaal zelf in de hand.
Valt in de praktijk nogal tegen.

Alleen al het verplichte gebruik van $ en @ voor je variabelen maakt je code een ramp om te lezen. Dat alleen is voor mij al genoeg reden een andere taal te gebruiken.
Nog steeds mijn favorite taal als je snel even iets nodig hebt om ungestructureerde data (documenten) te bewerken of zo. CPAN heeft een enorm arsenaal aan libraries zodat je niet steeds zelf het wiel hoeft uit te vinden.
Ik dacht destijds dat Perl een scripttaal was die hoorde bij de programmeertaal Python omdat ik die twee nooit los van elkaar tegenkwam 8)7
Op school hebben we afgelopen jaar nog Perl gebruikt bij een project voor Linux. Verder nog nooit meer iets mee gedaan.
Perl is wel handig door relatief korte code kon je al een heel programma schrijven. Vooral de manier waarop was wel handig, aangezien je het op verschillende manieren kon doen. Als je echter geen verstand had van de taal is het vaak onleesbaar zonder comments.
De meeste talen zijn onleesbaar als je de taal/syntax niet kent en er geen opmerkingen bij staan.

Perl is alleen een taal waar de discipline om leesbare code volledig bij de programmeur ligt.
Omdat er tenminste 2 manieren zijn om iets te doen (en meestal zelfs 4 of meer), waarvan 1 een extreem onleesbare one-liner, vergt het veel meer discipline om gestructureerd te schrijven dan de meeste andere talen.
Ik ben absoluut geen programmeur, maar ik maak dagelijks gebruik van in perl geschreven code: Zentyal Server packages zijn geschreven in Perl.
Daardoor heb ik bij het laatste T-Dose event het beginnersboek voor Perl: Learning Perl (de 'Llama book') aangeschaft en ben daar regelmatig in aan het lezen en kleine progsels aan het uitproberen. Ik vind het fascinerend en de links met het opensource platform dat ik graag gebruik en promoot maakt het extra bijzonder.
Ik ben al bijna 30 jaar programmeur en systeembeheerder UNIX, en ik vind Perl een van de meest walgelijke talen die daarwerkelijk gebruikt worden.
Waarom? Het leent zich voor quick & dirty scripts, het leent zich voor grote projecten.
De enige conventie die je aan hoeft te houden is je eigen stijl.

Een taal als Python heeft 1 MEGA afknapper: whitespaces zijn onderdeel van de syntax.
Ik dacht dat COBOL ons al had geleerd dat dat na de ponskaart niet meer handig was.

Een taal als C is extreem krachtig, maar je zit maar 1 stapje boven machinetaal te schrijven.

Een taal als JAVA is leuk, maar dan moet de JAVA runtime wel precies de goede zijn.

Etc.
De forced indenting van Python is juist één van de beste features naar mijn mening. Icm met de PEP8 standaard dwingt het je om je code op een bepaalde manier te schrijven die door iedereen begrijpelijk is.
Het nadeel van talen als Perl is dat iedere programmeur zijn eigen stijl kan aanhouden, waardoor het werken in een gedistribueerde setting vervelend of onmogelijk wordt. Als ik aan een groot project werk wil ik ook de code van anderen kunnen aanpassen, en vice versa.
Daarvoor heb je styleguides.

Als je aan python met verschillende editors/settings werkt krijg je een zooitje.
(Emacs, die 1 tab naar 4 spaties converteert, en 2 tabs naar 1x een tab karakter),
VI(m) waar je expandtabs wel of niet aan kan hebben...

Als je zo graag onzichtbare karakters als onderdeel van je syntax wilt hebben, dan adviseer ik whitespace: http://compsoc.dur.ac.uk/whitespace/

Ik heb jaren COBOL geschreven, en daar was de positie van je code van belang. (In latere versies van (MicroFocus) COBOL niet meer overigens)
Ik ben pertinent tegen het opdringen van een stijl door de ontwikkelaar van een taal.
Laat hem/haar de taal ontwikkelen, laat MIJ bepalen hoe ik MIJN code wil formatteren.

Als je met een stel (serieuze) programmeurs niet tot een standaard voor de te gebruiken stijl kan komen, dan is het probleem niet de taal waarin je schrijft.

Overigens schrijf ik nu alweer jaren Perl, en heb ik nog maar 1x een programmeur meegemaakt die zichzelf te bijzonder vond om code te schrijven die door anderen onderhouden kon worden. (Die code van hem was overigens naast onleesbaar ook buggy als ik weet niet wat, en een bugfix bestond uit het herschrijven van de code in meerdere regels met zinnige namen en comments waar nodig, inplaats van een obscure one-liner).
Heel vervelend als een team een eigen style erop na gaat houden. Of het nu in Perl is of een andere taal. Als je ooit het bedrijf verlaat (en nieuwere generaties zijn een flink stuk mobieler) dan is het iedere keer weer feest qua codeconventies en afspraken, al dan niet zwart op wit.
Ik ken eigenlijk weinig tot geen engineering disciplines waar dit geaccepteerd zou worden, alleen software engineers zijn altijd in staat het net beter te weten.

Ik zeg niet dat Python ideaal is in dit opzicht, het mag best wel wat relaxter maar algemeen zou ik willen stellen dat de originele auteur van een taal of de reference guide die het groot heeft gemaakt (K&R voor C of de Sun styleguide voor Java) de normatieve bronnen zijn. Dit maakt iig. de overdraagbaarheid een stuk groter.
Zeker zinnig, ik gebruik perl en python naast elkaar. style is everything. Ik betrap mezelf er echter steeds meer op de python pep8 ook te bebruiken voor mijn perl code....en die wordt daar absoluut leesbaarder van (volgens mijn collegas)
Ik heb jaren COBOL geschreven, en daar was de positie van je code van belang. (In latere versies van (MicroFocus) COBOL niet meer overigens)
Ik ben pertinent tegen het opdringen van een stijl door de ontwikkelaar van een taal.
Laat hem/haar de taal ontwikkelen, laat MIJ bepalen hoe ik MIJN code wil formatteren.
Kom op zeg, het gaat hier om indenting. Dat heb je in elke taal. Of zet jij soms graag alle code tegen de linker kantlijn?

Als je je code niet enkel voor jezelf ontwikkelt en geheim wilt houden, is het gewoon handiger als alle code, van welk project ook ter wereld, dezelfde formatting style heeft. Ik zou er echt moe van worden als ik wat code van een project wil lezen en het blijkt dat de ontwikkelaar het leuk vond om z'n eigen formatting style variant toe te passen :/ En of je een { nou op dezelfde regel zet of op de volgende en of je nou 3 of 4 spaties indenting gebruikt... zoveel boeit het niet, je went er zo aan. Als het maar consistent is.
Ik houd ervan om mijn code leesbaar te houden.
Vanaf ARexx houdt dat ook indentatie in (en zinnige namen voor variabelen)

Mijn probleem is niet met het leesbaar houden van code door indentatie (wat overigens maar een heeeeeel klein stukje aan de leesbaarheid bijdraagt), maar het 'onzichtbaar' kunnen breken van code doordat een onzichtbaar karakter een syntactische betekenis heeft.

Probeer eens een prettyprinter als de stijl van iemand je niet aanstaat.

Over het algemeen zijn er maar een paar formatting/code styles, en zolang iemand ze niet door elkaar gaat gebruiken is het niet moeilijk om het te volgen.

Misschien is het makkelijker voor mij omdat ik veel maintenance heb gedaan, en dus veel in andermans code zat te werken (en aanpassingen ook in de gebruikte stijl diende te houden), maar tenzij iemand een waardeloze programmeur is (en/of een asociale hond) is code die door anderen ook onderhouden dient te worden leesbaar voor die anderen.

Op dit item kan niet meer gereageerd worden.



Populair:Apple iPhone 6Samsung Galaxy Note 4Apple iPad Air 2FIFA 15Motorola Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox One 500GBTablets

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True

Beste nieuwssite en prijsvergelijker van het jaar 2013