Axioplase ıɥs∀ a écrit 3050 commentaires

  • # Synchrones

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 2.

    Je vois que personne n'a cité de langages synchrones comme Lustre ou Esterel.
    Ça aussi, c'est fun !

    (Ni intercal ou unlambda, mais c'est une autre histoire…)
  • [^] # Re: Mainstream || hype || marginal

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 2.

    J'ai bossé dans une boite qui faisait du Scheme (et du Erlang), et une qui faisait du Common Lisp… Il m'en reste donc 18 à tester, ça va :)
  • [^] # V

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 2.

    Oui oui, on est d'accord :)
    C'est juste que = n'est pas un opérateur d'égalité (ou d'assignation), mais de « matching » (ou d'assignation).
    Pour moi, un opérateur d'égalité rend une valeur vraie en cas d'égalité, et une valeur fausse en cas de différence. Comme je le faisais remarquer,

    X=3, % assigne
    Y=4, % assigne
    X=Y. % lance une exception

    montre bien qu' = n'est pas un test d'égalité.

    C'est un truc que je trouve laid, mais auquel on s'habitue vite, car ça a ses avantages pratiques quand on code.
  • [^] # Re: Erlang

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 2.

    >> Encore une fois, le comportement "variable existante = test d'égalité" de Erlang est parfois bien pratique (si on sait définir l'égalité).

    En fait, c'est du pattern matching plus qu'un test d'égalité.
    Ça retourne l'objet matché, et fait potentiellement des déclarations si des noms de variables non associés sont utilisés.
    [3=3,_=3,3==3,{Z,_}={42,3}].
    ==> [3,3,true,{42,3}]
    Z.
    ==> 42

    Si je fais
    1=2 j'obtiens
    ** exception error: no match of right hand side value 2
  • [^] # Re: Mainstream || hype || marginal

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 4.

    >> Je crois que c'est la principal question à se poser : pour quel usage le langage d'apprentissage doit-il être choisi ?

    Question inutile.
    Tu prends Scheme/Common Lisp, c'est fait pour tous les usages :)
    T'as du fonctionnel, de l'impératif, de l'objet, du concurrent (à la Erlang, avec Termite/Gambit-C), etc.
    Ça marche pour les calculs matheux (maxima), pour le jeu vidéo (abuse, farmageddon (sur iphone !)), pour comparer les prix les moins chers de vols en avion (itasoftware), pour animer la tête de Gollum dans Le seigneur des anneaux (Mirai), pour faire des serveurs webs ultra rapides (teeteepeedee), des WM (stump), etc.
  • [^] # Re: Différents langages

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 4.

    >> Lisaac c'est pour le type qui veut de la perf tout en utilisant des choses qu'il a l'habitude de faire en Ruby

    Tu réécris DLFP en Lisaac ?
  • [^] # Re: Erlang

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 2.

    Un truc de ce genre, ptet ?

    -module(toto).
    -export([main/0]).

    %% Retourne {false,3}
    foo() ->
      X = 3, % Assigne
      R = case {1,2} of
        {X,_} -> true; % teste si la première projection vaut 3. Vrai si oui,
        _ -> false % Faux si non.
      end,
      {R,X}.

    %% Retourne {true,1}
    bar() ->
      case {1,2} of
        {X,_} -> X = X; % teste si la valeur est une paire, si oui, lie X et 1, puis
                        % vérifie via pattern match si X = X est vrai.
        _ -> X = ohmygod % assigne ohmygod à X sinon
      end, %% Maintenant, X vaut 1, alors qu'on est sorti de la portée du CASE
      {true,X}.

    % Que retourne cette fonction?
    % quux() ->
    % X = 41,
    % X = 42.

    main() ->
      %io:format("~w, ~w, ~w~n",[foo(),bar(),quux()]).
      io:format("~w, ~w~n",[foo(),bar()]).
  • [^] # Re: LISP

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 6.

    >> Le problème, c'est que les parenthèses retirent l'ambiguïté au niveau du compilateur / interpréteur, mais qu'au niveau du programmeur humain la chose la plus visuelle est l'indentation.

    C'est pas un problème !
    C'est même un avantage certain !
    Vu que les parenthèses reflètent la structure du code, tu peux, de manière automatique et sans ambiguïté, recréer l'indentation, la bonne seule et unique qui correspond à l'intention du programmeur (s'il a écrit ce qu'il voulait écrire), et à celle de toute personne qui sait lire un programme.

    Donc, impossible de se tromper, vu que l'indentation *dépend* du parenthésage, et que le parenthésage est en bijection avec la structure intentionnelle du code.
  • [^] # Re: LISP

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 2.

    Techniquement, et avec un peu de pratique, même sur une seule ligne, tu t'en sors : les parenthèses retirent toute ambiguïté.
    Mais oui, je conçois que ma phrase était rentre-dedans.

    L'avantage, c'est que l'indentation qui découle du parenthésage et la structure du code sont interdépendants.
    Le coup classique du if test1 then if test2 then foo else bar relève alors plus de la faute grave que de la faute d'étourderie. Si ton langage est basé uniquement sur l'indentation, quelques espaces en plus ou en moins sur le else bar risquent d'avoir un effet pervers sur ton code… (nota : en CL ou Scheme, on utilisera (when test1 (if test2 foo bar)) ou (if test1 (when test2 foo) bar) pour rajouter une couche de clarté à ce que la commande d'indentation automatique de ton éditeur aura déjà exprimé pour toi.
  • [^] # Re: LISP

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.

    Ouais, enfin si tu programmes avec notepad, c'est *ta* faute.
    On code en Scheme/Lisp avec des éditeurs qui gardent/indiquent le balancement correct de parenthèses. Tu peux même avoir une coloration différente en fonction de la profondeur.

    Et d'ailleurs, les parenthèses font le même effet visuel que l'indentation, mais rendent impossible une erreur dans un programme à cause d'une indentation foireuse…
  • [^] # Re: Différents langages

    Posté par  (site web personnel) . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 2.

    >> De telles performances, et une telle expressivité, quel est le revers de la médaille ?

    Une syntaxe de merde, des erreurs cryptiques genre « machin has type int instead of type int » (Je sais plus comment, mais on pouvait créer des erreurs de même), l'absence de macros (j'ai pas touché à camlp4)…

    Cela dit, j'aime bien, hein. J'en ai fait pendant longtemps.
    Mais ces temps-ci, je trouve plus agréable de programmer en Haskell (pour son côté paresseux), Gambit-C Scheme ou Common Lisp (pour leur expressivité)…
  • [^] # Re: Techniquement possible

    Posté par  (site web personnel) . En réponse au journal Décentraliser Wikipédia. Évalué à 2.

    >> [1] : Avec accès ssh chrooté dessus […] pour voir si on peut avoir confiance en chaque serveur.

    T'as un troll de barbus récemment qui disait « si tu crois que chroot ça sert à la sécurité, t'es qu'un idiot. » Et donc, qu'on devrait pas avoir confiance comme tu le suggères.

    Le mieux ne serait-il pas le louer de l'espace virtuel chez Amazon ?
  • # Faut pas abuser

    Posté par  (site web personnel) . En réponse au journal Merci la sncf. Évalué à 9.

    >> vous avez les infos du vendredi (on est dimanche).

    on te file les infos 5 jours en avance, et tu te plains ?
  • [^] # Re: En tout cas ça a le mérite d'exister

    Posté par  (site web personnel) . En réponse au journal Diaspora mal conçu?. Évalué à 2.

    Précondition non garantie… il faudrait déjà que dieu existe, pour qu'on l'accuse à juste titre (ou le remercie) de ceci ou de cela.
  • [^] # Re: Des moufles, parce qu'il fait froid.

    Posté par  (site web personnel) . En réponse au message Quelle solution opensource pour creer un site d'enchere temps réelle ?. Évalué à 3.

    C'est comme des gants, mais on a le pouce séparé de tous les autres doigts qui sont groupés ensemble.

    (Sinon, cf. le commentaire ci-dessus)
  • [^] # Re: BOINC

    Posté par  (site web personnel) . En réponse au message Mon serveur s'ennui.... Évalué à 5.

    Je pertinente.
    SETI, Folding, toussa. Y a des gens utiles qui aimeraient bien avoir accès à ton CPU.

    Sinon, tu peux aussi compiler OOo, ou monter un distcc et proposer un accès aux devs d'un OS ou mainteneurs de paquets d'une distro qui sont prêts à grappiller un peu de puissance de calcul sur le net pour leurs compilations.
  • # Des moufles, parce qu'il fait froid.

    Posté par  (site web personnel) . En réponse au message Quelle solution opensource pour creer un site d'enchere temps réelle ?. Évalué à 3.

    >> Que me conseillez vous ?

    De bien faire attention aux « race conditions. »
  • [^] # Re: rrdtools

    Posté par  (site web personnel) . En réponse au message Compteur d'impulsions. Évalué à 3.

    > un peu trop compliqué par rapport à ce dont je cherche.

    « à ce dont j'ai besoin » ou « à ce que je cherche, » mais pas un mélange des deux.
    (désolé.)

    Mais sinon, un bon gros coup de `tcpdump | perl compte.pl`, ça va pas ?
    Chaque ligne de tcpdump est un paquet, puis tu peux filtrer pour chercher un header SMTP et donc compter les emails, filtrer les GET pour compter le nombre de page webs vues, etc.
  • # Titre de la dépêche et contenu incohérents.

    Posté par  (site web personnel) . En réponse à la dépêche Gestion (a)centralisée des avatars, alternatives à Gravatar.. Évalué à 3.

    Titre : Gestion centralisée des avatars, alternatives à Gravatar.
    Contenu : il existe des initiatives non centralisées pour diffuser son avatar. Ces solutions seront passées en revue dans la suite de la dépêche !

    Sinon, bon article.
    Pavatar me parait pas pire, je vais essayer ça.
  • [^] # Re: Skype...

    Posté par  (site web personnel) . En réponse au journal Pourquoi n'existe-il pas de Skype libre ?. Évalué à 3.

    >> Desole mais j'ai jamais vu personne creer un soft parce qu'il avait envie de faire de la concurrence,

    Euh, le jeu vidéo, c'est plutôt pas mal ça pourtant.
    Tu veux faire jouer la concurrence pour choper des parts de marché à autrui…
    Et beaucoup de logiciels sont conçus pour les mêmes raisons…
  • [^] # Re: Les chinois du FBI...

    Posté par  (site web personnel) . En réponse au journal Backdoor dans OpenBSD ?. Évalué à 2.

    > il faudra s'interroger sur le fait que ce soit resté présent dans le code depuis l'an 2000 sans que personne ne remarque quoi que ce soit.

    Parce qu'après avoir audité ton code (ou l'avoir fait audité par quelqu'un en qui tu as confiance), tu crois vraiment que tu vas recommencer un audit tous les ans à Noël ?

    Si tu ne détectes rien de louche après audit, ben, tu assumes que ça marche comme il faut…
  • [^] # Re: Ah cool du Tarot :)

    Posté par  (site web personnel) . En réponse au journal Boulot, métro, Tarot !. Évalué à 3.

    >> «ça me gonflerais».

    Ouch, tu peux le dire…
  • [^] # Re: C++ aété créépour augmenter le salaire des programmeurs

    Posté par  (site web personnel) . En réponse au journal C++ a été créé pour augmenter le salaire des programmeurs. Évalué à 9.

    C'est le langage préféré des bloat people.
  • [^] # Re: Erreur

    Posté par  (site web personnel) . En réponse au journal Quelques questions à propos de l'affaire wikileaks…. Évalué à 2.

    Déclaration universelle des droits de l'homme qui n'a apparemment aucune portée juridique et dont les clauses de présomption de l'innocence ne sont pas suivies par tous les pays d'Europe, si j'en crois wikitralalapédia.
  • [^] # Entrevue…

    Posté par  (site web personnel) . En réponse au journal Entrevue avec Richard Stallman !. Évalué à 4.

    On va-tu avoir des photos de RMS dénudé dans le prochain Entrevue ?