[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