ZankFrappa a écrit 139 commentaires

  • # Encore une comparaison avec une autre technologie (Erlang)

    Posté par  . En réponse à la dépêche Opa, un nouveau langage pour le développement d’applications Web. Évalué à 8.

    Bonjour

    Je suis assez impressionné, autant par l'ambition que vous affichez (une toute nouvelle plate-forme avec à la fois son langage de développement (qui est plutôt différent de ce que l'on trouve dans la nature), son serveur web, sa base de données…) que par les exemples disponibles sur votre site. J'ai déjà entendu parler du projet il y a plusieurs mois mais je n'ai jamais pris le temps de tester quoi que ce soit. J'espère que je ne serai pas déçu. ;)

    J'ai une légère expérience du développement avec la technologie Erlang (un langage fonctionnel dynamique, orienté concurrence et distribution, qui tourne sur sa propre VM et affiche de bonnes performances dans l'utilisation côté serveur). Récemment, cette technologie a connu un certain succès, et les gens se sont mis à l'utiliser pour un peu tout et n'importe quoi (que ça soit légitime, comme des serveurs web ou des bases de données (CouchDB), ou pas trop, comme pour des frameworks web (Nitrogen)).

    La première fois que j'ai entendu parler d'Opa, je me suis dit qu'il semblait être en concurrence (haha) directe avec Erlang, même si apparemment personne n'a fait de rapprochement pour l'instant. En effet, avec la plateforme OTP intégrée à Erlang, il est assez facile de produire des applications embarquant à la fois une base de données (comme Mnesia, qui est intégrée à la bibliothèque standard et qui tourne plutôt bien, ou d'autres bases plus traditionnelles), un serveur web (là ils sont légion : Inet, Yaws, Mochiweb… certains ont même de très bonnes performances), et un framework web (comme Nitrogen ou Chicago Boss — je connais à peine le premier, en réalité. Je trouve ses idées intéressantes mais il manque un peu de maturité à mon avis). De plus, le mécanisme de nœuds intégré au langage facilite la conception d'applications réparties (c'est transparent, du moins pour le développeur, de communiquer avec des processus légers situés sur un autre serveur).

    Comment comparez-vous votre technologie à celle-ci ? Je pose cette question pour savoir si vous connaissiez déjà un peu Erlang (sans doute au moins de nom), et pour avoir votre opinion sur les deux univers. Je ne remets absolument pas en question votre travail : il y a bien assez de place pour les deux technologies, qui ne se disputent clairement pas un marché de niche. Mais je pense que c'est une interrogation légitime, car même si le développement web en Erlang est une idée encore assez jeune (et pas forcément des plus intéressantes), tout ce qui concerne le backend me semble en revanche plutôt fiable. Qu'en est-il pour Opa ?

  • [^] # Re: Et si ça marche ?

    Posté par  . En réponse au journal Apple est une boutique de mode. Évalué à 10.

    Non. C'est déprimant.

  • # Évidence

    Posté par  . En réponse au journal Mais pourquoi le projet GNU fait-il tout pour priver le monde de liberté ?. Évalué à 10.

    Sans avoir lu l'article, ça me paraît évident. Je pense que tu trolles, mais j'explicite quand même : on peut avoir besoin de « services » comme ce que propose Savannah (par exemple au sein d'une entreprise, ou bien au contraire sans avoir envie de prendre un hébergement personnel), sans pour autant avoir envie de dépendre trop de ce service. Ce qui compte, c'est que si la politique de Savannah.gnu.org ne te plaît pas, tu ne perds, en t'en allant, rien d'autre que leur hébergement (tu peux même récupérer leur logiciel et tout refaire à la maison).

    C'est quand même pas compliqué.

  • [^] # Re: prévisible

    Posté par  . En réponse au journal Nokia choisit Windows Phone 7. Évalué à 5.

    C'est gentil d'avoir ajouté des sources.
  • # Partage

    Posté par  . En réponse au message Que faire de 380 Go de swap ?. Évalué à 5.

    Partage-le : P2P, Freenet, dépôt d'un autre truc qui nécessite de la place…
  • [^] # Re: 3 type de langage a connaitre:

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

    Non, tu n'as pas compris. Dans un langage fonctionnel, je peux générer autant de composées que je veux (par exemple), de façon arbitraire et dynamique. Ça ne me semble pas possible en C (en tout cas ça fait deux fois que je dis que j'aimerais bien qu'on me prouve le contraire).

    Pense à l'itérée d'une fonction par exemple.
  • [^] # Re: Jabber HS hier soir

    Posté par  . En réponse au journal Skype HS hier soir. Évalué à 3.

    Je pense qu'il plaisantait. Joyeux Noël à vous tous.
  • [^] # Centralisation

    Posté par  . En réponse au journal Skype HS hier soir. Évalué à 10.

    Saimal.fr aussi était un service centralisé. On voit où ça a mené…
  • [^] # Re: Perl 6

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

    http://learnyouahaskell.com/ - ne mord pas, respecte la sensibilité de la peau, même des plus sèches. Vu à la télé.
  • [^] # Re: Perl 6

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

    J'ai écrit récemment une dépêche relativement complète sur Perl 6, et moi aussi j'avais des étoiles dans les yeux en découvrant le langage (dans lequel j'ai du m'immerger un peu de force pour essayer d'être pertinent). Au final, j'étais content parce que Perl 6 empruntait des choses à des langages que j'aimais bien, notamment Haskell.

    Ça fait quelques mois maintenant que je n'ai pas lu de Perl 6, et si je me souviens bien de l'opérateur * servant à plein de choses différentes, j'ai un peu perdu les réflexes que j'avais acquis. Notamment, comprendre la définition de la liste Fibonacci ne me semble pas évident (je veux dire, comprendre pourquoi ça marche). En Haskell, en revanche, avec plus de mots et moins de symboles, ça donne

    > let fibo = 0 : 1 : zipWith (+) fibo (tail fibo)
    > takeWhile (< 10000) fibo
    [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765]
    > fibo !! 30
    832040


    Et si j'ai des doutes sur le comportement d'une fonction (par exemple que je ne connais pas zipWith), son type m'aide bien souvent à deviner ce qu'elle fait :

    > :t takeWhile
    takeWhile :: (a -> Bool) -> [a] -> [a]
    > :t zipWith
    zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
  • [^] # Re: Aux conquérants de l’inutile!

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

    Je trouve d’autre part que cette tendance lourde chez les étudiants informaticiens de se passionner pour tel ou tel nouveau langage d’ailleurs plutôt infantile et pas forcément utile pour leur avenir professionnel.

    Fort heureusement tout le monde ne se destine pas à l'industrie. D'autres embrassent pleinement cette citation du SICP, "It's extraordinarily important that we in computer science keep fun in computing."
  • [^] # Re: Ton alarmiste

    Posté par  . En réponse au journal Il fallait s'y attendre.. Évalué à 0.

    Certes, mais on peut quand même se demander si un nouveau runtime (et plusieurs nouveaux langages) étai(en)t nécessaire(s), là où d'autres cherchent plutôt à réutiliser ce qui existe déjà (la JVM).

    D'autre part, on n'est pas sur AppleFR ici, je le sais bien. C# est également vraisemblablement plus agréable à utiliser que Java, et mieux conçu. Cependant, ça n'est pas une grosse révolution, donc je ne vois pas ce qui justifie qu'on s'embarrasse d'un nouveau venu.

    Il y a beaucoup de choix qui ne sont en définitive que politiques du côté des pro-Mono comme du côté des anti-.
  • [^] # Re: Ton alarmiste

    Posté par  . En réponse au journal Il fallait s'y attendre.. Évalué à 4.

    > Sur le desktop, je penses que tout le monde s'en tape de 70Mo

    Mono a l'air de vouloir devenir le nouveau Java. Tu n'es pas sans savoir que certains systèmes préhistoriques comme Mac OS X n'ont toujours pas de gestionnaire de paquets. Ça risque de peser son poids…

    Comme à chaque journal qui parle de Mono, je me contente de rappeler que ça ne fait qu'ajouter un nouveau runtime (qui commence à être de bonne qualité il faut le reconnaître, même si ça n'a pas toujours été le cas) dont on aurait pu se passer avec un peu de jugeote.
  • # Osera, osera pas

    Posté par  . En réponse au journal Recherche auteurs pour un nouveau magazine libre autour du développement logiciel. Évalué à 2.

    J'aime bien écrire, et je suis pas trop incompétent dans certains domaines, donc ça serait une initiative cool. Le problème c'est que j'ai du mal à me rendre compte du format à adopter pour un article de journal, difficile donc de savoir si je me lancerai ou pas.

    Tu peux donner un exemple de ce que tu t'attends à recevoir (nombre de mots, format…) ?
  • # Ton alarmiste

    Posté par  . En réponse au journal Il fallait s'y attendre.. Évalué à 5.

    L'article (de OSNews) ne dit pas que la sphère Mono va exploser d'ici quelques jours. De toute façon Microsoft n'a pas d'intérêt à faire ça. Il souligne juste le fait que le Community Promise n'était pas suffisant (et ça on le savait déjà puisque, à sa sortie, certaines des applications Mono phares parlaient déjà de Moonlight).

    Par contre, ces applications Mono dépendent toujours d'un runtime de plus de 70 Mo compressé, sans compter les bibliothèques tierces. C'est chianf.
  • [^] # Re: Voyons donc maintenant

    Posté par  . En réponse au journal Apache vs Oracle. Évalué à 2.

    Rien n'est irremplaçable, donc non, je n'ai pas d'exemple.
  • [^] # Re: Voyons donc maintenant

    Posté par  . En réponse au journal Apache vs Oracle. Évalué à 2.

    La différence quand même, c'est le nombre d'applications dont on va manquer si on abandonne totalement Java.
  • # Légitimité ? Parlons-en.

    Posté par  . En réponse au journal Wikileaks et OVH : ce qui devait arriver arriva.... Évalué à 10.

    Étant donné qu'il est censé représenter le peuple et non jouer le jeu des puissants, le gouvernement actuel et en particulier Eric Besson n'a aucune légitimité pour s'exprimer devant un micro ou une caméra.

    On peut reparler du nouveau DLFP ou de tarte aux pommes maintenant s'il vous plaît ?
  • [^] # Re: typage mou

    Posté par  . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 10.

    OCaml est un langage multi-paradigmes : tu disposes de constructions impératives (boucles, références) en plus de tes constructions fonctionnelles (les fonctions sont des valeurs manipulables comme les autres (1)). Ajoute à ça un typage statique fort qui possède de charmantes propriétés (comme la reconstructibilité : de toute expression tu peux déduire le type, tu n'es pas obligé de l'annoter - pas de déclarations chiantes comme en C ou autres). OCaml comporte également une couche objet qui pourrait être intéressante si les gens avaient l'habitude de l'utiliser (mais j'ai pas le sentiment que ça soit dans les mœurs).

    Haskell, lui, est « purement » fonctionnel : il ne dispose pas de constructions impératives. Il est également « paresseux » : les expressions ne sont calculées que quand c'est nécessaire. C'est le contraire des langages dits « stricts » (comme OCaml, mais aussi C, Java, Python… quasiment tout le monde en fait). Ça n'est pas à proprement parler une optimisation, parce que même si dans l'idéal ça évite de faire des calculs inutiles, en pratique ça demande davantage de tests, et ça peut rendre imprévisible le comportement du programme (notamment sa consommation mémoire). C'est une façon différente de programmer : ça t'autorise à flirter agréablement avec l'infini, en n'évaluant que ce qui est nécessaire.

    Haskell dispose également de ce qu'on appelle des « typeclasses » : ils permettent une surcharge intelligente des opérateurs et des fonctions sur plusieurs types. OCaml n'en dispose pas, et ne peut par exemple pas utiliser le même opérateur d'addition pour les entiers et les flottants : l'opérateur (+) a le type int -> int -> int et l'opérateur (+.) a le type float -> float -> float. Ça a l'air chiant, en pratique ça passe dans ce cas précis. Dans d'autres cas ça peut être un peu irritant. Haskell lui est plus évolué : l'unique opérateur (+) a pour type (Num a) => a -> a -> a . Le a est à lire comme un paramètre de type : ainsi, ce type veut dire « si A est une instance de la classe Num, alors si b et c sont des valeurs de type A, b + c est de type A ». Note bien que ce sont des *types* qui sont des instances de *classes*, pas des valeurs.

    D'autre part, certains problèmes sont naturellement impératifs : communiquer avec l'extérieur par exemple. Ceci se fait sans problème en séquençant des instructions Caml - par contre pour Haskell c'est plus difficile. Depuis un bon bout de temps maintenant, la seule façon conseillée de faire des entrées sorties dans ce langage est d'utiliser une construction élaborée appelée « monades ». C'est un mot qui fait peur aux débutants alors qu'il n'est pas très compliqué, mais ça ne s'explique pas en un paragraphe non plus. Les monades sont un concept provenant d'une branche très élaborée des mathématiques, appelée « théorie des catégories ». En gros, elles servent à séquencer des calculs - mais pas nécessairement de façon déterministe, c'est un concept plus général. Elles ne servent pas non plus uniquement à faire des entrées-sorties ou à simuler la programmation impérative. Et surtout, elles ne sont pas réservées à Haskell, il y a de nombreux langages modernes qui peuvent disposer de monades (OCaml ou C# par exemple).

    Voilà.

    (1) : au cas où tu ne connaîtrais vraiment pas les langages fonctionnels : si tu as déjà utilisé des langages impératifs, tu as certainement déjà manipulé des fonctions via des constructions comme les pointeurs de fonctions ou autres, et tu pourrais te dire donc que n'importe quel langage peut faire ça. En réalité, dans la famille des « fonctionnels » on regroupe les langages qui permettent de manipuler, et notamment de construire, des valeurs fonctionnelles. Par exemple, tu peux facilement définir un opérateur de composition de fonctions en Caml ou en Haskell. En C avec des pointeurs de fonctions, je ne vois pas vraiment comment faire.
  • [^] # Re: Supinfo ?

    Posté par  . En réponse à la dépêche Conférence sur Git à Grenoble (38). Évalué à 2.

    Comprendre pourquoi une conférence a lieu à un endroit où on trouve une seule école d'info alors qu'elle pourrait être plus facilement accessible pour quatre fois plus d'intéressés potentiels.
  • [^] # Re: Supinfo ?

    Posté par  . En réponse à la dépêche Conférence sur Git à Grenoble (38). Évalué à 1.

    Alors au temps pour moi.
  • [^] # Re: si sony etait consistant cela se saurait

    Posté par  . En réponse au journal Sony décide d'utiliser GNUstep pour… on ne sait pas trop quoi.. Évalué à 2.

    J'ai le raisonnement inverse : si ça peut attirer du monde vers GNUstep, ne serait-ce que provisoirement, c'est bon à prendre. Mais je reconnais volontiers que mon avis est biaisé.
  • # Supinfo ?

    Posté par  . En réponse à la dépêche Conférence sur Git à Grenoble (38). Évalué à 1.

    Pourquoi Supinfo, et pas le campus de l'UJF (où on trouve notamment l'ENSIMAG, Polytech pas trop trop loin, la fac d'info etc.) à Saint-Martin-D'Hères ?
  • [^] # Re: Certains actifs de propriétés intellectuelles cédés...

    Posté par  . En réponse au journal Attachmate sur le point d'acquérir Novell. Évalué à 2.

    …dit-il.
  • [^] # Re: Certains actifs de propriétés intellectuelles cédés...

    Posté par  . En réponse au journal Attachmate sur le point d'acquérir Novell. Évalué à 2.

    Mais comment diable faisions-nous pour vivre avant, quand tout ceci n'existait pas…