[Squeak-fr] Re: Question sur smalltalk et squeak
Dominique Dutoit
dominiqued at versateladsl.be
Sam 28 Mai 10:56:48 CEST 2005
> 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
Plus d'informations sur la liste de diffusion Squeak-fr