On 09. 03. 18 11:34, Laurent Franceschetti wrote:
Avant que j’aille un peu plus dans le détail: au fond il y a une
question sous-jacente: les choix de Perl avec le scope lexical des
variables. C’est peut-être le choix de base (scoping global) qui a été
problématique. On sait depuis longtemps que le scoping global est
source d’erreurs. Les nouveaux langages ont des scopes locaux.
Oui et cette "imposition" est bien utile. Ce n'est d'ailleurs pas une
contrainte... mais on voit des tas de programmes où des gens utilisent
'global' a tour de bras. Il est illusoire de croire qu'un langage va
pouvoir "imposer" d'écrire des programmes "propres" et élégants. Un
programmeur non-rigoureux produira toujours du code pourri et il se peut
que le problème soit amplifié par le langage; mais le vrai responsable
n'est pas ce dernier. Il est aussi vrai qu'un programmeur rigoureux peut
aussi produire du code le plus propre possible... toujours dans les
limites de ce que le langage permet. Lorsque je lis les bouts de code de
Marc, c'est lisible et évident immédiatement; ce n'est hélas pas le cas
de beaucoup de codes Perl que l'on trouve sur le net. Je pense donc que
certains langages apporte une aide efficace dans la production de code
propre, et d'autre un peu moins... Perl est peut-être un peu trop
permissif à mon goût.
Ce que j’ai appris avec Python, c’est le principe d’économie: ne pas
écrire des choses évidentes. En éradicant sans pitié tout ce qui
encombre le code (le « boiler plate » et les commentaires-pléonasmes),
on met en relief l’essence de la pensée. Il est vrai que « my » ce
n’est que 3 lettres (avec l’espace), mais je trouve que c’est dommage
qu’on doive encore l’indiquer, _si ça devient auto-évident qu’il
faudrait toujours utiliser my_.
Peut-être qu’il y a, dans ces problèmes logiques et ces «
encombrements » (qui ne sont pas rédhibitoires), une explication de
pourquoi Perl peut rebuter?
J'ai un avis, très personnel il est vrai, concernant les langages qui
utilisent le signe '$' pour identifier ses symboles... C'est en général
le signe que l'analyseur syntaxique est limité. C'est surprenant de voir
ce genre d'exigence syntaxique dans un langage qui utilise quand même
Lex & Yacc... Avec une table de symbole, on peut facilement faire du
"scoping", détecter l'usage d'un symbole/variable et les
instantiations... Bizarre...
dc
_______________________________________________
gull mailing list
[email protected]
http://forum.linux-gull.ch/mailman/listinfo/gull