[gull] Faut-il réhabiliter Perl comme langage de scripting système?

felix felix at f-hauri.ch
Mon Mar 12 11:06:06 CET 2018


Coucou,

Oui, je vais dire un mot:

On Sat, Mar 10, 2018 at 08:55:28AM +0100, Marc SCHAEFER wrote:
> On Sat, Mar 10, 2018 at 01:07:41AM +0100, Daniel Cordey wrote:

> Plus sérieusement, en ce qui me concerne, dans un cursus de développement
> logiciel aujourd'hui, je proposerais:
> 
>    - le C pour appliquer les notions d'architectures des ordinateurs,
>      y compris la portabilité
> 
>    - le python pour voir un langage de script générique (appliqués aux
>      calculs mathématiques ainsi qu'au développement Web p.ex. avec Django,
>      le fonctionnel, l'OO)
> 
>    - le Java car c'est le langage Entreprise de référence aujourd'hui et
>      la JVM est très importante dans plein de langages
> 
>    - le Javascript car c'est l'assembleur portable d'aujourd'hui

Sans oublier les languages du web: HTML (3 à 5) et CSS(>=2)!

( mais, les faire bosser sur LaTeX, pour leur rapports et présentations,
  avec des outils comme gnuplot, dotty... Cela se fait encore beaucoup
  dans les universités et est très utile pour la cohérence et la pérénité
  des documents... -> ``R'' )

> et pour ceux qui vont plus dans la direction "système":
> 
>    - bash
Je dirais ``Shell'', avec des challenges utilisant busybox et/ou dash!

En effet, l'``administration'' doit concerner l'embarqué, les serveurs
et les desktops... Dans bien des cas, ``bash'' n'est pas installé, soit
pour des raisons de mémoire, soit pour des raisons de sécurité (trop
complexe).

bash doit cependant occuper une part importante, il devient de plus en
plus un language de programmation... utilisant des raccourcis permettant
par exemple une interaction bidirectionnelle avec un sous-process (voire
perl Open2 et perlipc ;)

Voici comment dialoguer avec un serveur mysql distant (sans port TCP),
en utilisant ssh et bash. 
  $ read tdir < <(mktemp -d)
  $ mkfifo $tdir/fifo.{out,err}
  $ ssh -f -L $tdir/mysqld.sock:/var/run/mysqld/mysqld.sock $sqlhost sleep 5
  $ exec 5> >(exec stdbuf -oL -eL mysql -S $tdir/mysqld.sock -p'myPassword' \
                  database >$tdir/fifo.out 2>$tdir/fifo.err )
  $ exec 6<$tdir/fifo.out
  $ exec 7<$tdir/fifo.err 
  $ rm -fR $tdir

  $ echo >&5 'SELECT CURRENT_USER,CURRENT_DATE,CURRENT_TIME;'
  $ while read -t .01 -u 6 sqlout;do echo ">" $sqlout;done
  > CURRENT_USER CURRENT_DATE CURRENT_TIME
  > felix at localhost 2018-03-12 10:48:58
  $ while read -t .01 -u 6 sqlerr;do echo "E:" $sqlerr;done

  $ ps --sid $(ps ho sid $$) fw


> et pour ceux qui vont plus dans l'embarqué:
> 
>    - C++
> 
>    - assembleur (code bootstrap notamment)
> 
> Quant à Perl, PHP, Ruby, etc, je les proposerais en
> option pour investiguer un axe en particulier (Perl: regexp,
> Moose, Mojolicious), PHP (Laravel), Ruby (On Rails).

Je pense, pour ma part, que PHP devient nécessaire en raison du
nombre d'applications que l'on rencontre tous azimuths.

Ne suis pas fan, bien au contraire, mais il m'a été utile de le
connaître pour debugguer des CMS installés, mais égallement pour
désosser des ``virus'' (venu du froid) qui transforment les
serveurs web en zombies...

Pour ce qui est de Perl, je dois dire que je peux ``penser'' en Perl.
Ce qui rend les scéances de ``Brainstorming'', en solo devant mon
écran, plutôt efficaces. (Ce que je pond n'est pas forcement très
lisible, heureusement, perl regorge d'outils tels que perltidy,
debug et autres critic - merci Xavier Gattuso -...)

> Il y a des gens qui utilisent Caml? :)
Il y a des gens qui utilisent LISP! J'ai même vu, en 2017, du Tcl/Tk!!

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list