Bonjour,
Je me pose quelques question sur le language smalltalk et l'environnement squeak. Je viens de débuter ma découverte et mon apprentissage de ce univers passionnent.
Je vais tenter d'apporter quelques réponses, mais pas de garantie qu'elles sont exactes.
A) Qu'est-ce que Tweak ? un nouveau framework graphique ?
Tweak est destiné à remplacer Morphic et pour le moment, tu peux le voir en action dans Croquet.
B) Il y a t-il un binding pour pouvoir dévlopper des interfaces graphique avec GTK+ sous squeak ?
Pas à ma connaissance. Par contre il existe un projet pour exploiter wxWidgets avec Squeak. http://homepage.mac.com/rgayvert/wxsqueak.html
C) Quels est la vitesse d'exercution d'un programme dévlopper avec smalltalk par rapport au C ?
En théorie c'est plus lent, mais en pratique, la plupart des OS sont tellement devenus lourds et qu'à force de passer à travers des couches de frameworks, on finit par avoir des performances assez similaires.
Il ne faut pas trop se fier à la lenteur de l'interface graphique de Squeak, Morphic n'est pas des plus performant dans le domaine, pour déterminer la performance générale de son implémentation. Une bonne partie des primitives et certaines classes de Squeak sont en fait compilées en C et incluses dans la VM ou externalisées sous forme de plug-ins. Les plug-ins ne sont pas très difficiles à écrire, juste que Slang n'est pas très documenté.
D) Existe t-il des compilateurs smalltalk qui génére des programmes avec une rapiditer d'exercution équivalent au language C ?
F) Il y t-il des VM qui compilent du Byte-Code smalltalk vers du code natif pendant l'exercution d'une méthode comme une JIT ?
G) Est-ce que s'est possible d'optimiser un byte-code vers du code natif pour une vitesse d'exercution rapide sur une machine à registre ?
Le mieux est de voir ce qu'Exupery propose. http:// minnow.cc.gatech.edu/squeak/Exupery
Certaines implémentations de smalltalk sont connues pour être très rapides, mais d'un autre côté, elles ne proposent pas toujours les fonctions multimédias que l'on retrouve dans Squeak.
E) Quel est la différence de rapidité d'une VM smalltalk par rapport à une VM java ?
Le JIT donne un avantage à Java. Mais à nouveau, tout dépend de l'implémentation et parfois du domaine.
H) Existe t-il des processeurs qui peuvent directement exercuter le byte-code smalltalk sans passer par une interpréttion ?
Quand tu sauves/valides une méthode, elle est compilée en byte-code et c'est ce byte-code qui est utilisé lorsque tu appelles cette méthode. Le navigateur de classes permet de voir le byte-code d'une méthode (voir le dernier bouton qui propose une liste des modes de visualisation).
Comme je le comprends, le fichier .image ne contient que le byte- code, .changes le code source des classes ajoutées à l'image de base et .source le code source de l'image de base. Si tu supprimes les fichiers .changes et .source, le code source que tu vois dans le navigateur de classes est en fait une forme recompilée du byte-code (les arguments deviennent t1, t2, etc. , pas de commentaires et le code à parfois une drôle de forme).
I) Qu'est qui fait que le language smalltalk n'est pas plus utilisée dans le monde de l'entreprise et du logiciel libre ?
L'effet du champ de distorsion mise à part, Java n'est pas plus utilisé qu'un autre langage.
La plupart des produits commerciaux et de très nombreux logiciels libres sont encore et toujours écrits en C/C++. La VM de Java ne fait exception.
Dans le monde de l'entreprise, c'est du PowerBuilder et du VisualBasic à tout va, sans compter SQL et PL/SQL qui constituent souvent la totalité de la logique métier des applications d'entreprise.
Je ne pense pas que l'on puisse dire qu'il n'y a pas beaucoup de logiciels libres écrits en Smalltalk. Plus de 500 projets sont répertoriés sur SqueakMap, au moins une centaine sur Squeaksource et le référentiel StORE de VisualWorks en a sans doute tout autant. Et la plupart de ces projets ne font pas double emploi avec d'autres. Sans compter tous les projets E-Toys créés par des enfants et des adultes, ont dont on ne voit qu'une infime partie.
Quant à l'entreprise, il paraît qu'AMD l'utilise sur sa chaîne de production et bien d'autres, mais des gens chez Cincom disent que leurs clients préfèrent rester anonymes.
J) Quel est le language le plus productif : java ou smalltalk ?
Disons que pour écrire une éditeur XML, Java semble imbattable, la preuve en est les dizaines d'éditeurs qui existent, où du moins à la vue des très nombreuses notes d'intention publiées sur SourceForge...
Pour le reste, il n'y a pas photo, une application écrite Java n'existe pas tant qu'elle n'a pas été compilée et exécutée (et je dirais même déployée avec succès). Et en terme de productivité, cela représente beaucoup.
Et puis il y a les navigateurs, pas uniquement celui pour les classes, mais aussi celui qui tue : le Method Finder. Une fois qu'on a touché à celui-ci, plus moyen de revenir en arrière.
Mais bon, comme on me l'a dit un jour, ce dont nous avons besoins n'est pas des gens productifs, mais des gens qui partagent une même base commune afin de pouvoir reprendre le facilement le travail de quelqu'un d'autre.
Merci de répondre à ces quelques question... ;-) @+
didi
Quand tu sauves/valides une méthode, elle est compilée en byte-code et c'est ce byte-code qui est utilisé lorsque tu appelles cette méthode. Le navigateur de classes permet de voir le byte-code d'une méthode (voir le dernier bouton qui propose une liste des modes de visualisation).
Comme je le comprends, le fichier .image ne contient que le byte- code, .changes le code source des classes ajoutées à l'image de base et .source le code source de l'image de base. Si tu supprimes les fichiers .changes et .source, le code source que tu vois dans le navigateur de classes est en fait une forme recompilée du byte- code (les arguments deviennent t1, t2, etc. , pas de commentaires et le code à parfois une drôle de forme).
Serge l'image contient aussi les objets crees et qui ne sont pas GCed.
I) Qu'est qui fait que le language smalltalk n'est pas plus utilisée dans le monde de l'entreprise et du logiciel libre ?
L'effet du champ de distorsion mise à part, Java n'est pas plus utilisé qu'un autre langage.
La plupart des produits commerciaux et de très nombreux logiciels libres sont encore et toujours écrits en C/C++. La VM de Java ne fait exception.
COBOL = 40% des applications qui tournent il me semble Aussi Fortan.
Dans le monde de l'entreprise, c'est du PowerBuilder et du VisualBasic à tout va, sans compter SQL et PL/SQL qui constituent souvent la totalité de la logique métier des applications d'entreprise.
Je ne pense pas que l'on puisse dire qu'il n'y a pas beaucoup de logiciels libres écrits en Smalltalk. Plus de 500 projets sont répertoriés sur SqueakMap, au moins une centaine sur Squeaksource et le référentiel StORE de VisualWorks en a sans doute tout autant. Et la plupart de ces projets ne font pas double emploi avec d'autres. Sans compter tous les projets E-Toys créés par des enfants et des adultes, ont dont on ne voit qu'une infime partie.
Quant à l'entreprise, il paraît qu'AMD l'utilise sur sa chaîne de production et bien d'autres, mais des gens chez Cincom disent que leurs clients préfèrent rester anonymes.
C'est officiel que AMD utilise VW pour gerer sa chaine de production en allemagne. UPS tracking system est aussi en VW
J) Quel est le language le plus productif : java ou smalltalk ?
Disons que pour écrire une éditeur XML, Java semble imbattable, la preuve en est les dizaines d'éditeurs qui existent, où du moins à la vue des très nombreuses notes d'intention publiées sur SourceForge...
Pour le reste, il n'y a pas photo, une application écrite Java n'existe pas tant qu'elle n'a pas été compilée et exécutée (et je dirais même déployée avec succès). Et en terme de productivité, cela représente beaucoup.
Et puis il y a les navigateurs, pas uniquement celui pour les classes, mais aussi celui qui tue : le Method Finder. Une fois qu'on a touché à celui-ci, plus moyen de revenir en arrière.
Mais bon, comme on me l'a dit un jour, ce dont nous avons besoins n'est pas des gens productifs, mais des gens qui partagent une même base commune afin de pouvoir reprendre le facilement le travail de quelqu'un d'autre.
Il y a des societes qui utilisent Smalltalk dans les controlleurs Switch de telephone car c'est beaucoup plus facile de creer dynamiquement une classe. Maintenant il faut qu'il y a enormement d'emotion et d'irrationnel dasn l'utilisation de langage Ex: a UBS ils ont une application qui fait 1.2 Million de transaction avec 7 personnes une equipe de 150 programmeur Java reecrit l'appli qui fait 200 transaction. conclusion: devine quelle appli a ete tue....la smalltalk parce que ce n'est pas X, Y....Z
Stef
squeak-fr@lists.squeakfoundation.org