Le 6 avr. 05, à 09:24, Christian PELISSSIER a écrit :

Une des raisons qui font que les novices

Novice moi ? Dis donc ! ;-)

s'en vont en courant quand ils
utilisent  ksh réside dans le fait qu'ils ne trouvent pas par défaut un
environnement convivail et qu'il faut :


1) mapper les flêches pour l'historique (dans le .profile) : (...)

J'avoue n'avoir jamais pensé à ça.


2) ils ignorent que la complétion sur les noms de fichiers se fait en tapant
2 fois la touche Escape

Ca par contre, je connaissais. Quand je suis tombé dans Solaris, je venais d'un système antédiluvien PRIMOS qui faisait déjà très bien les completion (avec TAB), et les ACLs (notamment). J'ai donc cherché à reproduire ces fonctionnalités. Pour la completion, j'ai rapidement trouvé, par contre les ACLs il a fallut attendre Solaris 2.5.
Ce qui m'amuse souvent, concernant les ACLs, c'est qu'en 2005 je doivent encore prêcher pour cette facilité alors que j'utilisais déjà ça en 1992 sur PRIMOS ! (y-a-t-il des gens qui viennent du monde PR1ME/PRIMOS dans la salle ?).


(...)
Il existe une version beaucoup plus puissante appelée ksh93 toujours maintenue
par David Korn et dont les binaires sont disponibles pour Solaris, Linux, BSD
etc. (dtksh de CDE est dérivée de la Version 93d de ksh93 et il permet de faire
des fenêtres X11/Motif/CDE en shell !). ksh93 peut travailler en flottant et
possède les tableaux associatifs. On peut lui rajouter des commandes internes
sous forme de librairies .so, etc.


Dans cette version le mapping historique se déclare différemment. En gros on peut
tout faire ou presque y compris mapper ESC ESC en TAB
(...)
http://www.kornshell.com/

Très intéressant.


(...)
Enfin ce qui est navrant dans tout cela c'est que les programmeurs utilisent
ksh et même bash comme ils utilisaient sh il y a 25 ans. Ils ignorent 90 % des fonctionnalités de ces nouveux shells. Exemple peu de programmeurs
connaissent la différence entre :


if [ $x != "t" ]
et
if [[ $x == "t" ]]

ne savent pas qu'on peut remplacer l'antédiluvienne forme

i=`expr $i + 1` par (( i += 1 ))

et qu'on peut utiliser tous les opérateurs du C

if (( $i == 3 && $x != 9 )) est valide en ksh et bash.
ou qu'on peut faire basename de $filename comme ceci ${filename##*/}


Ca, je confirme, je ne compte plus le nombre de fois où j'ai dû expliquer ce genre de chose.
Mais cela ne sert souvent pas à grand chose; expliquer à un dévelopeur que c'est réellement intéressant d'économiser les fork/exec à notre époque s'avère une tâche ardu !

Ton témoignage me rassure quelque peu Christian, je ne suis pas tout seul !!! :-)


_______________________________________________
Solaris_fr liste de diffusion en français pour Solaris, sur toutes architectures
Solaris_fr@x86.sun.com
http://x86.sun.com/mailman/listinfo/solaris_fr



Reply via email to