FourcheLangue

Bienvenue en Fourche Langue

Pourquoi fourchelangue ?

Cette page à l'ambition de promouvoir l'utilisation de python, à travers mon expérience.
Et le nom de fourchelangue vient de harry potter qui dans le premier tome parle avec un python molure. Si vous savez parler python vous pratiquer le fourchelangue. à vous de choisir votre camps entre le bien et le mal ;)..
entre griffondor et serpentard

Pourquoi python

Bien qu'ayant à la base une formation informatique, je ne pratique plus professionelement depuis quelques années. Néanmoins il m'arrive d'avoir besoin dans mon activité de recoder des données, automatiser des requêtes vers des serveurs Web et deux trois bricoles qui vont tellement vite avec quelques lignes de code.

J'avais donc besoin d'un outil assez versatile, et dont la syntaxe soit suffisament claire pour que je puisse me relire quelques mois plus tard. L'aspect interface utilisateur n'était pas fondamental pour mon utilisation, Python fit l'affaire

Pour essayer commencez par le tutorial et pour les progammeurs plus chevronnés plongez dans Python

Mais connait il d'autres langages ?

J'ai pratiqué pas mal de langages, certains que j'ai maitrisés avec plus ou moins de bonheur, Pascal, Fortran, Occam, Bourne Shell, C, basic (S, Q, Vb ..), Perl.

D'autres m'ont parfois posé des problèmes sur certains aspects Prolog, C++.

D'autres me sortent carrément par les yeux : Forth, Lisp, java ...

Je n'ai jamais tâté de tcl/tk mais un jour j'y viendrai, je suis toujours surpris de ce que certains réussissent à en faire (amsn, scotty ..)

Le plus gros programme que j'ai réalisé comportait plus de 20 000 lignes de pascal UCSD et mon code le plus utilisé est un gestionaire de menus et d'habilitations pour cluster HACMP, mélant script shell et C, très rustique il est vrai, mais il est encore utilisé 10 ans plus tard chaque jour par des centaines de personnes. Pas mal pour un produit dit jetable.

Ce que je penses de :

Python

Une documentation d'excellente qualité, et une communauté de développeur dont les sources sont d'une clarté totale. Le langage en lui même est facile avec une syntaxe claire et des fonctionalités avancées (slice, list Compréhension ..). On peut tout faire avec python et les "librairies" fournies,avec des performances honnêtes.

Perl

Si j'étais capable de relire mes sources trois mois plus tard je dirais que Perl est un super langage en fait il l'est mais pas pour un programmeur occasionnel. La communauté PERL a aussi le défaut de produire des sources parfois trop cryptiqueà la complexité de lecture inutile, dommage

C

Dommage que les cast existent sinon les sources y compris de choses assez pointues comme le noyau de Linux sont en général assez clairs. Ce n'est pas un langage de débutant et de plus bas niveau que Perl et Python, mais dès que l'on a besoin de plus de rapidité d'exécution il faut y passer.

Pascal, Ada, Modula

Je suis resté un pascalien dans l'âme, mais on peut faire beaucoup plus concis que Pascal avec Python et Perl, et beaucoup plus performant avec C. Quand à Ada et Modula je leur reproche leur coté beaucoup trop verbeux, carrément pénible pour ADA.

Bourne Shell, Ksh etc ..

C'est incroyable ce que l'on peut faire avec ces machins !! mais à la fin ça finit toujours par être complètement tordu et bonjour les problèmes d'adaptation entre machines.

C++, Forth

Je déteste les langages qui vous obligent à réflechir à ce qui va se passer à la compilation puis à l'exécution. Je veux bien mettre les mains dans le cambouis mais uniquement quand j'ai besoin de toucher au moteur, pas tout le temps. Bref si j'accepte de lire un source C++, je m'abstiens bien de pondre la moindre ligne, quand à Forth ....Beuuuurk

Visual Basic et Java

Les deux souffrent, à mon goût, de la nécessité d'utiliser plein de bibliothèques/classes dont les interfaces ne sont pas toujours très logiques. Pour un programmeur occasionel, pas moyens de s'en sortir sans devoir passer son temps dans la documentation, et pour des résultats parfois euuuh.

J'utilise Visual Basic (VBA) mais jamais plus de 100 lignes. Java m'énerve il n'est jamais possible de faire quoique ce soit sans se palucher des appels absconts à des méthodes. L'objet pour l'objet c'est pénible. Mais j'aimerais signaler le projet "Gantt Project" comme quoi certain réussissent à en faire des choses utiles.

Quelques projets

PyTariste

Pytariste est un petit programme permettant de visualiser l'arboressence d'une machine et de choisir les fichiers à sauvegarder. Il a été conçu en dérivant des classes utilisées par l'IDE intégré de Python (idle). Je l'ai créé pour compenser l'absence de droit sur les outils de sauvegardes sur une position de travail Windows, il permet notamment de préparer une liste de fichiers à sauvegarder pour tar afin d'automatiser les sauvegardes. N'en n'ayant plus l'utilité je ne le maintiens plus.

J'en profite pour signaler l'outil de sauvegarde que je considère comme étant le meilleur (le seul à ma connaissance optimisé pour la restauration) TiNa ou TimeNavigator

Peut être un jour pytariste deviendra t'il un TiNa bisJe pense ne jamais en avoir le temps

cheval.pyparceque che vale dire à ma mère

Une ébauche de programme qui ne sera pas continuée. Sont but initial : automatiser; le dépôt de plainte contre les spamers.
Ce programme parcourt un fichier mailbox de thunderbird (qui est au format mbox s'il est compacté) et pour chaque message descend l'arbre des relais pour trouver l'origine du spam.
Pour les curieux

Pour prouver que je sais passer outre à mes répugnances ;)

Je suis en cours d'écriture d'un petit blogDe plus en plus complet quand même essentiellement en javascript avec un petite applet utilitaire Java

let me introduce you chtioblogue un projet de blog totalement "client-side" pouvant être héberger sur des services de pages persos les plus basiques. Pour l'instant il est développé et testé sous IE6 et Firefox

Dernières nouvelles chtiobogue est maintenant totalement opérationnel

D'autres à venir

Quelques regrets ?

je n'ai pas encore trouvé de GUI qui me satisfasse complètement. Je suis à la recherche d'un guibuilder permettant de construire L'Interface Homme Machine (IHM) et qui me déchargerait totalement de la gestion des événements. L'idéal serait d'avoir une structure en deux parties de l'aplication le moteur et l'IHM. J'imagines quelque chose qui fonctionnerait sur le modèle des langages acteurs, une sorte de FORM HTML bien amélioré

Pour faire une remarque à l'auteur ou lui signaler une faute d'orthographe

Valid XHTML 1.1!