C'est très intéressant cette histoire de plugin : j'en ai vaguement entendu parlé dans ma boite, sur une application qui aurait "celui qui m'a dit ça en était même pas sûr" utilisé ce genre de mécanisme.
Dans quel genre de contexte rencontre t-on ce genre de besoin ?
Parce que j'ai vu pas mal de gros logiciels en Java, mais jamais de use case où c'était nécessaires.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Euh disons que j'ai envoyé la vidéo "comme brouillon" "pour voir", à mes compères comme "étape intermédiaire du montage".
J'ai pour objectif de mettre les vrais slides dessus, mais c'est beaucoup de boulot :-)
Donc j'y travailles.
Pour les bruits de ventilateur, la lumière, etc.. on a fait ce qu'on a pu avec la webcam de mon mac....
La prochaine fois, on aura ptetre une cam
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Cela doit être très français de vouloir tout dénigrer.
Oui.
Lire le très intéressant "Français et Américains, l'autre rive" de Pascal Baudry, qui explique pourquoi on est, en France, rétif à toute innovation et critiques de tout ce qui est nouveau. http://pbaudry.com/
Ce bouquin est absolument passionnant, je vous le conseille !
(li livre est lisible gratuitement en PDF)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Bon, je crois que vous emmêlez tous les pinceaux là.
1) Compiler, qu'est-ce que ça veut dire ?
Wikipedia (en) l'explique très bien :
A compiler is a computer program (or set of programs) that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code).
et se schéma explique le reste http://en.wikipedia.org/wiki/File:Compiler.svg
Donc js Et Lisaac ont leur compilateur.
Mais il ne font pas la même chose.
2)Un compilateur qui fait de la JIT, se contente de compiler le code tel qu'il est. Pour vous donner une idée à quel point cet idiome est respecté, ya même la notion de classe et d'instance de classe dans le langage de la JVM.
Trace Tree et tout ces trucs sont pareils http://en.wikipedia.org/wiki/Trace_tree
ils prennent du code compilé avec très très peu d'optimisation, et regardent en temps réel ce qui peut être optimisé.
C'est le concept de la JIT, qui a été inventé par les créateur de Self.
Lisaac lui, crache certes du C. Mais ce C sera compilé tel quel par GCC, et sera transformé tel quel modulo les optimisations standard que propose GCC à tout code C et sur lequel le compilateur Lisaac compte en essayant de llui écrire (à GCC) le code au mieux afin qu'il détecte facilement ses cas d'optimisations.
Le binaire ne bougera jamais, il n'y a jamais d'analyse à la volée du code ou autres choses de ce genre.
Lisaac effectue une analyse de flot complète du code, en éliminant le code mort du programme (c'est à dire le code mort pour ce programme, en prenant son point d'entré), une détection de type draconienne (et donc les appels sur NULL), plein de patterns d'optimisation que Nicolas vous expliquerai mieux.
Bref, les deux se compile, mais compiler du Lisaac de cette façon, c'est à dire avec de l'analyse de flot, c'est la première fois qu'on le fait.
Il n'y a pas de VM, et donc le code peut être exécuté sur une machine sans OS.C'est pour ça qu'il a été conçu à la base
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Les données au même niveau que le code implique que tu peux écrire une fonction foo, qui à la fin de son exécution, lorsque que le calcul est effectué devient une données avec le résultat.
Ca évite de gérer des booléen pour savoir si ça a déjà été calculé, ça permet de gérer des système de cache aisément, etc...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
J'ai souvent défendu dans ces pages l'idée que c'était peut être un problème de difficulté de programmation : Cell c'est du NUMA à fond et c'est particulièrement compliqué à bien maîtrisé.
Tarlack, que je connais pour sa compétence, m'avait répondu que non en fait, pas plus que de coder pour du SIMD à la Seuseuseu http://linuxfr.org/comments/1063790.html#1063790
De plus, il doit bien y avoir quelques compétences qui trainent autour du Cell avec la PS3, mais ça n'a pas pris non plus.
En fait, ça serait-il pas tout simplement une question de prix ? 200 000 processeurs Intel/AMD coutent moins cher, on a une certitude d'avoir un support, et les ingénieurs de dev coutent surment moins cher car moins rare.
'fin c'est juste une hypothèse...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Je plussois, car j'ai amorçé cette prise de conscience il y a quelques mois. C'est quand même une petite révolution.
Par contre, il y a quelques chose que j'ai du mal à prévoir : A un moment ou un autre Intel/AMD et Arm vont clacher, car leur domaines de marchés respectifs vont commencer à se recouvrir, qui plus est avec la convergence des OS.
Comment celava se passer ? Intel/AMD vont ils continuer à faire des bêtes de courses ? ya un marché pour les serveurs, et comme on va avoir tendance à refourguer une partie du boulot au serveur, avec juste l'interface sur le client, le marché va s'agrandir, mais quid du desktop ? Les gamers, les graphistes, vidéastes ? Mouais...
Le reste fait un gros marché en moins.
Surtout qu'on a là deux architectures, et qu"ils vont chacun la défendre (bien que développer un processeur à jeu d'instruction arm est bcp plus facile qu'un x86...)
Bref, un beau clash en perspective et je me demande ce qui va en sortir..
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
L'intention est louable mais le problème c'est que ton code est illisible. Sans parenthèses je me demande toujours si je doit comprendre (45020089/8)! ou bien 45020089/(8!). Et le fait de pouvoir spécifier la priorité de ces opérateurs de manière différente suivant le type de données manipulée rend les choses encore pire.
Quand je vois les horreurs qui sont fait avec la surcharge des opérateurs en C++, je n'imagine même pas à quoi on finira pas arriver en Lisaac.
Quand tu écris la formule sur une feuille, tu écris bien
45020089
-------------
8!
Non ?
Le but est de pouvoir l'écrire au plus proche de cela.
Pour le reste, je suis d'accord avec toi ! Pas réfléchi ça peut vite devenir catastrophique, mais d'ici là qu'on ait au moins 100 personnes dans le monde qui codent régulièrement en Lisaac, on aura j'espère eu le temps d'écrire une bonne lib de maths qui fassent des opérations usuelles avec une syntaxe sympa et des priorités d'opérateurs réfléchis.
Autant les pointeurs, on peut, à mon avis, s'en passer, autant la surcharge des opérateurs est un réel plus, pour faire des libs sympa, réfléchies.
Mais bon, on verra...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
J'espère que tu blagues en disant ça ? Utilisé proprement et avec beaucoup de modération, la redéfinition des opérateur peut-être utile mais dans ton exemple, on peut se poser des question sur la signification du "!" et le ".print" à la fin est pas vraiment plus lisible et plus clair qu'une méthode classique.
En voyant ton exemple je me pause les question suivante :
- est ce que le "/" veut encore dire division ou est-ce qu'un boulet en a changer le sens ?
- est-ce que le "!" veut dire factorielle ou autre chose et si oui, qu'est-ce qui est vraiment calculer si la valeur n'est pas ntière ?
- entre le "/" le "!" et le "." qu'elle sont les règles de prioritées et donc est-ce qu'il va bien m'afficher le résultat du calcul et surtout faire le bon calcul ?
On a les opérations infixées, préfixées, postfixées, ... Tu peux donc définir la priorité des opérateurs comme tu le souhaites. C'est fait pour pouvoir écrire tes formules au plus près de l'écriture mathématique classique.
45_020_089/8! fait environ 1116,56 donc il affichera ce résultat (print).
La division reste une division, la factoriel une factorielle.
Et on peut très bien implémenter factoriel dans la lib des réels (4 lignes de code) en prenant la valeur entière.
- Langage avec pointeurs, en enlevant toutefois la possibilité de faire des conneries avec. Qui a dit bricolage ?
On peut critiquer autant qu'on veut les pointeurs mais c'est comme la surcharge des opérateurs, dans les mains d'andouille qui font n'importe quoi ça pête dans tous les sens ; mais dans les mains de bon programmeur qui en usent sans en abuser et qui le font avec précautions, ça fait des choses magnifiques.
Des programmeurs "qui en usent sans en abuser et qui le font avec précautions" et qui sont capable de maitriser la chose, maintenant ça se compte sur les doigts de la main : va bosser dans des SSII, des boites ou on fait du logiciel de gestion, etc... Tu verras que très peu sont capable de faire du code propre sans qu'on soit constamment derrière leur dos, alors faire du code propre avec des pointeurs...
D'après toi pourquoi PHP, qui est un des langage les plus permissif et non rigoureux a eu un tel succès ?
Parce que le programmeur moyen a un niveau assez bas.
Faut faire des langages qui s'adaptent aux gens, pas l'inverse.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Autant je suis d'accord sur la bonne pratique qui consiste à ecrire ses tests avant et avoir une bonne couverture...
...Autant je reste convaincu qu'un compilateur intransigeant ça t'évite de perdre des gains de productivité énormes.
Je vais prendre un cas extrême Caml :
J'ai pas tant que ça coder en caml, mais quand le compilateur te dis "ok c'est bon, vas-y rien à dire"., c'est quand même très rare d'avoir un bug.
Mon expérience de SSII bientôt derrière moi :-) m'a montré que l'essentiel des erreurs (en javouille) qu'on se coltine sur des gros ou moyens projets sont de deux ordres :
- Erreurs imbitables venant du framework lui même imbitable (genre spring et consort)
- Call on null le plus souvent et qq cast exception.
Un bon compilateur qui fais du templating automatique (ie. exécution partielle sur tout ce qui est possible), de la détection de call on null, etc... ça t'évite beaucoup de problème.
Il se trouve que caml avec son inférence de type, rempli pas mal ces tâches, d'où le fait que ça merde rarement après la compil.
Bref, on a des machines bi-core à 2Ghz à 500€, on a pas mal de connaissance en IA, on peut apprendre à faire des compilateurs un tant soit peu intelligent et on aura énormément de productivité à gagner.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
C'est gentil ça, ça me touche beaucoup :-)
Nicolas a en grande partie répondu à ta question.
Le GC est désactivable, et pour donner un exemple, il est désactivé dans le code du compilateur, au profit d'une gestion à la main assez rigoureuse. Comme tout est en lib, on peut tout à fait définir le delete de c++.
Benoit répète souvent "pas d'allocation à l'insu du programmeur", chose dont je comprend qu'il y a surement un intéret, mais dont je me fiche un peu et qui m'oblige à réfréner mes ardeurs à vouloir implémenter des features très haut niveau dans le langage ;-)
Donc comme disait Nicolas, tu peux faire ce que tu veux avec le GC, et je suis bien d'accord que ça dépend de la situation. Vu la cible de Lisaac (Embarqué, système), il risque de pas servir si souvent que ça....
Alors je répond à ta question, parce que c'est gentillement demandé et que ça a commencé à flipper sur la ML Lisaac.
De ce que j'ai compris de ce langage, particulièrement à lire http://golang.org/doc/go_for_cpp_programmers.html qui est vraiment instructif :
- Le système "objet" est marrant, original, mais j'imagine un peu limité.
En gros ça consiste à déclarer que des interfaces (ie des objets avec que des méthodes vides), et de dire qu'un truc est du type de cet objet si tu écrit une (ou plutot les) méthode qui appartient(nnent) à l'interface. Bon.. Je sens que ce genre d'approche c'est limité, et même limité ça peut péter au runtime.
Enfin on verra.
- Pas d'assertions ni d'exeptions. Bonjour le debug
- Compilation séparée, bonjour les perfs, surtout que là avec un embryon d'objet ça va commencer à poser quelques problèmes niveau perfs... T'as pas de VM pour rattraper le coup ici...
- Pas de redef des opérateurs. Change pas cela dit, par rapport à ce que la plupart des gens connaissent. (Nous, en Lisaac, on est assez fière de pouvoir écrire 45_020_089/8!.print )
- Langage avec pointeurs, en enlevant toutefois la possibilité de faire des conneries avec. Qui a dit bricolage ?
- Concurrence : correspond bien à l'état de l'art. Ca sera déterminant pour aider le langage à progresser.
Mais je pense que ce langage va marcher, car il rempli bien les condition définies par Richard P. Gabriel ( Models of Software Acceptance ) http://www.dreamsongs.com/Files/AcceptanceModels.pdf (relire cette présentation, c'est fabuleux !!) :
- Langage accessible sans nécessiter trop d'abstractions
- Gurus derrière
- Grosse boite derrière (pas de gambler ruin possible)
- Langage ressemblant à l'existant
- Langage au design relativement simple, cohérent et suffisant pour sa cible.
Plus généralement, c'est un langage construit à base de techno disponible dans l'industrie, donc un peu dépassée par ce qui se fait dans la recherche. C'est une approche pragmatique, mais qui a pas mal de limites.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Quand on regarde les benchs, on est tenté de dire que ce sont dans les cas où la taille de code est importante que -Os donne de meilleur résultats, ce qui est logique.
Si la boucle critique tiens dans le cache, alors -O3 peut être meilleur
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Si on le relie à http://www.lemondeinformatique.fr/actualites/lire-android-de(...) on voit que la guerre des terminaux ne fait que commencer. Et la guerre du PC personnel, car c'est de cela qu'il s'agit (dans le futur, j'imagine qu'on le connectera à un écran un peu plus grand pour continuer à travailler).
Symbian sera devant d'après Gartner à 39% de PDM, Android avec 14,5% , iPhone 13,7% , Winplante 12,8%, Blackberry 12,5 %
Note : le % est à 5 Millions d'abonnés...
Pourquoi iPhone ne monterai pas plus haut ?
Parce que l'environnement est trop fermé : le fait qu'il faile payer 99$ pour rendre une application dispo sur l'iPhone, qu'Apple puisse refuser l'appli sans raison et ensuite la copier, que les paiements soient en retard et hasardeux. Tout cela va couter beaucoup à la plateforme.
A suivre..
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Par expérience, je constate que l'industrie a environ 30 ans de retards sur les technologies au point.
Java (Objet à classe, ie. Simula 67), les VM, les IDE évolués (SmallTalk en 1972), etc...
Les métamétatrucs, autrement dit les MDAs ont environ 10 à 15 ans, c'est beaucoup trop jeune pour l'industrie.
La majorité des gens sont extrêmement suiviste, et portent au pinacle ce qui est ensencé sur le marché à un moment donné.
De plus, il faut que les professionnels niveau bac + 2 puissent maîtriser la techno. Je parle pas du bac + 2 intelligent qui sait réfléchir par lui même, s'intéresse aux technos de son métier et a un GNU/Linux chez lui.
Non je parle du Bac + 2 (ou de l'ingénieur d'ailleurs) qui reste avant tout un GENS, qui ne sait que cliquer, et ne connait que ce qu'on lui as appris à l'école.
Tant qu'on ne les auras pas formé, ça passera mal. Mais ça viendra.
En ce qui concerne tes travaux, tu as le problème de tous les chercheurs : la tendance à faire des concepts superbes mais imbitable.
La syntaxe est pas facile, on s'y habitue, mais c'est dur à avaler.
Les concepts sont assez haut niveau, et je pense qu'il y a pas mal de travail de "psychologie cognitive"
Et je pense qu'il manque qq traits sémantique dans N3 :
- Notion d'agent
- Notion de relation entre agents
- Gestion de la notion de temps
- ..
Mais c'est un autre débat...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
J'en profite en passant, parce que je cherche une machine dédié, un peu dans le style de celles d'OVH et Free, mais sans la débauche de puissance qui va avec. Evidemment, je compte aussi payer moins.
Vu que je veux m'en servir pour y héberger des robots (et très éventuellement des sites perso à faible traffic), une config minuscule suffirait amplement : Genre 256 Mo de mémoire et 8Go de disque, que je vois chez http://www.phpnet.org/vds.php
Existe t-il des solutions "associatives/coopératives" avec ce genre de service ?
Existe t-il beaucoup d'offre de ce genre ?
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Tu viens de créer ton compte, et déjà un point Godwin ? Pas mal !
Je ne pense pas comme toi : On peut tout à fait s'en sortir et créer une économie viable en respectant drastiquement des mesures écologique.
On peut faire travailler énormément de monde en faisant cultiver des légumes en France, fabriquer des télés en France, etc...
Ou pas trop loin en europe, grâce au ferroutage, au transport fluvial, etc..
Les produits deviendraient certes plus cher, mais entretiendraient nos comptes sociaux.
Sans compter les bénéfices des nouvelles industries technologique dédiés à l'économie d'énergie, à l'exploitation de l'énergie solaire sans déchets, etc...
Et à quoi servirait de continuer comme avant, de s'assurer que tout le monde vive bien en allant droit dans le mur, en sachant que nos petits enfants vont crever dans des souffrances atroces ?
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
Non, tu n'as pas compris et tu polémiques.
CO2 ou pas, on va droit dans le mur. Il est probable que notre espèce n'y survive pas d'ici quelques générations.
Il faut donc prendre urgemment des mesures. Il faut donc le faire comprendre aux gens d'une façon ou d'une autre. Avec le CO2, en montrant que les îles du pacifique disparaissent sous l'eau, en montrant les ours crever sur la banquise qui disparait, je m'en fou, mais il faut le faire comprendre aux gens, pour leur bien, et pour justement rester dans des régimes démocratiques.
Car si on ne prend pas des mesures maintenant, des dictatures s'installeront pour gérer la crise, devenu trop aigue...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: 2 mots clefs... ou pas
Posté par Ontologia (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 3.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Surprise
Posté par Ontologia (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.
Dans quel genre de contexte rencontre t-on ce genre de besoin ?
Parce que j'ai vu pas mal de gros logiciels en Java, mais jamais de use case où c'était nécessaires.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: 2 mots clefs... ou pas
Posté par Ontologia (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.
Il dois en rester
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ah que merci
Posté par Ontologia (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 3.
J'ai pour objectif de mettre les vrais slides dessus, mais c'est beaucoup de boulot :-)
Donc j'y travailles.
Pour les bruits de ventilateur, la lumière, etc.. on a fait ce qu'on a pu avec la webcam de mon mac....
La prochaine fois, on aura ptetre une cam
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Surprise
Posté par Ontologia (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.
Oui.
Lire le très intéressant "Français et Américains, l'autre rive" de Pascal Baudry, qui explique pourquoi on est, en France, rétif à toute innovation et critiques de tout ce qui est nouveau.
http://pbaudry.com/
Ce bouquin est absolument passionnant, je vous le conseille !
(li livre est lisible gratuitement en PDF)
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Surprise
Posté par Ontologia (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 9.
1) Compiler, qu'est-ce que ça veut dire ?
Wikipedia (en) l'explique très bien :
A compiler is a computer program (or set of programs) that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code).
et se schéma explique le reste http://en.wikipedia.org/wiki/File:Compiler.svg
http://en.wikipedia.org/wiki/Compiler
Donc js Et Lisaac ont leur compilateur.
Mais il ne font pas la même chose.
2)Un compilateur qui fait de la JIT, se contente de compiler le code tel qu'il est. Pour vous donner une idée à quel point cet idiome est respecté, ya même la notion de classe et d'instance de classe dans le langage de la JVM.
Trace Tree et tout ces trucs sont pareils http://en.wikipedia.org/wiki/Trace_tree
ils prennent du code compilé avec très très peu d'optimisation, et regardent en temps réel ce qui peut être optimisé.
C'est le concept de la JIT, qui a été inventé par les créateur de Self.
Lisaac lui, crache certes du C. Mais ce C sera compilé tel quel par GCC, et sera transformé tel quel modulo les optimisations standard que propose GCC à tout code C et sur lequel le compilateur Lisaac compte en essayant de llui écrire (à GCC) le code au mieux afin qu'il détecte facilement ses cas d'optimisations.
Le binaire ne bougera jamais, il n'y a jamais d'analyse à la volée du code ou autres choses de ce genre.
Lisaac effectue une analyse de flot complète du code, en éliminant le code mort du programme (c'est à dire le code mort pour ce programme, en prenant son point d'entré), une détection de type draconienne (et donc les appels sur NULL), plein de patterns d'optimisation que Nicolas vous expliquerai mieux.
Bref, les deux se compile, mais compiler du Lisaac de cette façon, c'est à dire avec de l'analyse de flot, c'est la première fois qu'on le fait.
Il n'y a pas de VM, et donc le code peut être exécuté sur une machine sans OS.C'est pour ça qu'il a été conçu à la base
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Surprise
Posté par Ontologia (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 6.
C'est aussi expliqué dans la vidéo.
Les données au même niveau que le code implique que tu peux écrire une fonction foo, qui à la fin de son exécution, lorsque que le calcul est effectué devient une données avec le résultat.
Ca évite de gérer des booléen pour savoir si ça a déjà été calculé, ça permet de gérer des système de cache aisément, etc...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: hégémonie d'Intel et AMD
Posté par Ontologia (site web personnel) . En réponse à la dépêche Le Top 500 de novembre 2009. Évalué à 5.
J'ai souvent défendu dans ces pages l'idée que c'était peut être un problème de difficulté de programmation : Cell c'est du NUMA à fond et c'est particulièrement compliqué à bien maîtrisé.
Tarlack, que je connais pour sa compétence, m'avait répondu que non en fait, pas plus que de coder pour du SIMD à la Seuseuseu http://linuxfr.org/comments/1063790.html#1063790
De plus, il doit bien y avoir quelques compétences qui trainent autour du Cell avec la PS3, mais ça n'a pas pris non plus.
En fait, ça serait-il pas tout simplement une question de prix ? 200 000 processeurs Intel/AMD coutent moins cher, on a une certitude d'avoir un support, et les ingénieurs de dev coutent surment moins cher car moins rare.
'fin c'est juste une hypothèse...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Symbian / Android
Posté par Ontologia (site web personnel) . En réponse au journal Samsung libère son OS pour mobile. Évalué à 2.
Par contre, il y a quelques chose que j'ai du mal à prévoir : A un moment ou un autre Intel/AMD et Arm vont clacher, car leur domaines de marchés respectifs vont commencer à se recouvrir, qui plus est avec la convergence des OS.
Comment celava se passer ? Intel/AMD vont ils continuer à faire des bêtes de courses ? ya un marché pour les serveurs, et comme on va avoir tendance à refourguer une partie du boulot au serveur, avec juste l'interface sur le client, le marché va s'agrandir, mais quid du desktop ? Les gamers, les graphistes, vidéastes ? Mouais...
Le reste fait un gros marché en moins.
Surtout qu'on a là deux architectures, et qu"ils vont chacun la défendre (bien que développer un processeur à jeu d'instruction arm est bcp plus facile qu'un x86...)
Bref, un beau clash en perspective et je me demande ce qui va en sortir..
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ah! C'est la saison de la galinette cendrée!
Posté par Ontologia (site web personnel) . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 2.
L'intention est louable mais le problème c'est que ton code est illisible. Sans parenthèses je me demande toujours si je doit comprendre (45020089/8)! ou bien 45020089/(8!). Et le fait de pouvoir spécifier la priorité de ces opérateurs de manière différente suivant le type de données manipulée rend les choses encore pire.
Quand je vois les horreurs qui sont fait avec la surcharge des opérateurs en C++, je n'imagine même pas à quoi on finira pas arriver en Lisaac.
Quand tu écris la formule sur une feuille, tu écris bien
45020089
-------------
8!
Non ?
Le but est de pouvoir l'écrire au plus proche de cela.
Pour le reste, je suis d'accord avec toi ! Pas réfléchi ça peut vite devenir catastrophique, mais d'ici là qu'on ait au moins 100 personnes dans le monde qui codent régulièrement en Lisaac, on aura j'espère eu le temps d'écrire une bonne lib de maths qui fassent des opérations usuelles avec une syntaxe sympa et des priorités d'opérateurs réfléchis.
Autant les pointeurs, on peut, à mon avis, s'en passer, autant la surcharge des opérateurs est un réel plus, pour faire des libs sympa, réfléchies.
Mais bon, on verra...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ah! C'est la saison de la galinette cendrée!
Posté par Ontologia (site web personnel) . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 4.
J'espère que tu blagues en disant ça ? Utilisé proprement et avec beaucoup de modération, la redéfinition des opérateur peut-être utile mais dans ton exemple, on peut se poser des question sur la signification du "!" et le ".print" à la fin est pas vraiment plus lisible et plus clair qu'une méthode classique.
En voyant ton exemple je me pause les question suivante :
- est ce que le "/" veut encore dire division ou est-ce qu'un boulet en a changer le sens ?
- est-ce que le "!" veut dire factorielle ou autre chose et si oui, qu'est-ce qui est vraiment calculer si la valeur n'est pas ntière ?
- entre le "/" le "!" et le "." qu'elle sont les règles de prioritées et donc est-ce qu'il va bien m'afficher le résultat du calcul et surtout faire le bon calcul ?
On a les opérations infixées, préfixées, postfixées, ... Tu peux donc définir la priorité des opérateurs comme tu le souhaites. C'est fait pour pouvoir écrire tes formules au plus près de l'écriture mathématique classique.
45_020_089/8! fait environ 1116,56 donc il affichera ce résultat (print).
La division reste une division, la factoriel une factorielle.
Et on peut très bien implémenter factoriel dans la lib des réels (4 lignes de code) en prenant la valeur entière.
- Langage avec pointeurs, en enlevant toutefois la possibilité de faire des conneries avec. Qui a dit bricolage ?
On peut critiquer autant qu'on veut les pointeurs mais c'est comme la surcharge des opérateurs, dans les mains d'andouille qui font n'importe quoi ça pête dans tous les sens ; mais dans les mains de bon programmeur qui en usent sans en abuser et qui le font avec précautions, ça fait des choses magnifiques.
Des programmeurs "qui en usent sans en abuser et qui le font avec précautions" et qui sont capable de maitriser la chose, maintenant ça se compte sur les doigts de la main : va bosser dans des SSII, des boites ou on fait du logiciel de gestion, etc... Tu verras que très peu sont capable de faire du code propre sans qu'on soit constamment derrière leur dos, alors faire du code propre avec des pointeurs...
D'après toi pourquoi PHP, qui est un des langage les plus permissif et non rigoureux a eu un tel succès ?
Parce que le programmeur moyen a un niveau assez bas.
Faut faire des langages qui s'adaptent aux gens, pas l'inverse.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Typage statique/dynamique
Posté par Ontologia (site web personnel) . En réponse à la dépêche Go : Un nouveau langage chez Google. Évalué à 3.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Typage statique/dynamique
Posté par Ontologia (site web personnel) . En réponse à la dépêche Go : Un nouveau langage chez Google. Évalué à 9.
...Autant je reste convaincu qu'un compilateur intransigeant ça t'évite de perdre des gains de productivité énormes.
Je vais prendre un cas extrême Caml :
J'ai pas tant que ça coder en caml, mais quand le compilateur te dis "ok c'est bon, vas-y rien à dire"., c'est quand même très rare d'avoir un bug.
Mon expérience de SSII bientôt derrière moi :-) m'a montré que l'essentiel des erreurs (en javouille) qu'on se coltine sur des gros ou moyens projets sont de deux ordres :
- Erreurs imbitables venant du framework lui même imbitable (genre spring et consort)
- Call on null le plus souvent et qq cast exception.
Un bon compilateur qui fais du templating automatique (ie. exécution partielle sur tout ce qui est possible), de la détection de call on null, etc... ça t'évite beaucoup de problème.
Il se trouve que caml avec son inférence de type, rempli pas mal ces tâches, d'où le fait que ça merde rarement après la compil.
Bref, on a des machines bi-core à 2Ghz à 500€, on a pas mal de connaissance en IA, on peut apprendre à faire des compilateurs un tant soit peu intelligent et on aura énormément de productivité à gagner.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ah! C'est la saison de la galinette cendrée!
Posté par Ontologia (site web personnel) . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 2.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Ah! C'est la saison de la galinette cendrée!
Posté par Ontologia (site web personnel) . En réponse au journal Go : Un nouveau langage chez Google. Évalué à 9.
Nicolas a en grande partie répondu à ta question.
Le GC est désactivable, et pour donner un exemple, il est désactivé dans le code du compilateur, au profit d'une gestion à la main assez rigoureuse. Comme tout est en lib, on peut tout à fait définir le delete de c++.
Benoit répète souvent "pas d'allocation à l'insu du programmeur", chose dont je comprend qu'il y a surement un intéret, mais dont je me fiche un peu et qui m'oblige à réfréner mes ardeurs à vouloir implémenter des features très haut niveau dans le langage ;-)
Donc comme disait Nicolas, tu peux faire ce que tu veux avec le GC, et je suis bien d'accord que ça dépend de la situation. Vu la cible de Lisaac (Embarqué, système), il risque de pas servir si souvent que ça....
Alors je répond à ta question, parce que c'est gentillement demandé et que ça a commencé à flipper sur la ML Lisaac.
De ce que j'ai compris de ce langage, particulièrement à lire http://golang.org/doc/go_for_cpp_programmers.html qui est vraiment instructif :
- Le système "objet" est marrant, original, mais j'imagine un peu limité.
En gros ça consiste à déclarer que des interfaces (ie des objets avec que des méthodes vides), et de dire qu'un truc est du type de cet objet si tu écrit une (ou plutot les) méthode qui appartient(nnent) à l'interface. Bon.. Je sens que ce genre d'approche c'est limité, et même limité ça peut péter au runtime.
Enfin on verra.
- Pas d'assertions ni d'exeptions. Bonjour le debug
- Compilation séparée, bonjour les perfs, surtout que là avec un embryon d'objet ça va commencer à poser quelques problèmes niveau perfs... T'as pas de VM pour rattraper le coup ici...
- Pas de redef des opérateurs. Change pas cela dit, par rapport à ce que la plupart des gens connaissent. (Nous, en Lisaac, on est assez fière de pouvoir écrire 45_020_089/8!.print )
- Langage avec pointeurs, en enlevant toutefois la possibilité de faire des conneries avec. Qui a dit bricolage ?
- Concurrence : correspond bien à l'état de l'art. Ca sera déterminant pour aider le langage à progresser.
Mais je pense que ce langage va marcher, car il rempli bien les condition définies par Richard P. Gabriel ( Models of Software Acceptance ) http://www.dreamsongs.com/Files/AcceptanceModels.pdf (relire cette présentation, c'est fabuleux !!) :
- Langage accessible sans nécessiter trop d'abstractions
- Gurus derrière
- Grosse boite derrière (pas de gambler ruin possible)
- Langage ressemblant à l'existant
- Langage au design relativement simple, cohérent et suffisant pour sa cible.
Plus généralement, c'est un langage construit à base de techno disponible dans l'industrie, donc un peu dépassée par ce qui se fait dans la recherche. C'est une approche pragmatique, mais qui a pas mal de limites.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: dbench
Posté par Ontologia (site web personnel) . En réponse au journal Linux, Gentoo, et gcc dans un bateau.... Évalué à 5.
Si la boucle critique tiens dans le cache, alors -O3 peut être meilleur
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: dbench
Posté par Ontologia (site web personnel) . En réponse au journal Linux, Gentoo, et gcc dans un bateau.... Évalué à 6.
Le débat porte donc sur le fait que code plus court = code tenant mieux dans le cache code du processeur, donc meilleur exécution...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Rien de transcendant dirait-on
Posté par Ontologia (site web personnel) . En réponse au journal Noop : encore un nouveau langage ou bien nouvelle génération de langage. Évalué à 2.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# Un évènement important...
Posté par Ontologia (site web personnel) . En réponse à la dépêche Symbian est officiellement « OpenSource ». Évalué à 7.
Symbian sera devant d'après Gartner à 39% de PDM, Android avec 14,5% , iPhone 13,7% , Winplante 12,8%, Blackberry 12,5 %
Note : le % est à 5 Millions d'abonnés...
Sachant qu'il existe des lib d'adaptation du POSIX à Symbian http://en.wikipedia.org/wiki/P.I.P.S._Is_POSIX_on_Symbian , on peut parier que la sauce va monter.
Ca ferait donc 30 % d'Unix, et beaucoup plus en POSIX...
En gros Windows et BlackBerry sont mal barrés.
Pourquoi iPhone ne monterai pas plus haut ?
Parce que l'environnement est trop fermé : le fait qu'il faile payer 99$ pour rendre une application dispo sur l'iPhone, qu'Apple puisse refuser l'appli sans raison et ensuite la copier, que les paiements soient en retard et hasardeux. Tout cela va couter beaucoup à la plateforme.
A suivre..
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: En guise de conclusion
Posté par Ontologia (site web personnel) . En réponse au journal mes présentations: à l'OSDC, et jeudi prochain. Évalué à 2.
Java (Objet à classe, ie. Simula 67), les VM, les IDE évolués (SmallTalk en 1972), etc...
Les métamétatrucs, autrement dit les MDAs ont environ 10 à 15 ans, c'est beaucoup trop jeune pour l'industrie.
La majorité des gens sont extrêmement suiviste, et portent au pinacle ce qui est ensencé sur le marché à un moment donné.
De plus, il faut que les professionnels niveau bac + 2 puissent maîtriser la techno. Je parle pas du bac + 2 intelligent qui sait réfléchir par lui même, s'intéresse aux technos de son métier et a un GNU/Linux chez lui.
Non je parle du Bac + 2 (ou de l'ingénieur d'ailleurs) qui reste avant tout un GENS, qui ne sait que cliquer, et ne connait que ce qu'on lui as appris à l'école.
Tant qu'on ne les auras pas formé, ça passera mal. Mais ça viendra.
En ce qui concerne tes travaux, tu as le problème de tous les chercheurs : la tendance à faire des concepts superbes mais imbitable.
La syntaxe est pas facile, on s'y habitue, mais c'est dur à avaler.
Les concepts sont assez haut niveau, et je pense qu'il y a pas mal de travail de "psychologie cognitive"
Et je pense qu'il manque qq traits sémantique dans N3 :
- Notion d'agent
- Notion de relation entre agents
- Gestion de la notion de temps
- ..
Mais c'est un autre débat...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# Dédié virtualisé
Posté par Ontologia (site web personnel) . En réponse au journal Hébergement mutualisé, petit état des lieux. Évalué à 3.
Vu que je veux m'en servir pour y héberger des robots (et très éventuellement des sites perso à faible traffic), une config minuscule suffirait amplement : Genre 256 Mo de mémoire et 8Go de disque, que je vois chez http://www.phpnet.org/vds.php
Existe t-il des solutions "associatives/coopératives" avec ce genre de service ?
Existe t-il beaucoup d'offre de ce genre ?
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# Erreur 403 sur les captures
Posté par Ontologia (site web personnel) . En réponse au journal [Imagerie] Avancement du projet G'MIC (version 1.3.2.8). Évalué à 2.
http://www.greyc.ensicaen.fr/~dtschump/lfr/splines.jpg
http://www.greyc.ensicaen.fr/~dtschump/lfr/eros.jpg
Etc...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: C'est peut être faux, mais ça m'arrange que les gens le croient
Posté par Ontologia (site web personnel) . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 2.
Je ne pense pas comme toi : On peut tout à fait s'en sortir et créer une économie viable en respectant drastiquement des mesures écologique.
On peut faire travailler énormément de monde en faisant cultiver des légumes en France, fabriquer des télés en France, etc...
Ou pas trop loin en europe, grâce au ferroutage, au transport fluvial, etc..
Les produits deviendraient certes plus cher, mais entretiendraient nos comptes sociaux.
Sans compter les bénéfices des nouvelles industries technologique dédiés à l'économie d'énergie, à l'exploitation de l'énergie solaire sans déchets, etc...
Et à quoi servirait de continuer comme avant, de s'assurer que tout le monde vive bien en allant droit dans le mur, en sachant que nos petits enfants vont crever dans des souffrances atroces ?
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Rien de transcendant dirait-on
Posté par Ontologia (site web personnel) . En réponse au journal Noop : encore un nouveau langage ou bien nouvelle génération de langage. Évalué à 2.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: C'est peut être faux, mais ça m'arrange que les gens le croient
Posté par Ontologia (site web personnel) . En réponse au journal [HS] Pour en finir avec le réchauffement climatique anthropique.... Évalué à 3.
CO2 ou pas, on va droit dans le mur. Il est probable que notre espèce n'y survive pas d'ici quelques générations.
Il faut donc prendre urgemment des mesures. Il faut donc le faire comprendre aux gens d'une façon ou d'une autre. Avec le CO2, en montrant que les îles du pacifique disparaissent sous l'eau, en montrant les ours crever sur la banquise qui disparait, je m'en fou, mais il faut le faire comprendre aux gens, pour leur bien, et pour justement rester dans des régimes démocratiques.
Car si on ne prend pas des mesures maintenant, des dictatures s'installeront pour gérer la crise, devenu trop aigue...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker