• # Hors sujet mais pas tant que ça

    Posté par . En réponse à la dépêche 10 ans d'OpenStep. Évalué à 10.

    J'ai l'impression qu'on a deux types de commentaires:
    1. OpenStep, c'est bien mangez-en, vous coderez plus vite, mieux tout ça;
    2. Connais pas mais si c'était mieux, ça se saurait.

    Je ne connais pas OpenStep mais le second type d'argument m'ennerve.

    Il y a maintenant 8 ans, on m'a fait découvrir ocaml.
    J'ai assez vite trouvé que c'était pas mal: un langage qui compile en natif mais
    qui tourne aussi sur une machine virtuelle, c'est bien,ça permet de ne pas
    toujours recompiler. En plus, à l'époque, le code compilé tournait peut-être
    2 fois plus vite que la version natif. Ce langage était (et est toujours) développé
    à l'INRIA par une petite équipe de bourrins.
    À la même époque, on commençait à entredre parler de java: la révolution,
    on a inventé les machines virtuelles, vous pourrez ne compiler qu'une seule
    fois et ça tournera partout. Moi, ça me faisait rire. Surtout que j'ai eu à coder
    en java à cette époque, sur la jvm de SUN (j'étais sur solaris). La révolution
    java, je la trouvai risible. Mais les marcketeux de chez SUN étaient bons et
    SUN avait assez de sous pour que tout le monde crois que java était génial.
    Je ne dis pas que ce langage n'apportait rien mais il était déjà très en retard
    sur beaucoup de points par rapport à certains langages académiques. Vous
    allez dire que je lance un FUD et que dans cette enfilade de messages, on en
    tient un et c'est suffisant. Ce que je voudrai dire, c'est que les personnes
    à qui je parlais d'ocaml me disaient toutes que si ocaml, c'était bien, ça se
    saurait, que les gens l'utiliseraient etc...
    Quelques années plus tard, à la fac, j'ai eu un projet « compilation ». Le
    langage était imposé: ocaml. Il y a eu des haut cris: ocaml, c'est de la
    merde... La prof à tenu bon. En trois mois, toute la promo a appris un
    nouveau langage et a écrit un compilateur pour un sous-langage de
    smalltalk. Et toute la promo était fan d'ocaml. Cette même année, un prof
    a tenu à ce qu'on fasse un projet en C++. Le premier jour, je lui ai dit que
    C++ n'était pas adapté à ce qu'il voulait faire et qu'ocaml serait mieux.
    Il a tenu bon. Trois mois plus tard, aucun projet ne fonctionnait et en deux
    heures, je lui ai codé son truc en ocaml. Il m'a répondu que peut-être mon
    truc fonctionnait mais c'était forcément lent. On a fait la course. Mon truc
    codé en 2 heures en ocaml allait plus vite que le sien codé en C++.

    Dites les gens, le problème de beaucoup de projets est que c'est chaint
    de réfléchir. On veut pondre un truc vite. Alors on ne prend pas le temps
    de réfléchir, on fonce tête baissée et on sort une première version. Et puis
    on se rend compte que c'est largement sous-optimal alors on modifie la
    spécif et on sort une seconde version, puis une troisième...
    En 96, quand je codais en java, le compilo me sortait déjà qu'un certain
    nombre de chose que je faisais étaient « deprecated ». Ils avaient du
    réflichir longtemps avant de les définir pour que si peu de temps après, ce
    soit déjà deprecated.

    Alors, je me répète, je ne connais pas OpenStep mais
    1. Si les spécifs d'OpenStep n'ont pas changée en 10 ans et qu'elles
    permettent de faire des trucs (cf. cocoa), je trouve que ce point seul
    justifie qu'on s'y intéresse;
    2. Affirmer que si c'était bien, ça se saurait et que de toute façon,
    C++, qt, gtk ou n'importe quoi d'autre, c'est fondamentalement mieux,
    c'est d'une connerie et d'une étroitesse d'esprit affolante.

    Frédéric

    P.S. Le fait que je n'ai lu aucun vrai argument contre OpenStep et le
    fait que la spécif reste d'actualité me font penser qu'OpenStep, c'est
    bien mangez-en.