OVH Cloud OVH Cloud

questionnement philosophique

48 réponses
Avatar
Emmanuel Florac
J'ai découvert les applications "snapshots" et "periodic-snapshots" sous
freeBSD, et j'ai décidé de m'en inspirer pour créer des équivalents
linux (en utilisant LVM, bien que ce soit beaucoup moins commode).

Par contre, les deux applications BSD d'origine sont écrites en
bourne shell. Ça ne me paraît pas optimal... Je pense les récrire en
perl. Par ailleurs, pour des raisons à la fois de commodité personnelle
et de conformité avec les habitudes "GNU", je pense conserver à peu
près la même syntaxe, mais en appliquant les normes "GNU" du genre
mettre "--" devant les paramètres, par exemple "snapshot --list" plutôt
que "snapshot list".

Qu'est ce que vous en dites? Je suis preneur de toute suggestion (de toute
façon pour les applis je les ai déjà commencées :)

--
Quidquid latine dictum sit, altum sonatur

10 réponses

1 2 3 4 5
Avatar
Pascal Bourguignon
(Emmanuel Dreyfus) writes:

Emmanuel Florac wrote:

Par contre, les deux applications BSD d'origine sont écrites en
bourne shell. Ça ne me paraît pas optimal... Je pense les récrire en
perl.


Pourquoi pas en C?


Et pourquoi pas en assembleur? Ou même se farcir le binaire à la
mimine, après tout, l'assembleur ne génère pas toujours les bits que
l'on voudrait.

--
__Pascal Bourguignon__ http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.


Avatar
DINH Viêt Hoà

(Emmanuel Dreyfus) writes:

Emmanuel Florac wrote:

Par contre, les deux applications BSD d'origine sont écrites en
bourne shell. Ça ne me paraît pas optimal... Je pense les récrire en
perl.


Pourquoi pas en C?


Et pourquoi pas en assembleur? Ou même se farcir le binaire à la
mimine, après tout, l'assembleur ne génère pas toujours les bits que
l'on voudrait.


Ceci dit, il y a besoin de perf pour cette application ?
il ne suffit pas d'avoir des perfs au niveau du support noyau ?

--
DINH V. Hoa,

"Ma tuxitude me beastifie" -- sunZ



Avatar
manu
DINH Viêt Hoà wrote:

Pourquoi pas en C?
Et pourquoi pas en assembleur? Ou même se farcir le binaire à la

mimine, après tout, l'assembleur ne génère pas toujours les bits que
l'on voudrait.



Parcequ'un humain code souvent moins optimisé en assembleur qu'un
compilateur C.

--
Emmanuel Dreyfus
Publicité subliminale: achetez ce livre!
http://www.eyrolles.com/Informatique/Livre/9782212114638/livre-bsd.php




Avatar
Emmanuel Florac
Le Fri, 10 Sep 2004 10:02:29 +0200, Eric Masson a écrit :


Le temps effectif de pose d'un snapshot est assez faible, c'est la phase
de préparation qui est la plus longue :


OUi, oui, en fait si j'ai bien compris, on crée le fichier snapshot dans
ls FS "imagé", et ce fichier grossit bien sûr en fonction de l'espace
utilisé. DOnc le snapshot prend de l'espace au FS "imagé" alors que dans
le cas de LVM c'est un espace distinct, ce qui est au demeurant moins
pratique.

--
L'esprit qu'on veut avoir gâte celui qu'on a.
Jean-Baptiste Louis Grisset.

Avatar
Emmanuel Florac
Le Fri, 10 Sep 2004 22:49:41 +0200, Emmanuel Dreyfus a écrit :


Par contre, les deux applications BSD d'origine sont écrites en
bourne shell. Ça ne me paraît pas optimal... Je pense les récrire en
perl.


Pourquoi pas en C?



Parce que je pense que ce serait idiot :) Ce serait beaucoup plus long et
compliqué, alors qu'il s'agit de lancer quelques commandes et de faire
quelques tests du genre "présence de fichier/point de montage" etc.
Typiquement le genre de truc qu'il ne faut _surtout_pas_ faire en C.

Par ailleurs, pour des raisons à la fois de commodité personnelle
et de conformité avec les habitudes "GNU", je pense conserver à peu
près la même syntaxe, mais en appliquant les normes "GNU" du genre
mettre "--" devant les paramètres, par exemple "snapshot --list" plutôt
que "snapshot list".


A part introduire une syntaxe incompatible avec la version BSD et avoir
à taper deux caractères de plus, y'a un interet à cette modification?


Fondamentalement pas vraiment, sinon comme je le disais à se conformer
aux normes "GNU". Le gros avantage c'est la clarté de la syntaxe : les
paramètres sont précédés de -- (ou - pour les carctères simples), les
valeurs n'ont rien. La distinction est beaucoup plus claire, donc je
trouve que c'est mieux. On peut aussi préférer la norme X (paramètres
avec un seul -).

De toute façon la syntaxe ne pourra pas être exactement identique à la
version BSD, parce que le mécanisme sous-jacent est assez différent.
Simplement aussi proche que possible, parce que 1) ça m'évite à moi de
réinventer la roue (n'oublions pas que la paresse est la qualité
première du programmeur, c'est d'ailleurs pour ça que je ne le ferai
pas en C!) et 2) ça sera quand même plus commode pour ceux qui
connaissent l'outil FreeBSD qui n'auront pas besoin d'effort pour
comprendre la logique de fonctionnement de l'outil.

--
L'esprit qu'on veut avoir gâte celui qu'on a.
Jean-Baptiste Louis Grisset.


Avatar
Emmanuel Florac
Le Sat, 11 Sep 2004 03:34:00 +0200, DINH Viêt Hoà a écrit :


Ceci dit, il y a besoin de perf pour cette application ?


Aucune. Il s'agit de parser la ligne de commande, vérifier la présence
de certains fichiers/répertoires, créer certains fichiers/répertoires,
et lancer quelques commandes qui existent déjà avec divers paramètres
en faisant un minimum de traitement de chaîne. On peut le faire en shell
très simplement, je préférerais le faire en perl par facilité... En
fait le débat c'est "shell ou perl"?

il ne suffit pas d'avoir des perfs au niveau du support noyau ?


Si, mais tout ce qu'il faut existe déjà je n'ai rien à toucher à ce
niveau.

--
Il y a toujours un bug de plus.
Loi de Lubarsky.

Avatar
DINH Viêt Hoà

Ceci dit, il y a besoin de perf pour cette application ?


Aucune. Il s'agit de parser la ligne de commande, vérifier la présence
de certains fichiers/répertoires, créer certains fichiers/répertoires,
et lancer quelques commandes qui existent déjà avec divers paramètres
en faisant un minimum de traitement de chaîne. On peut le faire en shell
très simplement, je préférerais le faire en perl par facilité... En
fait le débat c'est "shell ou perl"?


le débat n'est-il pas "reprendre un existant ou tout refaire
de zéro ?" ?

Mais, effectivement, dans le monde de l'Open Source, les gens aiment
bien faire les choses de zéro avec plus de bugs. (C'est juste une
constatation, étant moi-même adepte de la pratique).

--
DINH V. Hoa,

"la chatte de ma petite soeur s'appelle Zoé" -- the captain de soirées


Avatar
Emmanuel Florac
Le Sun, 12 Sep 2004 19:07:07 +0200, DINH Viêt Hoà a écrit :


le débat n'est-il pas "reprendre un existant ou tout refaire
de zéro ?" ?



Mais non, l'existant est pour FreeBSD, il utilise des mécanismes
distincts, on ne peut pas l'adapter simplement sous Linux! J'ai regardé
si je pouvais l'adapter, pour commencer, si je faisais l'outil linux en
shell je pourrais sûrement emprunter deux trois choses dans l'original,
mais c'est tout...

--
entia non sont multiplicanda praeter necessitatem.
Guillaume d'Ockham.

Avatar
Serge Gagnon
On Sun, 12 Sep 2004, "E.F." == Emmanuel Florac wrote:







+> Pourquoi pas en C?

E.F.> Parce que je pense que ce serait idiot :) Ce serait beaucoup plus
E.F.> long et compliqué, alors qu'il s'agit de lancer quelques commandes
E.F.> et de faire quelques tests du genre "présence de fichier/point
E.F.> de montage" etc. Typiquement le genre de truc qu'il ne faut
E.F.> _surtout_pas_ faire en C.

http://ied.eng.unipr.it/silve/node88.html


--
Serge Gagnon
Quebec, Qc, Canada





Avatar
Emmanuel Florac
Le Sun, 12 Sep 2004 23:30:31 +0000, Serge Gagnon a écrit :


http://ied.eng.unipr.it/silve/node88.html


C'était il y a 25 ans, quand le choix c'était Fortran, C, ou assembleur.
De nos jours, Eric S. Raymond dit lui-même qu'il n'y a presque jamais de
bonne raison d'écrire une appli en C:

http://www.catb.org/~esr/writings/taoup/html/why_not_c.html

Je cite (et je vous laisse lire la suite):

It may therefore seem perverse to assert that C and C++ are nowadays
almost always the wrong vehicle for beginning new applications
development. But it's true.

Et je suis profondément d'accord avec ça. Je ne fais pour ainsi dire
jamais rien en C vu que je ne fais pas de programmation système ni rien
qui soit demandeur en performance (calculs lourds, interfaces graphiques
complexes...). Et je préfère utiliser la puissance d'un langage moderne
comme Perl (ou python, ruby, java, mettez ici votre langage préféré...)
plutôt que bourne-shell. Shell c'est uniquement une question de
"compatibilité maximale".
Comme apparemment le débat "perl ou shell" ne semble frapper personne, je
vais donc me conformer à l'habitude Debian et écrire la commande en
perl, ce qui est mon option préférée de toute façon :)

--
entia non sont multiplicanda praeter necessitatem.
Guillaume d'Ockham.

1 2 3 4 5