PDA

Bekijk Volledige Versie : Perl rant



Rene Pijlman
26/03/05, 12:45
Nico Coesel:
><rant modus> Leg dat stuk
>code eens voor aan mensen die wel programmeren maar geen Perl kennen;
>niemand die je kan vertellen wat het doet. Als je 2 jaar niets met
>Perl heb gedaan, dan moet je opzoeken hoe het ook al weer zat. Sorry,
>maar programma's waarbij ik later weer moet opzoeken hoe het ook
>alweer zat wil ik niet maken.</rant modus>

Hear, hear!

Dat was voor mij inderdaad de voornaamste reden om Perl af te zweren. Ik
begreep na een half jaar mijn eigen programma's niet meer. En dat probleem
heb ik met allerlei andere talen (o.a. Java en Python) in veel mindere
mate.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

robert
26/03/05, 20:55
Rene Pijlman <reply.in.the.newsgroup@my.address.is.invalid>:
> Dat was voor mij inderdaad de voornaamste reden om Perl af te zweren. Ik
> begreep na een half jaar mijn eigen programma's niet meer.

Ik begrijp na 5 jaar mijn Perl code nog steeds, rara...

--
robert

John Bokma
26/03/05, 22:15
Rene Pijlman wrote:

> Nico Coesel:
>><rant modus> Leg dat stuk
>>code eens voor aan mensen die wel programmeren maar geen Perl kennen;
>>niemand die je kan vertellen wat het doet. Als je 2 jaar niets met
>>Perl heb gedaan, dan moet je opzoeken hoe het ook al weer zat. Sorry,
>>maar programma's waarbij ik later weer moet opzoeken hoe het ook
>>alweer zat wil ik niet maken.</rant modus>
>
> Hear, hear!
>
> Dat was voor mij inderdaad de voornaamste reden om Perl af te zweren.
> Ik begreep na een half jaar mijn eigen programma's niet meer. En dat
> probleem heb ik met allerlei andere talen (o.a. Java en Python) in
> veel mindere mate.

Wellicht omdat je in Python in een C achtige syntax programmeerd?
Ik heb inmiddels genoeg Python gezien om op te merken dat:

a) sommige constructies zijn erg lastig te lezen
b) sommige constructies zijn heel herkenbaar (vanuit Perl), maar hebben een
andere notatie

Hoe heb jij Perl geleerd, en hoe Python?

--
John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Website design: http://johnbokma.com/websitedesign/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html

Rene Pijlman
26/03/05, 22:25
John Bokma:
>Rene Pijlman:
>> Dat was voor mij inderdaad de voornaamste reden om Perl af te zweren.
>> Ik begreep na een half jaar mijn eigen programma's niet meer. En dat
>> probleem heb ik met allerlei andere talen (o.a. Java en Python) in
>> veel mindere mate.
>
>Wellicht omdat je in Python in een C achtige syntax programmeerd?

Que? Als er iets is dat ik de rest van mijn leven niet meer wil doen is
het programmeren in C. Los daarvan, ik zou niet weten hoe dat moet in
Python.

>Ik heb inmiddels genoeg Python gezien om op te merken dat:
>
>a) sommige constructies zijn erg lastig te lezen

Aha.

>Hoe heb jij Perl geleerd

De Kameel lezen. Die heb ik nog steeds niet ritueel verbrand :-)

>en hoe Python?

De Python tutorial lezen en nog zo wat documentatie.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

John Bokma
26/03/05, 22:45
Rene Pijlman wrote:

> John Bokma:
>>Rene Pijlman:
>>> Dat was voor mij inderdaad de voornaamste reden om Perl af te
zweren.
>>> Ik begreep na een half jaar mijn eigen programma's niet meer. En dat
>>> probleem heb ik met allerlei andere talen (o.a. Java en Python) in
>>> veel mindere mate.
>>
>>Wellicht omdat je in Python in een C achtige syntax programmeerd?
>
> Que? Als er iets is dat ik de rest van mijn leven niet meer wil doen
is
> het programmeren in C. Los daarvan, ik zou niet weten hoe dat moet in
> Python.

<http://groups-beta.google.com/group/nl.internet.www.server-
side/msg/87f1fad219b15684?dmode=source>

:-) Ik had iets a la print "\n".joun( [ "%d %d" % ....... ])

verwacht. Aan de andere kant, dan was er nu vast een Python rant :-D

>>Ik heb inmiddels genoeg Python gezien om op te merken dat:
>>
>>a) sommige constructies zijn erg lastig te lezen
>
> Aha.

methodList = [e for e in dir(object) if callable(getattr(object, e))]
procFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
print "\n".join(["%s %s" %
(method.ljust(spacing),
procFunc(str(getattr(object, method).__doc__)))
for method in methodList])

>>Hoe heb jij Perl geleerd
>
> De Kameel lezen. Die heb ik nog steeds niet ritueel verbrand :-)

Da's ook een erg foute start, The Camel is een *reference* boek, geen
leer boek.

>>en hoe Python?
>
> De Python tutorial lezen en nog zo wat documentatie.

Yup, die tutorial is meer op Learning Perl nivo.

Python Reference Manual is er ook geen een om mee te beginnen :-D (als
ik het zo snel ff goed zie).

En Dive into Python raad ik alleen mensen aan die al eens een taal
gedaan hebben. Wel leuk boek overigens, alleen jammer dat het achteraan
een beetje verzand (voor mij, romeinse nrs en zo).

--
John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Website design: http://johnbokma.com/websitedesign/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html

Rene Pijlman
26/03/05, 23:45
John Bokma:
>Rene Pijlman:
>> Que? Als er iets is dat ik de rest van mijn leven niet meer wil doen
>> is het programmeren in C. Los daarvan, ik zou niet weten hoe dat moet
>> in Python.
>
><http://groups-beta.google.com/group/nl.internet.www.server-
>side/msg/87f1fad219b15684?dmode=source>
>
>:-)

Da's geen C, dat is Cobol. Ik bied de lezer mijn welgemeende excuus aan
voor de matige kwaliteit van de code. Het onderliggende idee is echter nog
niet zo slecht.

>methodList = [e for e in dir(object) if callable(getattr(object, e))]
>procFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
>print "\n".join(["%s %s" %
> (method.ljust(spacing),
> procFunc(str(getattr(object, method).__doc__)))
> for method in methodList])

OK, Ok, ok.

>The Camel is een *reference* boek, geen leerboek.

Ik smeek te verschillen. Het is meer dan een reference-boek en ik vind het
een uitstekend leerboek.

En net zoals Kernighan & Ritchie met hun vreselijk foute
programmavoorbeelden generaties hebben opgezadeld met ontelbare buffer
overrun bugs in miljoenen regels code, zo heeft Larry Wall
honderdduizenden programmeurs verpest door ze te leren dat het normaal is
om te schrijven:

while (<FILE>) {
print if /http:/;
}

Sterker nog, zo krijg je 'veteran' status.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

cmkools
27/03/05, 00:25
On Sat, 26 Mar 2005 23:44:06 +0100, Rene Pijlman
<reply.in.the.newsgroup@my.address.is.invalid> wrote:

>John Bokma:
>>Rene Pijlman:
>>> Que? Als er iets is dat ik de rest van mijn leven niet meer wil doen
>>> is het programmeren in C. Los daarvan, ik zou niet weten hoe dat moet
>>> in Python.
>>
>><http://groups-beta.google.com/group/nl.internet.www.server-
>>side/msg/87f1fad219b15684?dmode=source>
>>
>>:-)
>
>Da's geen C, dat is Cobol. Ik bied de lezer mijn welgemeende excuus aan
>voor de matige kwaliteit van de code. Het onderliggende idee is echter nog
>niet zo slecht.
>
>>methodList = [e for e in dir(object) if callable(getattr(object, e))]
>>procFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
>>print "\n".join(["%s %s" %
>> (method.ljust(spacing),
>> procFunc(str(getattr(object, method).__doc__)))
>> for method in methodList])
>
>OK, Ok, ok.
>
>>The Camel is een *reference* boek, geen leerboek.
>
>Ik smeek te verschillen. Het is meer dan een reference-boek en ik vind het
>een uitstekend leerboek.
>
>En net zoals Kernighan & Ritchie met hun vreselijk foute
>programmavoorbeelden generaties hebben opgezadeld met ontelbare buffer
>overrun bugs in miljoenen regels code, zo heeft Larry Wall
>honderdduizenden programmeurs verpest door ze te leren dat het normaal is
>om te schrijven:
>
> while (<FILE>) {
> print if /http:/;
> }
>
>Sterker nog, zo krijg je 'veteran' status.

Kan dit niet gewoon in qbasic?
--
server: news:news.kools-online.com
web: http://www.kools-online.com
info: http://portal.kools-online.com

John Bokma
28/03/05, 02:35
Rene Pijlman wrote:

> John Bokma:

>>The Camel is een *reference* boek, geen leerboek.
>
> Ik smeek te verschillen. Het is meer dan een reference-boek en ik vind
> het een uitstekend leerboek.

Ik niet, ik ben ooit begonnen met de paarse kameel, en dat was iets
eenvoudiger (had ergens middenin een berg examples). De Kameel gaat een
heel stuk verder dan Dive into Python b.v., en is voor de gemiddelde
beginner (wat is dat?) extreem lastig doorheen te komen.

> En net zoals Kernighan & Ritchie met hun vreselijk foute
> programmavoorbeelden generaties hebben opgezadeld met ontelbare buffer
> overrun bugs in miljoenen regels code,

Een bufferoverun zegt heel veel over de programmeur, en weinig over de
programmeertaal (behalve dan dat het geen bounds checking heeft @
runtime)

> zo heeft Larry Wall
> honderdduizenden programmeurs verpest door ze te leren dat het normaal
> is om te schrijven:
>
> while (<FILE>) {
> print if /http:/;
> }

Wat is er niet normaal aan? (stukje komt van p36 van de 3e editie,
Programming Perl, en gaat over reguliere expressies)

> Sterker nog, zo krijg je 'veteran' status.

Yup, waarom zou je:

while ( $line = <FILE> ) {

if ( $line =~ /^http:/) {

print $line;
}
}

schrijven (zie zelfde pagina) (of nog langer).


Net als:

methodList = [e for e in dir(object) if callable(getattr(object, e))]

In Python wellicht in 25 regels uit te schrijven is.

Ik gok dat het 1e ook 'veteran' status geeft, en die 25 regels 'newbie'
status :-D.

En net als 10^5 je 'veteran' status geeft, en 10 x 10 x 10 x 10 x 10 ...
etc.

--
John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Website design: http://johnbokma.com/websitedesign/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html

Rene Pijlman
28/03/05, 11:05
John Bokma:
>Rene Pijlman:
>> En net zoals Kernighan & Ritchie met hun vreselijk foute
>> programmavoorbeelden generaties hebben opgezadeld met ontelbare buffer
>> overrun bugs in miljoenen regels code,
>
>Een bufferoverun zegt heel veel over de programmeur, en weinig over de
>programmeertaal (behalve dan dat het geen bounds checking heeft @
>runtime)

Rond een taal bestaat vaak een bepaalde programmeercultuur, die door de
bedenkers ervan bewust of onbewust in het leven is geroepen. Kijk naar het
boek van Kernighan & Ritchie, kijk naar de broncode van sendmail (niet te
lang), drink een borrel om bij te komen van de schrik... en je begrijpt
wat ik bedoel :-)

>> zo heeft Larry Wall honderdduizenden programmeurs verpest door ze te
>> leren dat het normaal is om te schrijven:
>>
>> while (<FILE>) {
>> print if /http:/;
>> }
>
>Wat is er niet normaal aan?

Woorden schieten te kort :-/

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Jan Ehrhardt
28/03/05, 11:15
Rene Pijlman in nl.internet.www.server-side (Mon, 28 Mar 2005 11:03:05
+0200):

>Woorden schieten te kort :-/

Woorden schieten te kort /:-/

bedoel je toch?

Jan
--
Look, Ma. No tables - http://enbio.steenbergen-stichting.nl/

John Bokma
28/03/05, 23:55
Rene Pijlman wrote:

> John Bokma:
>>Rene Pijlman:
>>> En net zoals Kernighan & Ritchie met hun vreselijk foute
>>> programmavoorbeelden generaties hebben opgezadeld met ontelbare
>>> buffer overrun bugs in miljoenen regels code,
>>
>>Een bufferoverun zegt heel veel over de programmeur, en weinig over de
>>programmeertaal (behalve dan dat het geen bounds checking heeft @
>>runtime)
>
> Rond een taal bestaat vaak een bepaalde programmeercultuur, die door
> de bedenkers ervan bewust of onbewust in het leven is geroepen. Kijk
> naar het boek van Kernighan & Ritchie, kijk naar de broncode van
> sendmail (niet te lang), drink een borrel om bij te komen van de
> schrik... en je begrijpt wat ik bedoel :-)

Nee, ik begrijp het nog steeds niet :-D. Als programmeur moet je
voldoende slim zijn om afwegingen te kunnen maken wat wel en niet kan.
Als iedereen gehersenspoeld zou worden door het 1e leerboek wat hij las
zou de wereld een erg droevige plaats zijn.

Ik heb K&R al jaren niet meer doorgenomen, maar ik betwijfel of dat boek
bol staat van aanbevelingen om buffer overruns te programmeren.

Het is knoeiwerk van de programmeur, en niet van de taal. Als de taal
programmeurs van dat nivo beschermt, vinden die knoeiers wel andere
manieren om problemen te veroorzaken.

>>> zo heeft Larry Wall honderdduizenden programmeurs verpest door ze te
>>> leren dat het normaal is om te schrijven:
>>>
>>> while (<FILE>) {
>>> print if /http:/;
>>> }
>>
>>Wat is er niet normaal aan?
>
> Woorden schieten te kort :-/

Tja, dat is ook een manier om te argumenteren.

--
John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Website design: http://johnbokma.com/websitedesign/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html