GTof a écrit 273 commentaires

  • [^] # Re: go 2.0

    Posté par  . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 3.

    Justement si, je travaille bel et bien dans l'industrie. Les principaux langages sont effectivement Java, C#, C++, JS etc mais deux points importants sont a noter. D'une part les langages comme OCaml, F#, Scala, Haskell ou Rust sont de plus en plus utilisés dans l'industrie, d'autre part les langages plus classiques s'en inspirent. Le C++ à fait de gros progrès ces dernières années en programmation fonctionnelle avec les fonctions anonymes, l'inférence de types, optional, etc. Java lui aussi s'est vu doté de fonctions anonymes. Et il me semble que C# 7 va accueillir les tuples, record et pattern-maching.

    Scala est aujourd'hui un langage très utilisé. Certes moins utilisé que Java, mais ce dernier étant l'un des langages les plus utilisé, ça ne veut pas dire que Scala l'est peu, bien au contraire. Je connais moins les sphères professionnelles OCaml/F#/Rust/Haskell mais je pourrais citer pour chacun des acteurs majeurs l'utilisant. Le cas d'Haskell est d'ailleurs très intéressant car Elm et Purescript qui en sont d'inspiration très claire, gagent en popularité sur le font-end.

    L'industrie n'est pas hostile à l'utilisation de langages et techniques avancées, bien au contraire, du moment que ces dernières lui apportent un bénéfice anticipable. Dans la pratique 3 choses entre en ligne de compte: les bénéfices (en terme de productivité, ressources humaines, en terme d'image, de qualité produit, etc), les coûts (en terme de formation, difficulté de recrutement, etc) et la pérénité de la solution (pour la durée de vie du produit). Si tu arrives a convaincre les décideur.euses sur ces 3 points, c'est souvent dans la poche.

    J'utilise les outils théorique que j'ai cité tous les jours dans mon code et cela ce passe très bien (pour le code en questions et les collègues). Evidemment il n'est pas question de faire de la science et encore moins "pour la science" mais simplement d'utiliser les outils adaptés quand c'est pertinent.

  • [^] # Re: go 2.0

    Posté par  . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 2.

    L'exemple microkernel vs monolytique n'est pas une bonne analogie. A ma connaissance, l'état de l'art sur les systèmes a micronoyaux n'a pas encore depassé celui des architectures monolithiques mis a part dans certains domaines très précis mais pas de manière générale. Alors que ca fait de nombreuses années que les concepts comme les generics, types somme, etc sont matures. Très rares sont aujourdh'ui les langages typés sans polymorphisme paramétrique.

    Opposer théorie et pratique n'a pas de sens. De plus en plus de programmeuses et programmeurs s'interessent a la théorie des types, a celle des catégories, aux systèmes de types affines (a la rust), etc. On ne compte plus le nombre d'articles de blog, de talk ou de livres sur les monades dans tel ou tel langage. On voit de plus en plus de talks d'introduction aux catégories dans des conférences de langages ou de livres a destination des programmeuses.eurs (cf celui de Bartosz Milewski), de nouveaux langages chechant a formaliser les effets ou verifier statiquement la justesse des allocations mémoires et accès concurents. Et bien sur aussi les langages a types dépendants qui gagnent en maturité.

    Tout ceci n'est pas un hasard, toutes ces avancés améliorent la productivité. Au rythme ou vont les choses, ils sera de moins en moins justifiable d'avoir des segfault par exemple. Certes ces nouveaux outils impliquent un cout non négligeable de formation, mais a choisir en entre cout de formation et cout en QA ou debugging, le choix sera vite fait. Payer des journées de dev pour coder ce qui pourrait se faire automatiquement avec des langages modernes ou a débugger des data race alors que le compilo pourrait en garantir l'absence a chaque build sera une position de plus en plus dur a justifier.

  • [^] # Re: Dans l'art voluptueuse de ne rien comprendre

    Posté par  . En réponse au journal EDSL et F-algèbres. Évalué à 2.

    bon, j'ai quand même un doctorat de physique et autres commodités (même si ça ne veut pas dire grand chose sur nos compétences, ça peut dire quelque chose sur la possibilité de compréhension)

    bon j'ai quand même un doctorat en informatique et autres commodités mais dès que des physiciens commencent à parler de relativité, mécanique quantique, etc je suis largué ;) Les facultés de compréhension n'y sont pour rien. Son article est en fait très bien écrit. Il n'est tout simplement pas un cours sur les domaines cités mais une invitation les découvrir.

  • [^] # Re: ouai

    Posté par  . En réponse au journal Données vs Code. Évalué à 2.

    Excellent article!! :)

    En réalité il y a un type fantôme avec lequel tu es déjà familier, c'est le void en C. On ne peut pas créer de valeurs de de type void par contre on peut créer des types dérivés, comme pointer to void

    Non. Ce que tu décris ici est un type qui n'est pas habité. Un type phantome c'est tout autre chose. Un type phantome est un paramètre qui est présent dans le type mais n'intervient pas dans sa définition. Par exemple:

    type 'a t = T of int
    Le paramètre 'a est ici un type phantome. Ce qui veut dire que les deux valeurs suivantes sont de type différents.

    let x : string T = T 5
    let y : bool T = T 5
    En revanche une expression

    type T
    Représente soit un type non habité (pas de valeur de ce type) si elle intervient dans une définition. Soit un type abtrait quand elle intervient dans une signature.

  • [^] # Re: Bonnes pratiques

    Posté par  . En réponse au journal Pourquoi vous ne devriez pas packager vous-même votre logiciel pour Debian ?. Évalué à 1.

    | Debian veut avant tout faire progresser le logiciel libre. Pour ça il faut que ses logiciels soient facilement modifiables.

    Certes mais l'avantage du libre c'est surtout de pouvoir modifier soit même. Si ces demandes/suggestions sont si importantes pour eux, ils sont libres de patcher le jeux. Surtout que l'ajout de dépendances, pour un jeu, est généralement une mauvaise chose. Quelques recherches rapides et non exhaustives m'informe que la dernière version (0.7.2) date de 2009. J'ai toujours quelques réticences à ajouter des dépendances non maintenues depuis 5 ans. Mais bon, il est vrai que pour debian, 2009, c'est maintenant.

  • # De la dureté des diamants ou l'importance de la spécification d'interfaces.

    Posté par  . En réponse au journal Marque page sur l'unification possible des systèmes Linux. Évalué à 6.

    L'approche a beau être très intéressante, et à le mérité d'apporter une réponse dans certains cas mais elle ne répond pas au véritable problème: avoir des API/ABI/Spécification durables. Même si l'idée est intéressante sur le papier elle abouti à une multiplication des runtimes. Mettons que j'ai une application qui cesse d'être maintenue, dois je garder un snapshot d'une distribution compatible? Que ce passe t'il si j'ai une vingtaine ou une cinquantaine d'application non maintenues? Dois je me retrouver avec autant de snapshots? On va finir par avoir sur chaque machine la collection complète de toutes les révisions d'une distribution majeure.

    Et même en le faisant cela n'empêcherait pas certaines incompatibilités. Mettons que sur ma machine, ma carte graphique requiert des drivers recents qui eux ont besoin de biblothèques récentes (libY.so). Mettons également que je souhaite faire tourner une application OpenGL vieille de 10 ans ne fonctionnant qu'avec une version précise (et ancienne) de cette même libY.so . Il n'est pas possible (tout au moins avec le chargeur dynamique GNU) de charger en mémoire deux versions d'une même bibliothèque avec même nom de fichier et même SONAME.

    Fournir une application avec ces dépendances est une bonne idée (d'ailleurs déjà largement exploitée) mais pour être rellement fonctionelle il faut pouvoir faire tourner l'application dans le même environnement que celui pour lequel elle a été conçue. Ceci inclus même les composant les plus fondamentaux de l'OS que sont la libc, X, … . Il n'y a donc pas d'autre choix que de faire tourner chaque (groupe d') application dans une machine virtuelle. Ca tombe bien, Linux est bon dans le domaine.

    Il n'en reste pas moins que même si la solution peut être viable, elle demande quand même une multiplication des runtimes. Se forcer a avoir des API/ABI durables est certes plus contraignant mais plus simple sur le long terme.

  • [^] # Re: Free paie pour son insolence

    Posté par  . En réponse au journal Orange attaque Free pour son offre de replay. Évalué à 3.

    Ce qui me surprends moi c'est le débit quand je suis connecté a une antenne Orange. Je suis peut être un cas isolé mais c'est totalement inutilisable. 90% du temps, pour n'importe quelle page aussi petite soit elle, la connexion de fini en timeout. Comble de l'inconfort, étant sous Android, je dois manuellement résélectionner une antenne Free quand il rebascule sur Orange. D'ailleurs si quelqu'un connaît une application pour basculer automatiquement sur une antenne Free quand une est dispo je suis preneur.

  • [^] # Re: définition ?

    Posté par  . En réponse à la dépêche MesaMatrix pour suivre les progrès de Mesa. Évalué à 1.

    Presque, mais pas du noyau. Si j'ai bien compris, ça fait référence aux drivers que la libGL charge pour l'infrastructure de rendu matériel Direct_rendering_infrastructure.

  • [^] # Re: Franchement...

    Posté par  . En réponse au journal [journal bookmark] gog va au linux. Évalué à 1.

    Après, sur leurs nouveaux titres, j'ai vu beaucoup de choses bien (en indie), mais l'absence de support Linux m'a plutôt fait acheter chez Humble{bundle,store}. Donc s'ils s'alignent à ce niveau, c'est tout bon, pour les vieux jeux comme pour les récents.

    Malheureusement les Humbles{store, weekly, …} vont de plus en plus vers les DRM. Il n'est pas rare que les jeux ne soient accessibles que par Steam (donc avec DRM) alors qu'une version sans DRM existe ailleurs. Si mes souvenirs sont bons c'était le cas de 'Book of the Unwritten Tales'. Au moins Gog semble être sincère sur le respect du DRM-free.

  • # Auteurs != Ayants droits

    Posté par  . En réponse au journal Pourquoi les jeux vidéos devraient entrer dans le domaine public. Évalué à 5.

    C'est quand même un comble ici de confondre auteurs et ayant droits. Je doute très sincèrement que les auteurs de jeux vidéos qui ne sont que salariés dans un studio touchent une rente sur leur création. Il arrive même que le studio n'ai pas les droits sur sa création. Pour reprendre l'exemple du médecin et de l'électricien, on peut imaginer qu'au lieu de vendre leur travail, ils en gardent la propriété mais le loue. Le cas reste différent du modèle économique des biens culturels mais on y retrouve la problématique de la rémunération illimité d'un travail. D'ailleurs on ne possède pas un jeu ou toute oeuvre culturelle à moins d'en posséder les droits. Sinon on ne détient qu'une licence d'utilisation!

  • # Vive la confiance

    Posté par  . En réponse au journal Le Golden rice et les bobos. Évalué à 10. Dernière modification le 10 juillet 2013 à 13:36.

    Espérer convaincre les gens en commençant par les insulter est vraiment déplacé. Le ton de l'article n'est pas vraiment propice au dialogue. Comment convaincre l'opinion avec des articles à access fermés, des brevets etc? Certes le brevet est détenu par une ONG mais au dire de l'article l'utilisation de ce brevet est gratuite … jusqu'à une production de 10000€. Chez moi on appelle cela un cheval de Troie. L'auteur lui même concède que le domaine est extrêmement complexe:

    | D’ailleurs en chimie organique non plus, c’est parce que les molécules du vivant sont compliquées. D’où les séries de réactions complexes à apprendre quand on étudie la chimie ou la biochimie, quelle horreur.

    Une grande partie du problème avec les OGM est bien là. La génétique est un domaine très complexe, jeune et encore peu maîtrisé. A l'heure actuelle personne ne peut vraiment avoir de certitude sur l'impact des OGM sur la santé ou le milieu. La science ne doit jamais agir avec précipitation, surtout lorsqu'il s'agit du vivant. Combien de scientifiques ou sujets sont morts parce qu'ils ne connaissaient pas encore les dangers de leurs découvertes?

    La science n'est qu'un outil et pas une réponse. De plus bien souvent le problème n'est pas technique mais humain ou politique. Clairement, dans le cas de la faim dans le monde, c'est un problème politique. Il y a actuellement assez de nourriture produite dans le monde pour tous. En revanche il y a un gros problème de répartition.

    Si la faim dans le monde te préoccupe, que le discourt bobo t'enerve et si ce n'est pas déjà fait, je t'invite à lire cette modeste page wikipedia Impact_environnemental_de_la_production_de_viande, surtout la partie "Bilan protéique".

  • [^] # Re: four.....

    Posté par  . En réponse au journal Une recette pour auto-héberger sa boulangerie. Évalué à 1.

    est-ce écologique ?

    Si l'utilisation d'un four est écologiquement trop pour toi, je te conseille vivement de renoncer à tout produit électronique.

  • # Aucun langage fonctionnel??

    Posté par  . En réponse à la dépêche Concours de programmation CodinGame le 28 mai 2013. Évalué à 2.

    Même si javascript peut être qualifié de langage fonctionnel, pourquoi ne pas inclure un langage parmi O'Caml, F#, Haskell, Scala, … ?

  • # Liberté == Chaos ??

    Posté par  . En réponse au journal Privateur.... Évalué à 6.

    Je sais bien que je grand jeu du qui a la plus grosse liberté est un sport national et que le trolldi tout est permis mais sincèrement, à quoi riment les sempiternels raisonnements pseudo-philosophiques à deux balles sur combien la GPL est l'incarnation de l'esclavage moderne?? La notion de liberté est un nid a contradiction et hors d'un contexte précis, elle n'a juste aucun sens.

    Les différentes versions de la GPL ont pour but de poser les règles d'un écosystème stable garantissant les droits d'utilisation, d'étude et de modification des œuvres qui le composent. Libre à chacun de le voir comme un espace de liberté pour les partisans du partage du savoir ou au contraire comme une entrave a la liberté d'accaparation et de contrôle des richesses collectives. L'absence de telles règles ne garanti en rien plus de libertés mais plus de choaos, ce qui n'a rien a voir. Je précise que formellement, le mot chaos n'a rien de péjoratif, je ne met aucune notion de valeur par dessus.

    Il n'existe à ma connaissance aucune loi obligeant un auteur ou ayant droit à placer son travail sous GPL. La GPL ne contraint donc pas plus les développeurs. A titre personnel, j'utilise la GPL dans la plupart de mes réalisations car justement je veux priver toute personne de la liberté de priver d'autres personnes des 4 libertés.

  • [^] # Re: Humble Bundle

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 7.

    Un bon paquet de portage ont été fait pour ces occasions en fait. Et il me semble qu'une vaste majorité de ceux ci ont été réalisés par Ryan Gordon. Ce qui au final n'est pas très rassurant. L'idéal serait que le multi-plateforme soit dans le cahier des charges initial. Or j'ai bien l'impression que les équipes de conception de jeux non-libres (les jeux libres ont toujours étés exemplaires sur le multi-plateforme) développent toujours en majorité en mono-plateforme.

    Pour les projets Kickstrater, les objectifs de développements sur Linux ont ils une quelconque valeur contractuelle? J'ai vu bon nombre de jeux annoncer un portage "soon" sur Linux qu'on attend toujours des années après la sortie sous Windows. Bref je me méfie des équipes promettant une version Linux native quand le développement n'est pas depuis le début multi-plateforme.

  • [^] # Re: Pas convaincu

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 5.

    rester sur le web et étendre javascript (ou utiliser un langage) avec des primitives faites pour les jeux (RAII, opérations sur des vecteurs ou des matrices, définition de structures "à la C", gestion de la mémoire manuelle…).

    D'après la spec d'asm.js, j'ai clairement l'impression que c'est le but recherché. Mais au lieu d'introduire un nouveau langage incompatible avec l'existant en espérant que tout le monde se mettent dessus, ils ont étés malins en créant un langage dédié au cœur même de javascript. Je ne serais pas surpris que d'ici quelques mois le couple emscripten+asm.js supporte les opérations vectorielles. Quant aux structures à la C ou a une gestion semi-manuelle de la mémoire, rien ne les empêche d'introduire dans la spec quelques contraintes pour simplifier l'analyse de flot de donnée pour optimiser la création/destruction d'objets.

    De manière générale, vu qu'ils voient javascript comme un langage cible et non un langage source, ils peuvent contraindre autant que nécessaire la forme des programmes valides en asm.js tant qu'emscripten est capable de générer du code correspondant.

  • [^] # Re: Terminal principal ?

    Posté par  . En réponse à la dépêche Guake perd son dernier développeur - appel à un repreneur. Évalué à 2.

    Depuis que j'ai découvert yakuake et équivalents, je ne jure que par eux. Je passe mon temps à switcher entre une fenêtre et un terminal. C'est important que je puisse accéder à un terminal et le révoquer en une seule touche. De plus yakuake est toujours à la même place, ça repose mes yeux. Alors qu'un terminal fenêtré, pour faire du va et viens, c'est pas aussi pratique.

  • # Déjà vu

    Posté par  . En réponse à la dépêche Mir, un serveur d’affichage de trop ?. Évalué à 4.

    Vouloir mettre en orbite leur projet en critiquant de manière erronée des devs expérimentés … Voila un projet qui va tomber de haut …

  • # KikooLOL Killer?

    Posté par  . En réponse au journal CapsKiller : Cachez ces majuscules que je ne saurai voir !. Évalué à 4.

    Excellent! Ce serait possible d'ajouter une passe de correction orthographique et grammaticale ainsi que le remplacement des expressions du type "LOL" et consoeurs par des phrases comme "Cela me fait beaucoup rire."?

  • [^] # Re: concrete

    Posté par  . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    Et puis le côté ludique motivera sans doute plus les élèves que "on va programmer un émulateur d'une machine qui n'existe pas et afficher du texte".

    Comment ca du texte n'est pas ludique? Et NetHack alors? ;)

  • [^] # Re: MMIX ?

    Posté par  . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 1.

    Tout à fait d'accord! Quand je parlais d'Haskell et Scala, je ne pensais pas au fonctionnel en général mais aux particularités de ces deux là, même parmi les langages fonctionnels. Coté Haskell, un langage pure et non-strict c'est peut être pas le plus simple comme introduction à la programmation (même si j'adore ce langage et que programmer avec des catégories est devenue une seconde nature). Coté Scala, rien que le fait que le code d'initialisation soit mélangé avec les attributs et méthodes, c'est pratique à l'usage, mais au début ca surprends quand même. Sans parler de la richesse de leur système de types qui rend la lecture de leurs API un peu cryptique pour le non initié.

    Heureusement il y a des langages fonctionnels plus accessibles. Enseigner la programmation sur un ML me parait en revanche une bon compromis entre simplicité et ouverture vers le reste.

  • [^] # Re: MMIX ?

    Posté par  . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Qui peut le plus peut le moins certes … mais pas toujours facilement. Le but est qu'ils puissent comprendre la machine et écrire des programmes rapidement, sans avoir à introduire de MMU, gestion des interruption ou dépassements au premier cours. C'est aussi pour cela qu'on préfère commencer par leur apprendre des langages plus accessibles (Haskell ou Scala en première année ca pourrait être fun ;) ) et introduire les difficultés une à une.

  • [^] # Re: Prof qui répond

    Posté par  . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 1.

    Le manque de support pour les flottant et l'absence de cache est rédhibitoire pour une architecture moderne mais dans le cadre d'une introduction à l'assembleur, ca se tient. Cela dit, je suis d'accord que l'architecture bêta est très insuffisante pour apprendre à maîtriser les architectures modernes. Je pense que les deux approches sont complémentaire. Bêta fournit une bonne introduction qui peut servir de base à un cours plus avancé.

  • [^] # Re: concrete

    Posté par  . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 1.

    Voila une idée qu'elle est bonne! Grâce à Doppio ou BicaVM, la machine virtuelle tournerait dans le navigateur et serait enfin Web 3.0 ready (parce que les applets java, non seulement c'est has been mais de moins en moins supportés (failles tout ça)).

  • [^] # Re: concrete

    Posté par  . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    J'y ai pensé mais trouver un compromis entre simplicité et suffisamment de ressources n'est pas si simple. Vu qu'ils ne sont qu'en deuxième année dans un cursus pas entièrement info, il me faut éviter toute complication. D'un coté il faut suffisamment de mémoire pour qu'ils n'aient pas à optimiser leur code. D'un autre, leur expliquer la programmation des sprites, des différents layers, etc prendrait trop de temps. Il faut aussi des outils multi-plateformes, idéalement installables en un clic. Ca limite quelque peu le choix.

    C'est pourquoi je suis parti sur un brave framebuffer en mode texte. Ca fait fait le boulot tout en restant très simple.