On Thu, Sep 30, 2004 at 04:02:11PM +0200, Luca Manganelli wrote: > Daniele Nicolodi wrote: Interpreto l'omissione di repliche ai punti 1 e 2 come amissione che su quei puinti ho ragione ? > >3. Implementazione del paradigma ad oggetti a dir poco penosa. > > > > > Vedremo con Perl 6. Se è per quello dicono che tra poco ci sarà un linguaggio che si scrive da solo... Limitare la discussione a quello che esiste mi sembra un ottimo inizio per avere commenti il più possibile oggettivi. > >4. Mancanza delle eccezzioni che unita alla mancanza di tipi rende un > > casino ritornare qualcosa di consistente da una funzione. > Basta usare eval. Eval può in qualche modo sopperire ma non permette di trappare le eccezzioni condizionatamente. O tutto o niente non è sempre quello che si desidera. > >5. Pretesa di essere un linguaggio "all inclusive". Alla fine se vai > > fuori da quelle quattro cose che fai tutti i giorni devi stare > > semrpe con il manuale sottomano. > > > Anche con Python e PHP e' cosi'. Forse con PHP si, sicuramente non con python. Per il motivo occorrerebbe sapere che cosa è l'introspezione... > >6. Mancanza di una qualsiasi forma di introspezione. Una delle migliori > > features del python. > > > Cosa e'? Mi viene in mente un articolo che è girato in lista qualche tempo fa che diceva come solo chi conosce linguaggi di programmazione più evoluti riesca a comprendere le limitazioni di quelli meno evoluti... > In effetti, bisognerebbe usare ActiveState Komodo (a pagamento) che > include un ottimo Regular Expression Editor. Anche emacs include un regular expression editor ma non è assolutamente la soluzione del problema per non avere un interprete interattivo. > >8. Sintassi mostruosa. Questo è un programma perl valido: > > > > #!/usr/bin/perl > > > > $b = { "c" => [ { "a" => 1 } ] }; > > $a = [ keys(%{shift(@{$b->{'c'}})}) ]; > > print join("\n", @{$a}), "\n"; > > > > ma capire che cosa fa non mi pare assolutamente semplice. > > > Questo e' un problema di chi scrive codice, non del perl. No. È un problema del perl che costringe ad utilizzare sintassi astrusissime per fare anche delle cose banali. Per esempio mi viene in mente il metodo per sapere la lunghezza di un array: $len = scalar(@array); ma era diffcile introdurre una funzione len() ? E poi tutto sto casino dei reference e no reference che per farli e disfarli ci si incasina sempre... tutto perchè in realtà per l'interprete tutti i dati sono stringhe! Lo stesso codice di cui sopra in python diventa: #!/usr/bin/env python2 b = { 'c': [ { 'a': 1 }, ] } a = b['c'].pop(0).keys() print '\n'.join(a), '\n' che non dico sia chiarissimo ma a me risulta molto più leggibile. Ciao -- Daniele Physics is like sex. Sure, it may give some practical results, but that's not why we do it. -- Richard P. Feynman -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx