Version d'archive

  • Ce site est en lecture seule. Certains liens dynamiques peuvent ne pas fonctionner correctement.

Le blog de SpiceGuid

Lisibilité versus visibilité

Vaut-il mieux être lisible ou être visible ?

Tout en continuant de blogger sur developpez.com je trouve que blogger ici a également des avantages.

Il y a déjà presque un mois que j'ai mis en ligne Moonscript 0.5 , puis j'ai du arrêter par manque de visibilité.

Il me fallait l'intervention d'un logicien bien plus compétent que moi pour dire si ma fondation algorithmique était bonne pour bâtir un étage au dessus. Une logique intuitionniste qui fasse de Moonscript un langage de preuve afin que la fin devienne le moyen et que le moyen devienne la fin.

Aujourd'hui je viens de recevoir un email encourageant, un logicien va éventuellement étudier Moonscript 0.5. C'est là que ça devient vertigineux. Il va éventuellement accorder quelques minutes à mon travail, il va éventuellement me dire que je fais fausse route, ou bien il va éventuellement me donner une réponse polie (ce qui signifie: aucun intérêt), ou bien éventuellement il va s'abstenir de commentaires (car il reçoit trop régulièrement ce genre de sollicitations qui lui coûtent un temps précieux).

Dans tous les cas je vais descendre de mon piédestal. Les années passant je suis bien obligé de faire le bilan de ce que j'ai investi pour ce que je reçois en retour. Peut être que je reçois trop. Peut être que je ne m'investi pas assez. Ou peut être que je m'investi trop pour une mission dont justement personne ne m'a investi. Et donc qu'il est normal que je ne reçoive rien (ou le strict minimum) en retour.

Me voilà arrivé au tournant. Je suis encore jeune et je peux retourner à des préoccupations plus alimentaires. Mais ça va être difficile. Ou alors je peux tenter de forcer le destin. Et alors ça va être encore 10000 fois plus difficile. Au contraire j'avais toujours cru avoir des facilités. Alors est-ce que ça valait vraiment le coup si c'était pour en arriver à ce point là ?

La version 0.4 de Moonscript mon 'laboratoire d'idées'

La version 0.4 de Moonscript  mon 'laboratoire d'idées' pour langage de programmation est en ligne .

Pour les curieux, la nouvelle liste de mots clés :

Citation :

"
type construct destruct
case map fold recu cata para cata2 fold2 bicata bifold
else define let and in with change unused
&& or xnor and not mod
"

Avec cette version 0.4 il devient "envisageable" de spécifier des algorithmes pour les graphes.

Et cette fois il y a (presque) une vraie documentation en pdf .

Bien sûr il y a une myriade de choses que Moonscript ne peut pas (et ne pourra jamais) faire, mais pour ça il y a déjà des langages généralistes comme  et .

Redémarrage de la rubrique Univers³

Ça va, ça vient, et ça revient.

La mauvaise nouvelle (pour moi) c'est que mon projet Moonscript est au moins 1000 fois plus ambitieux que ce que j'imaginais au départ, et pourtant j'en ai de l'imagination Crash

Pour ceux qui veulent suivre les détails gores :

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

• j'ai implanté la quasi totalité des structures de données usuelles 'faciles' en respectant mes principes
• mais dès que je passe à des choses plus sophistiquées je me heurte à une démultiplication des difficultés

En gros j'ai trois obstacles principaux :

1. je n'arrive pas à trouver un catamorphisme qui tolère les arbres à rotations (AVL, Rouges-Noirs, Tas tournois)
2. j'ai déjà un peu joué avec les anamorphismes et les hylomorphismes et j'ai des idées pour réduire l'espace de recherche (par exemple les GADTs, Generalized Abstract Data Types), mais toute idée nouvelle est du travail en plus, du coup plus j'ai des idées plus je prends du retard
3. pour manipuler correctement certaines structures, notamment les graphes, il faut passer par des 'smart constructors', ça me complique encore la tâche

La bonne nouvelle (pour vous) c'est que dans l'impasse il ne me reste plus grand chose à faire que rédiger le Guide universel pour Univers³. Certes, il est encore loin d'être complet.
Mais je vous tiendrai au courant des mises à jour.

Le conservatisme est en marche, rien ne pourra l'arrêter

Ou comment les bonnes idées finissent à la poubelle.

C'était il y a longtemps, à l'époque où j'étais encore naïf. Par exemple je croyais que les plus grosses entreprises n'embauchaient que les meilleurs. Donc j'avais envoyé mon CV / lettre de motivation à Sun Microsystem Laboratories, tout en américain, écrit à la main.

Environ deux semaines après j'ai reçu une carte postale avec une photo de chien qui apporte le journal du jour.

Au dos était écrit (toujours en américain) "Nous avons bien reçu votre CV, nous vous recontacterons quand nous auront une place disponible en rapport avec vos talents".

J'avais fait la même chose pour l'IBM J. Watson Research Center, mais là je n'ai jamais reçu d'accusé de réception.

Et voilà qu'aujourd'hui Sun Microsystem Laboratories sort un document  avec des idées qui, si elles étaient menées jusqu'à leur conclusion ultime, devraient aboutir à quelque chose qui ressemble à mon projet Moonscript .

Pris d'un mélange de panique et d'excitation je vais faire un tour sur le site officiel .

sweat2 fausse alerte, ils ne sont finalement qu'une quinzaine d'experts à fabriquer des exemples de code moisis  à l'aide d'un langage pseudo-révolutionnaire qui n'innove que syntaxiquement. Afin d'éviter tout risque de contamination par de bonnes idées le tout fonctionne sur la Java Virtual Machine, un processeur virtuel totalement bridé dont le gros avantage est de ralentir les processeurs réels qui sont malheureusement de plus en plus rapides.

Et ils ne prennent pas n'importe qui dans leur équipe, il y a des critères, il faut respecter les quotas ethniques, lutter pour l'égalité des sexes, l'insertion des séniors, et contre la discrimination des obèses :

Conclusion

Naïf un jour, naïf toujours.

Petite pause pour la sous-rubrique Univers Cubique

La sous-rubrique Univers³ va cesser de progresser pendant un certain temps.

Ceci pour plusieurs raisons :

  • J'ai actuellement un projet qui réclame toute mon attention, je reprendrai la sous-rubrique Univers³ à l'heure de la pause détente, pour reprendre mon souffle avant le prochain marathon
  • Je n'ai pas changé d'objectif initial, qui est de vous rendre aussi autonomes que possible. Il n'est pas question de vous donner un catalogue de solutions toutes prêtes pour tous les puzzles existants, comme le font les autres sites traitant du même sujet.
  • Une rapide évaluation m'a montré que j'ai mal posé les bases, je dois changer d'orientation et faire un véritable récapitulatif de toutes les notions de bases dans un même article qui servira de référence (avec des ancres qui renvoient du mot à la définition / explication / illustration).
  • Comme c'est fait actuellement ces notions de base sont dispersées sur plusieurs articles, et / ou sont considérées comme évidentes (par exemple les pictogrammes et la notion d'inverse) au lieu d'être clairement explicitées. Du coup le matériel est là mais vous n'avez pas les moyens pour en faire la synthèse qui vous permettrait d'affronter seuls un puzzle difficile (car ils le sont tous, ça n'est qu'une question de degré).
  • C'est à moi de faire cette synthèse et de vous donner ces moyens. Ensuite ce sera à vous de trouver le courage et la patience pour les mettre en oeuvre si le coeur vous en dit.
  • Il y aura également, pour certains puzzles assez représentatifs, la description détaillée du raisonnement qui mène de comment-fichtre-faire-avec-ce-machin-bidule-truc  jusqu'à je-sais-comment-l'attaquer-par-devant-par-derrière-ou-par-les-côtés .

Tout ça fait pas mal de rédaction en perspective.
Au passage je vais perdre une certaine quantité de travail préparatif antérieur à ma décision d'améliorer l'accessibilité de ma rubrique. Néanmoins tout mon matériel ne sera pas perdu puisque j'ai dès à présent intégré certains schémas. Pour l'instant ces illustrations n'ont qu'une valeur esthétique, cependant elles prendront tout leur sens lorsque le moment sera venu.
Les fiches actuellement concernées par cette mise à jour sont :

Moonscript version 0.2

La version 0.2 de Moonscript , mon 'laboratoire d'idées' pour langage de programmation est en ligne .

Malheureusement à ce stade je suis encore très loin d'avoir réglé tous les problèmes, notamment :

  • la co-récursion n'est pas encore gérée (voir /Co-recursion)
  • les arbres avec des rotations (AVL, Rouges-Noirs, Arbres Tournoi) posent une difficulté encore non résolue
  • les récursions simultanées sur deux structures (la fusion de deux listes triées) posent une difficulté elle aussi non résolue
  • les fonctions complexes deviennent plus simples (ou du moins plus courtes) parce que la récursion est factorisée, mais les fonctions simples peuvent devenir plus longues et / ou plus obscures

Du coup la documentation est inexistante (pourquoi documenter ce qui va rapidement évoluer?).

Mais ça peut toujours vous donner une idée de la syntaxe des langages de programmation du futur.

En particulier, par rapport à un langage 'traditionnel', en Moonscript :

  • il n'y a pas de variables (cases mémoires qui changent de valeurs)
  • il n'y a pas de boucles, il n'y a pas d'assignations, il n'y a pas de classes / méthodes / objets / messages
  • il n'y a pas de pointeurs, il n'y a pas de valeur null
  • il n'y a pas d'exceptions
  • il y a des fonctions mais la récursion est interdite

Actuellement la liste des mots-clés du langage est :

type case else map fold recu cata para define let and in with change

© Copyright 2002-2024 Aeriesguard.com - Mentions légales
Aerie's Guard V 7.0
réalisé par Ertaï, designé par Ivaldir, illustré par Izual et Sophie Masure
Famfamfam