Ben en fait, en ce qui me concerne, la grand messe de la compil a lieu tous les ans au workshop LCPC. Cette année y'avait un tutoriel sur l'allocation de registres en utilisant SSA.
Maintenant, je veux bien qu'un mec de l'INRIA réponde s'il connaît la réponse (j'en fais pas partie, donc je sais pas...).
Pour ce qui est de CDuce, autant j'aime beaucoup les concepts qui se trouvent derrière (sous-typage sémantique, tout ça), autant la syntaxe est franchement imbitable à mon sens. Je pense que c'est à ce genre de langages que pensent les gens qui parlent de « langages faits par et pour des universitaires ».
« Contrairement aux autres commentaires, je trouve qu'il est très complexe d'attirer quelques personnes de plus qui connaissent bien les compilateurs pour faire avancer un projet qui n'est pas le leur. »
Je suis tout à fait d'accord. Le domaine de la compilation est l'un des domaines les plus complexes de l'informatique, entre autres parce qu'il mélange aspects très théoriques (théorie des langage, sûreté des types, transformations de programme, etc.) et très pratiques (génération de code).
Et donc tous les apprentis-juristes d'ASSAS, bien connus pour leurs idées égalitaires et humanistes, auraient le droit de voter, et pas les masses laborieuses.
Y'a des gens nauséabonds pour qui finalement c'est comme pour la pornographie : on ne sait pas décrire exactement ce que c'est, mais on sait quand c'en est. Du coup il suffit de voter pour l'autre.
« Je ne demande pas à l'autre d'être pointilleux, je précise que l'adjectif pédophile n'est pas applicable pour des choses. Il l'est pour des êtres humains (là, on sombre dans les joies des différentes législations et coutumes en ce qui concerne l'interprétation de ce qu'est la majorité sexuelle, la tolérance sexuelle, la morale..). »
Hum, non, le relativisme est très très limité dans ce cas précis. Quand on parle de pédophilie, la partie victime de pédophilie (l'enfant, donc) est nécessairement prépubère. Sinon il s'agit de viol, de ce que tu veux, mais pas de pédophilie. Par exemple, un garçon ou une fille de 13 ans qui aurait des relations sexuelles avec un adulte (consentis ou non, ce n'est pas le problème) serait victime d'un viol, mais certainement pas de pédophilie.
Jusqu'à présent, tu disais plein de trucs intéressants, qui faisaient que je pertinentais à tout va, et puis là, boum, catastrophe :
« À part ça - le monde est plein à craquer de langages universitaires, par des universitaires, pour des universitaires. Qui sont dans leur tour d'ivoire, confortablement installés sur leur modèle théorique qui est d'une élégance qu'ils sont les seuls à pouvoir apprécier.
Et puis il y a ceux qui essaient de faire des choses utiles. »
Certes, juste derrière tu dis que « ah mais non, le formalisme c'est bien aussi hein » (oui bon, je simplifie), mais cette phrase, là, elle n'a pas lieu d'être. Parce que tu vois, LISP, OCaml, tous ces langages plus ou moins multi-paradigmes, plus ou moins fonctionnels, le lambda-calcul, toutes ces conneries inutiles inventées par des universitaires, tout le monde en bouffe plus ou moins tout le temps sans le voir. Genre Java, c'est rempli de machins pour la sûreté des types [1]) ; C# intègre de plus en plus de constructions directement empruntées aux langages fonctionnels; C++ veut intégrer les lambda-fonctions, etc.
Et tout le monde, à un moment donné (dans l'industrie, celle qui « fait des vrais choses » bien sûr) a qualifié ces langages de « pas utilisables par le commun des mortels », etc.
Parce que des langages faits « par et pour des universitaires », crois-moi, j'en ai connus quelques uns, mais -- oh surprise ! -- lesdits universitaires le savent. Dingue non ? En fait, très souvent, un universitaire crée un langage non pas parce que ça le fait kiffer à mort (il est spécialiste en langages, du coup fabriquer une grammaire et utiliser lex/yacc ou LISP ou OCaml pour fabriquer une nouvelle syntaxe, il sait faire sans trop se forcer).
Non, il fait ça pour donner une preuve de concept [2].
« C'est juste que pour réaliser quelque-chose de concret et d'utile, il faut maintenir un équilibre entre l'amateurisme et le formalisme. »
Le truc, c'est qu'à partir d'un certain moment, si le langage devait vraiment être intéressant, plaisant à utiliser, etc., bref, si une communauté un peu plus grosse devait s'intéresser à ton bébé, tu vas devoir finir par réellement formaliser ton langage. Des gens potentiellement intéressés pour aider à développer le langage, je suis persuadé que tu vas en trouver plein. Des gens intéressés et qui vont proposer des modifications pertinentes, tu vas peut-être en avoir qui se compte sur les doigts des deux mains. Mais il y a de fortes chances pour que ces derniers arrivent jusqu'à toi, ils aient besoin d'avoir des repères qui leurs parlent. Genre euh ... un langage commun qu'on appellerait ça. Oui, mais lequel utiliser ? Ah ben, si on utilisait la BNF ? Par exemple, hein. ;-) [3]
« Je fais partie de ces gens qui, sans cracher sur les diplômes, ont commencé à programmer par passion, et continuent à la faire pour la même raison. Je pourrais avoir le plus beau formalisme du monde, cela ne me rendrait pas aussi heureux que de voir des projets fleurir comme des frameworks web, des jeux vidéos, des bots irc, des IDEs, etc., etc. parce que j'ai fait des compromis pour être plus facile à interagir avec le C. »
Tu sais, quand tu finis par arriver au niveau de la thèse, t'as intérêt à un minimum aimer ce que tu fais (j'en connais pour qui ce n'est pas le cas, mais c'est quand même super rare). Et je mets la barre très haut pour le « minimum ». Donc t'inquiète, la passion est là. [4].
En temps normal je serais d'accord avec toi, « les diplôme on s'en fout » [4]. Quand il s'agit du design d'un nouveau langage, je vois deux cas de figures : l'amateur éclairé (dont tu fais partie), et le « pro » (souvent un de ces sales universitaires, ou un ingé de recherche avec très souvent un doctorat, hou la honte, encore un mec qui sert à rien [5]). L'amateur éclairé se décline là encore en deux catégories : celui qui a pas mal de bouteille concernant la prog, les concepts en informatique, etc., bref qui a lu des articles/des bouquins concernant l'info, qui se passionne, etc. Techniquement, je lui fais confiance pour comprendre les concepts, et savoir comment les appliquer dans un langage. Et y'a aussi l'inventeur de MultiDeskOS, le meilleur programme de tous les temps, qui fait le café, enfin promis, dès que le soft dépassera le stade pré-pré-alpha. Celui-là est très certainement aussi passionné, mais n'a pas forcément la culture informatique pour réellement arriver à quoi que ce soit. [6]
« Pour qu'un langage ait du succès, il ne suffit pas d'avoir un doctorat en sémantique. Il faut avoir la patience de coordonner l'effort dans le bon sens jour après jour. »
Non, pour qu'un langage ait du succès, il faut juste y mettre les moyens logistiques et financiers qui vont bien. Le langage D est très intéressant par exemple, mais on entend bien plus parler de C# ou Java (qui a mis le temps pour s'imposer, certes). Dans notre microcosme « libriste » (quel affreux mot), on est plus curieux quant aux nouveaux langages, mais 'achement moins nombreux que la masse laborieuse des informaticiens. Du coup, il faut réellement que le langage ait une valeur très ajoutée pour qu'il ait du succès hors de son petit monde du Libre. [7] Les exemples les plus flagrants sont certainement Perl (dans les années 90), PHP, Python, et dans une moindre mesure Ruby.
[1] Cf. le bouquin de Pierce: Types and Programming Languages par exemple.
[2] Hou que c'est moche la traduction mot-à-mot, personne n'aurait une proposition plus idiomatique ?
[3] Ou n'importe quel autre type de formalisme, mais un machin que les gens « du métier » comprennent. Et par métier, je veux simplement dire des gens qui trifouillent le domaine, de façon pro ou amateur.
[4] Soyons bien d'accord : je me fous des diplôme d'un programmeur 99% du temps. J'ai assez eu de boulets en binôme pendant mes études pour des projets info pour savoir que le diplôme n'indique absolument rien en ce qui concerne les compétences techniques d'une personne. Au contraire, je connais des gens qui ont pas loin de 10 ans de moins que moi, et qui sans aucun diplôme sont sans doute bien meilleurs développeurs que moi.
[5] Je suis en plein décalage horaire, et sur une autre planète, il est encore certainement vendredi.
[6] Concernant les universitaires, il y a aussi deux sortes : celui qui va savoir tout théoriser mais n'approchera jamais un clavier, sauf pour rédiger un article en latex -- et encore -- et celui qui sait aussi coder. Généralement, on se retrouve avec un directeur de recherches qui a su coder, mais délègue désormais cette tâche aux grouillots^Wthésards.
[7] Je ne porte aucun jugement sur ton langage, je ne le connais pas.
Non. Dans le cas de Nvidia, il y a une exception car la glu utilisée est bien GPL, mais le code du driver est officiellement à 90% portable, et il s'agit donc d'un bout de programme utilisé pour plusieurs OS. On ne peut pas en dire autant du driver broadcom écrit pour Linux only, je pense...
« [Parlant de Buffy saison 1] Les épisodes sont pour la plupart fasconnés sur le même schéma: on prend un des petits malheurs de la vie lycéenne, on le rend concret sous une forme paranormale, et on saupoudre d'humour pour faire passer la sauce. »
De l'aveu de Whedon, ils ont repris pour chacun des épisodes de la première saison des thèmes de films d'horreur des années 50 (genre Hammer, etc). Ce sont clairement des remakes d'une manière ou d'une autre. :)
Alors qu'en utilisant « passage à l'échelle », on ne précise pas de quelle échelle on parle, ce qui est bien pratique. ;-)
Par exemple, si l'échelle considérée est la charge, alors « passer à l'échelle » signifie bien « correctement monter en charge ». Dans le cas de programmes composé de calculs parallèles, passer à l'échelle peut se faire de deux façons :
1/ On augmente la taille du problème à résoudre, et l'algorithme fait que plus il y a de détails (pour une simulation par exemple), plus on peut ajouter des unités de calcul.
2/ On rajoute des unités de calcul, et l'algorithme étant intrinsèquement parallèle, alors le temps de calcul est bel et bien réduit (quasi-)proportionnellement au nombre d'unités de calcul disponibles.
Bref, « passage à l'échelle », c'est bon, mangez-en.
« [À propos d'un code qui ne linkait pas] question qui me turlupine, ils faisaient comment avant ? »
Il (le collègue) faisait pas. :)
Ça s'est passé un peu comme ça :
Collègue: Rah, ça compile mais à l'édition de lien ça me plante !
Moi: T'as essayé GOLD ?
Collègue: Gné ?
[s'en suit une courte explication, et une tentative du collègue avec GOLD]
Collègue: Ça marche !
Sauf que le passage à l'échelle est une bonne traduction, alors que montée en charge est incomplet. Dans le cas de ce programme précis, ça suffit, mais (au hasard) si je parle de calcul intensif et que je demande quelle est la « scalabilité » d'un programme donnée, je demande en fait à quel point il est parallélisable (i.e. à quel point il peut passer d'une échelle de x processeurs à 10x processeurs).
« GOLD est encore jeune et pas tout à fait au même niveau que le bon vieux GNU ld. »
Parfois plus lent peut-être, mais en pratique, je connais des collègues autour qui n'ont pu effectuer l'édition de lien de leur que grâce à GOLD (ld finissait en out-of-memory).
C'est toujours vrai. Un goto est un saut inconditionnel. Suivant la façon dont il est placé, le compilateur peut parfaitement remplacer le goto par un if/while/etc si c'est « évident », mais la plupart du temps tu vas surtout le perdre.
Non, il a eu affaire à des pédagogues. Mes profs d'IUT m'expliquaient qu'ils préféraient des étudiants « vierges » (au sens informatique hein, bande de dégueulasses). Tout simplement parce que comme ça, il n'y avait aucune mauvaise habitude à redresser. Et justement, des élèves qui arrivent en cours et qui croient savoir ce qu'ils font (au hasard, en utilisant scanf sans en connaître tous les dangers), c'est relativement fréquent. Interdire certaines constructions dans le cadre d'un cours me semble plutôt intelligent. On forme des gens à structurer leurs programmes, et le goto casse la structure (parfois, c'est ce qui fait que ledit programme est plus clair à lire, mais c'est très très rare).
Maintenant, d'un point de vue compilation, le goto est extrêmement dangereux dans 90% des cas:
1/ Un goto qui revient en arrière, ça revient à faire une boucle, sans que le compilateur puisse facilement le deviner (enfin, si, mais non).
2/ Un goto qui sort d'une structure de contrôle, c'est mal -- surtout si c'est une boucle. Ça empêche le compilateur de générer un code optimisé. Évidemment, s'il s'agit d'un truc du genre if (catastrope_détectée) goto CATASTROPHE; c'est différent, vu que ça revient à implémenter des exceptions... Mais dans tous les cas, c'est à réserver pour des utilisations « uniques ».
3/ Un goto qui arrive en plein milieu d'une boucle, c'est criminel. Il faut pendre haut et court le mec qui fait ça.
« C'est marrant, parce que ce type de profs trouvera normal d'abuser de trucs genre break, continue, switch/case »
Tu généralises, mais cette généralisation est fausse. J'avais des profs anti-goto, qui tout simplement ne nous ont jamais dit que ça existait, sauf une fois en cours, en nous expliquant que dans 90% des projets, ce serait inutile (et que dans les projets qu'ils nous donneraient, ça vaudrait des points en moins). Oui, ils disaient en gros « le goto, c'est mal ». Et ils ont raison. Il y a des cas particuliers où c'est justifié, mais presque jamais. Pour le break, c'était autorisé à condition d'avoir une utilité réelle (i.e. : qu'on ne puisse pas changer la structure de l'algo d'abord, et si c'est réellement le mieux auquel on puisse penser, alors bon, pourquoi pas).
De plus, je ne vois pas ce que switch vient faire là-dedans. Un switch-case n'a rien à voir avec goto/break, sauf à vouloir faire des trucs moches genre duff's device.
« Ca fait des années que je n'ai pas programmé en java, mais je ne sais plus quelle version de compilateur mettait comme message, en cas d'utilisation de goto : "goto not allowed" »
Ce n'est pas une erreur de syntaxe à mon sens. Le mot-clef "goto" est bien réservé en Java, pour en interdire l'utilisation. :)
Euh. Si je sors un logiciel libre qui s'amuse à écrire toujours au même endroit d'un disque SSD par exemple, et qui finit par bousiller des cellules (ou quelle que soit la terminologie à employer), ce logiciel est responsable de l'usure de mon matériel, et il n'est pas du tout impossible qu'en droit français je puisse me retourner contre l'auteur du soft (ou du patch, ou ...). La clause du « utilisez ce logiciel à vos risques et périls » n'est absolument pas valable, et si je publie un soft et que je suis identifiable comme en étant l'auteur, je dois répondre de certains dysfonctionnements graves que celui-ci peut amener.
En pratique, au moins en France, le coup du « si mon soft fait exploser ton PC c'est pas ma faute », ça n'a pas de valeur légale, et tu peux te retourner contre l'éditeur/le créateur du logiciel.
C et ASM je peux comprendre. Si tu fais du "vrai" C++ (pas du « C avec des classes »), ça devrait être relativement safe à condition d'utiliser le plus possible la bibliothèque standard.
Cela dit, vouloir faire du C absolument (ou de l'ASM à ce niveau), pour une application complète, je trouve ça dommage, car chronophage. Je le dis d'autant plus librement que mon activité fait que je fais du C et de l'ASM tous les jours. :) Pas besoin d'invoquer l'argument (pertinent) de la sécurité à mon sens. Utiliser n'importe quel langage de plus haut niveau est bien souvent un gain de temps de développement tellement grand que ça devrait être suffisant pour convaincre n'importe qui de changer de langage la plupart du temps. Après il reste l'embarqué et le calcul haute-performance où le C reste intéressant.
Au moment où ils ont été créés, les brevets (tout comme le droit d'auteur) n'avaient rien de théorique, ils étaient là pour au contraire contrer une réalité bien pratique (dans le cas du droit d'auteur, le fait que les éditeurs pillaient et revendaient sans vergogne les créations des musiciens/écrivains/etc, sans rien reverser à leur auteur -- le public n'était pas du tout visé). À l'époque ça avait du sens. Et encore, cf. « Du bon usage de la piraterie » (de F.Latrive), qui nous cite du Hugo par exemple, pour montrer que tout le monde n'était pas d'accord avec cet usage...
L'important selon moi est de se poser la question de l'intérêt de nos jours. Avec nos capacités de dupliquer le savoir, de diffuser l'information et la création, ce système de brevets est-il encore pertinent ? Si absolument tout le monde peut avoir accès à ces idées, et est éduqué pour savoir comment en tirer parti, les brevets sont-ils encore utiles ? Certains répondront que oui, car tout le monde n'a pas les capacités intellectuelles/industrielles/whatever de produire le résultat de ces idées, et donc certaines boites vont piller sans vergogne là encore dans les vraies bonnes et nouvelles idées. Pourquoi pas, mais je n'en suis pas certain.
[^] # Re: Un langage amateur sympa, mais qui se prend trop au sérieux
Posté par lasher . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 5.
Maintenant, je veux bien qu'un mec de l'INRIA réponde s'il connaît la réponse (j'en fais pas partie, donc je sais pas...).
Pour ce qui est de CDuce, autant j'aime beaucoup les concepts qui se trouvent derrière (sous-typage sémantique, tout ça), autant la syntaxe est franchement imbitable à mon sens. Je pense que c'est à ce genre de langages que pensent les gens qui parlent de « langages faits par et pour des universitaires ».
(Marwan, si tu me lis, me tape pas)
[^] # Re: Un langage amateur sympa, mais qui se prend trop au sérieux
Posté par lasher . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 4.
Je suis tout à fait d'accord. Le domaine de la compilation est l'un des domaines les plus complexes de l'informatique, entre autres parce qu'il mélange aspects très théoriques (théorie des langage, sûreté des types, transformations de programme, etc.) et très pratiques (génération de code).
[^] # Re: chauvin
Posté par lasher . En réponse au journal Google joue la transparence sur l'espionnage étatique. Évalué à 2.
[^] # Re: chauvin
Posté par lasher . En réponse au journal Google joue la transparence sur l'espionnage étatique. Évalué à 4.
Y'a des gens nauséabonds pour qui finalement c'est comme pour la pornographie : on ne sait pas décrire exactement ce que c'est, mais on sait quand c'en est. Du coup il suffit de voter pour l'autre.
[^] # Re: chauvin
Posté par lasher . En réponse au journal Google joue la transparence sur l'espionnage étatique. Évalué à 2.
Hum, non, le relativisme est très très limité dans ce cas précis. Quand on parle de pédophilie, la partie victime de pédophilie (l'enfant, donc) est nécessairement prépubère. Sinon il s'agit de viol, de ce que tu veux, mais pas de pédophilie. Par exemple, un garçon ou une fille de 13 ans qui aurait des relations sexuelles avec un adulte (consentis ou non, ce n'est pas le problème) serait victime d'un viol, mais certainement pas de pédophilie.
[^] # Re: Un langage amateur sympa, mais qui se prend trop au sérieux
Posté par lasher . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 10.
« À part ça - le monde est plein à craquer de langages universitaires, par des universitaires, pour des universitaires. Qui sont dans leur tour d'ivoire, confortablement installés sur leur modèle théorique qui est d'une élégance qu'ils sont les seuls à pouvoir apprécier.
Et puis il y a ceux qui essaient de faire des choses utiles. »
Certes, juste derrière tu dis que « ah mais non, le formalisme c'est bien aussi hein » (oui bon, je simplifie), mais cette phrase, là, elle n'a pas lieu d'être. Parce que tu vois, LISP, OCaml, tous ces langages plus ou moins multi-paradigmes, plus ou moins fonctionnels, le lambda-calcul, toutes ces conneries inutiles inventées par des universitaires, tout le monde en bouffe plus ou moins tout le temps sans le voir. Genre Java, c'est rempli de machins pour la sûreté des types [1]) ; C# intègre de plus en plus de constructions directement empruntées aux langages fonctionnels; C++ veut intégrer les lambda-fonctions, etc.
Et tout le monde, à un moment donné (dans l'industrie, celle qui « fait des vrais choses » bien sûr) a qualifié ces langages de « pas utilisables par le commun des mortels », etc.
Parce que des langages faits « par et pour des universitaires », crois-moi, j'en ai connus quelques uns, mais -- oh surprise ! -- lesdits universitaires le savent. Dingue non ? En fait, très souvent, un universitaire crée un langage non pas parce que ça le fait kiffer à mort (il est spécialiste en langages, du coup fabriquer une grammaire et utiliser lex/yacc ou LISP ou OCaml pour fabriquer une nouvelle syntaxe, il sait faire sans trop se forcer).
Non, il fait ça pour donner une preuve de concept [2].
« C'est juste que pour réaliser quelque-chose de concret et d'utile, il faut maintenir un équilibre entre l'amateurisme et le formalisme. »
Le truc, c'est qu'à partir d'un certain moment, si le langage devait vraiment être intéressant, plaisant à utiliser, etc., bref, si une communauté un peu plus grosse devait s'intéresser à ton bébé, tu vas devoir finir par réellement formaliser ton langage. Des gens potentiellement intéressés pour aider à développer le langage, je suis persuadé que tu vas en trouver plein. Des gens intéressés et qui vont proposer des modifications pertinentes, tu vas peut-être en avoir qui se compte sur les doigts des deux mains. Mais il y a de fortes chances pour que ces derniers arrivent jusqu'à toi, ils aient besoin d'avoir des repères qui leurs parlent. Genre euh ... un langage commun qu'on appellerait ça. Oui, mais lequel utiliser ? Ah ben, si on utilisait la BNF ? Par exemple, hein. ;-) [3]
« Je fais partie de ces gens qui, sans cracher sur les diplômes, ont commencé à programmer par passion, et continuent à la faire pour la même raison. Je pourrais avoir le plus beau formalisme du monde, cela ne me rendrait pas aussi heureux que de voir des projets fleurir comme des frameworks web, des jeux vidéos, des bots irc, des IDEs, etc., etc. parce que j'ai fait des compromis pour être plus facile à interagir avec le C. »
Tu sais, quand tu finis par arriver au niveau de la thèse, t'as intérêt à un minimum aimer ce que tu fais (j'en connais pour qui ce n'est pas le cas, mais c'est quand même super rare). Et je mets la barre très haut pour le « minimum ». Donc t'inquiète, la passion est là. [4].
En temps normal je serais d'accord avec toi, « les diplôme on s'en fout » [4]. Quand il s'agit du design d'un nouveau langage, je vois deux cas de figures : l'amateur éclairé (dont tu fais partie), et le « pro » (souvent un de ces sales universitaires, ou un ingé de recherche avec très souvent un doctorat, hou la honte, encore un mec qui sert à rien [5]). L'amateur éclairé se décline là encore en deux catégories : celui qui a pas mal de bouteille concernant la prog, les concepts en informatique, etc., bref qui a lu des articles/des bouquins concernant l'info, qui se passionne, etc. Techniquement, je lui fais confiance pour comprendre les concepts, et savoir comment les appliquer dans un langage. Et y'a aussi l'inventeur de MultiDeskOS, le meilleur programme de tous les temps, qui fait le café, enfin promis, dès que le soft dépassera le stade pré-pré-alpha. Celui-là est très certainement aussi passionné, mais n'a pas forcément la culture informatique pour réellement arriver à quoi que ce soit. [6]
« Pour qu'un langage ait du succès, il ne suffit pas d'avoir un doctorat en sémantique. Il faut avoir la patience de coordonner l'effort dans le bon sens jour après jour. »
Non, pour qu'un langage ait du succès, il faut juste y mettre les moyens logistiques et financiers qui vont bien. Le langage D est très intéressant par exemple, mais on entend bien plus parler de C# ou Java (qui a mis le temps pour s'imposer, certes). Dans notre microcosme « libriste » (quel affreux mot), on est plus curieux quant aux nouveaux langages, mais 'achement moins nombreux que la masse laborieuse des informaticiens. Du coup, il faut réellement que le langage ait une valeur très ajoutée pour qu'il ait du succès hors de son petit monde du Libre. [7] Les exemples les plus flagrants sont certainement Perl (dans les années 90), PHP, Python, et dans une moindre mesure Ruby.
[1] Cf. le bouquin de Pierce: Types and Programming Languages par exemple.
[2] Hou que c'est moche la traduction mot-à-mot, personne n'aurait une proposition plus idiomatique ?
[3] Ou n'importe quel autre type de formalisme, mais un machin que les gens « du métier » comprennent. Et par métier, je veux simplement dire des gens qui trifouillent le domaine, de façon pro ou amateur.
[4] Soyons bien d'accord : je me fous des diplôme d'un programmeur 99% du temps. J'ai assez eu de boulets en binôme pendant mes études pour des projets info pour savoir que le diplôme n'indique absolument rien en ce qui concerne les compétences techniques d'une personne. Au contraire, je connais des gens qui ont pas loin de 10 ans de moins que moi, et qui sans aucun diplôme sont sans doute bien meilleurs développeurs que moi.
[5] Je suis en plein décalage horaire, et sur une autre planète, il est encore certainement vendredi.
[6] Concernant les universitaires, il y a aussi deux sortes : celui qui va savoir tout théoriser mais n'approchera jamais un clavier, sauf pour rédiger un article en latex -- et encore -- et celui qui sait aussi coder. Généralement, on se retrouve avec un directeur de recherches qui a su coder, mais délègue désormais cette tâche aux grouillots^Wthésards.
[7] Je ne porte aucun jugement sur ton langage, je ne le connais pas.
[^] # Re: Brevets logiciels en Allemagne ??
Posté par lasher . En réponse au journal L'Empire contre-attaque. Évalué à 3.
[^] # Re: Concernant Chrome
Posté par lasher . En réponse à la dépêche TIP, Jemalloc 1.0, Chrome sans http:// et autres. Évalué à 3.
[^] # Re: Qu'en est-il...
Posté par lasher . En réponse à la dépêche Le point sur Java 7. Évalué à 2.
[^] # Re: Free a des choses à cacher
Posté par lasher . En réponse au journal freebox et les licences libres : vers une traduction de la GPL. Évalué à 2.
[^] # Re: Généralités douteuses
Posté par lasher . En réponse à la dépêche Adèle Blanc-Sec ou l'aventurière franchouillarde. Évalué à 2.
De l'aveu de Whedon, ils ont repris pour chacun des épisodes de la première saison des thèmes de films d'horreur des années 50 (genre Hammer, etc). Ce sont clairement des remakes d'une manière ou d'une autre. :)
[^] # Re: La Scalability
Posté par lasher . En réponse à la dépêche La fondation Apache sort Cassandra 0.6. Évalué à 3.
Par exemple, si l'échelle considérée est la charge, alors « passer à l'échelle » signifie bien « correctement monter en charge ». Dans le cas de programmes composé de calculs parallèles, passer à l'échelle peut se faire de deux façons :
1/ On augmente la taille du problème à résoudre, et l'algorithme fait que plus il y a de détails (pour une simulation par exemple), plus on peut ajouter des unités de calcul.
2/ On rajoute des unités de calcul, et l'algorithme étant intrinsèquement parallèle, alors le temps de calcul est bel et bien réduit (quasi-)proportionnellement au nombre d'unités de calcul disponibles.
Bref, « passage à l'échelle », c'est bon, mangez-en.
[^] # Re: LD - Linkage
Posté par lasher . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 3.
Il (le collègue) faisait pas. :)
Ça s'est passé un peu comme ça :
Collègue: Rah, ça compile mais à l'édition de lien ça me plante !
Moi: T'as essayé GOLD ?
Collègue: Gné ?
[s'en suit une courte explication, et une tentative du collègue avec GOLD]
Collègue: Ça marche !
[^] # Re: La Scalability
Posté par lasher . En réponse à la dépêche La fondation Apache sort Cassandra 0.6. Évalué à 4.
[^] # Re: LD - Linkage
Posté par lasher . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 2.
Parfois plus lent peut-être, mais en pratique, je connais des collègues autour qui n'ont pu effectuer l'édition de lien de leur que grâce à GOLD (ld finissait en out-of-memory).
[^] # Re: goto ?
Posté par lasher . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 1.
[^] # Re: goto ?
Posté par lasher . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 3.
[^] # Re: goto ?
Posté par lasher . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 5.
Maintenant, d'un point de vue compilation, le goto est extrêmement dangereux dans 90% des cas:
1/ Un goto qui revient en arrière, ça revient à faire une boucle, sans que le compilateur puisse facilement le deviner (enfin, si, mais non).
2/ Un goto qui sort d'une structure de contrôle, c'est mal -- surtout si c'est une boucle. Ça empêche le compilateur de générer un code optimisé. Évidemment, s'il s'agit d'un truc du genre if (catastrope_détectée) goto CATASTROPHE; c'est différent, vu que ça revient à implémenter des exceptions... Mais dans tous les cas, c'est à réserver pour des utilisations « uniques ».
3/ Un goto qui arrive en plein milieu d'une boucle, c'est criminel. Il faut pendre haut et court le mec qui fait ça.
[^] # Re: goto ?
Posté par lasher . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 2.
Tu généralises, mais cette généralisation est fausse. J'avais des profs anti-goto, qui tout simplement ne nous ont jamais dit que ça existait, sauf une fois en cours, en nous expliquant que dans 90% des projets, ce serait inutile (et que dans les projets qu'ils nous donneraient, ça vaudrait des points en moins). Oui, ils disaient en gros « le goto, c'est mal ». Et ils ont raison. Il y a des cas particuliers où c'est justifié, mais presque jamais. Pour le break, c'était autorisé à condition d'avoir une utilité réelle (i.e. : qu'on ne puisse pas changer la structure de l'algo d'abord, et si c'est réellement le mieux auquel on puisse penser, alors bon, pourquoi pas).
De plus, je ne vois pas ce que switch vient faire là-dedans. Un switch-case n'a rien à voir avec goto/break, sauf à vouloir faire des trucs moches genre duff's device.
« Ca fait des années que je n'ai pas programmé en java, mais je ne sais plus quelle version de compilateur mettait comme message, en cas d'utilisation de goto : "goto not allowed" »
Ce n'est pas une erreur de syntaxe à mon sens. Le mot-clef "goto" est bien réservé en Java, pour en interdire l'utilisation. :)
[^] # Re: goto ?
Posté par lasher . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 6.
if (pulseaudio.enabled()) goto CATASTROPHE;
[^] # Re: Et ne pas avoir à protéger ces informations ?
Posté par lasher . En réponse à la dépêche Threat modeling - Savez vous quelles sont les menaces qui guettent votre application ?. Évalué à 2.
[^] # Re: Et ne pas avoir à protéger ces informations ?
Posté par lasher . En réponse à la dépêche Threat modeling - Savez vous quelles sont les menaces qui guettent votre application ?. Évalué à 2.
[^] # Re: Pratiques d'une ère (dé)passée
Posté par lasher . En réponse à la dépêche Threat modeling - Savez vous quelles sont les menaces qui guettent votre application ?. Évalué à 3.
Cela dit, vouloir faire du C absolument (ou de l'ASM à ce niveau), pour une application complète, je trouve ça dommage, car chronophage. Je le dis d'autant plus librement que mon activité fait que je fais du C et de l'ASM tous les jours. :) Pas besoin d'invoquer l'argument (pertinent) de la sécurité à mon sens. Utiliser n'importe quel langage de plus haut niveau est bien souvent un gain de temps de développement tellement grand que ça devrait être suffisant pour convaincre n'importe qui de changer de langage la plupart du temps. Après il reste l'embarqué et le calcul haute-performance où le C reste intéressant.
[^] # Re: OEB.
Posté par lasher . En réponse à la dépêche Les brevets sur les gènes jugés invalides. Bientôt les brevets logiciels ?. Évalué à 2.
L'important selon moi est de se poser la question de l'intérêt de nos jours. Avec nos capacités de dupliquer le savoir, de diffuser l'information et la création, ce système de brevets est-il encore pertinent ? Si absolument tout le monde peut avoir accès à ces idées, et est éduqué pour savoir comment en tirer parti, les brevets sont-ils encore utiles ? Certains répondront que oui, car tout le monde n'a pas les capacités intellectuelles/industrielles/whatever de produire le résultat de ces idées, et donc certaines boites vont piller sans vergogne là encore dans les vraies bonnes et nouvelles idées. Pourquoi pas, mais je n'en suis pas certain.
[^] # Re: trop gros
Posté par lasher . En réponse au journal Pourquoi je migre sur osX. Évalué à 10.