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

Répondre à