En partie si tu as installe gst-browser tu peux browser les classes suivantes :
- Object (instVarAt:, become:, changeClassTo:, ...)
- Behavior
- MetaClass
- Class
- CompiledCode (CompiledMethod, et CompiledBlock)
- ContextPart (MethodContext, BlockContext)
- ...
Sinon dans squeak by example tu devrais trouver ton bonheur ;-)
anObject changeClassTo: anObject (on a un prototype ;-) attention il faut faire d'autres changements pour que l'objet aie le format d'une classe qui lui est connu par la VM)
Migration d'instances
anOldObject become: aNewObject
tous les objets ayant une reference anOldObject, cette reference sera remplacée par aNewObject.
CompiledMethod allInstances retourne toutes les instances de la classes CompiledMethod.
Ah et comme tu peux le voir les méthodes sont des objets comme les autres on peut donc les modifier, et faire d'autre choses comme de la couverture de code (pour les tests unitaires par exemple). On remplace des méthodes par des method wrapper ils vont être appelés a la place de la méthode et ils font ensuite leur boulot et vont appeler la bonne méthode ;-)
Et encore plein d'autre choses on peut faire des variables d'instance first-class:
MaClass>>maMethod: [
des truc avants
uneIVar := '123'.
des truc apres
]
uneIVar va envoyer les messages beforeChange et afterChange (il suffit de faire un peut de reecriture)
J'oublie une chose importante le context d'exécution peut etre manipule: thisContext
On peut facilement créer un debuggeur ou implémenter les exceptions en Smalltalk.
Il y a encore plein d'autres choses comme les classe anonymes, ...
Ils ont des points communs et des differences, je vais commencer par les points communs:
Ils implementent tous les deux Smalltalk meme si ce sont deux dialects differents.
Un programme n'utilisant pas les Morph ou GTK devrait etre portable.
Pour ameliorer la compatbilite il existe le projet Grease qui a pour but de rendre les differentes implementations de Smalltalk compatible entre elles. par exemple Iliad et Seaside utilisent Grease ce qui facilite le portage. La syntaxe des fichiers Smalltalk entre Squeak/Pharo et GST est differente (enfin GST supporte les deux):
Il existe un outil pour GST (gst-convert) qui peut importer des fichiers dans le chunk format (le premier exemple) et le convertir dans la syntaxe de GST. Ensuite l'interface graphique sous GST on privilegie l'integration avec GTK (il y a des gens qui bossent sur un binding de Qt). Un autre aventage avec l'approche de GST est que l'on peut utiliser les outils comme git, on n'est pas non plus enferme dans Smalltalk. Par exemple VisualGST est sous github ou meme iliad. Une autre difference en Squeak/Pharo et GST est qu'il est possible avec GST de generer une image a partir du code source. Squeak/Pharo ont une plus grosse communaute d'utilisateurs que GST.
Je n'avais pas pense a cette maniere de presenter :)
Maintenant VisualGST est programme avec VisualGST :)
Je travaille aussi sur un logiciel de backup et il y a des sites webs qui ont ete fait avec VisualGST.
D'autres personnes s'en servent pour enseigner Smalltalk ...
C'est le meme si tu utilises Dolphin Smalltalk, VisualWorks, Squeak, Gemstone ils proposent tous des bibliotheques non standardisees pour l'interface VW utilise son propre framework, de meme pour Squeak/Pharo avec Morphic/Polymorph et je suppose qu'il en va de meme pour Dolphin.
Ah aussi on va bientot avoir un binding de Qt hello world fonctionne :p
Ah mais je ne le prends pas mal, au contraire c'est bien d'avoir des avis negatifs ou positifs. Par exemple pour les images vu que je travaille en "grande resolution" je me rends pas compte de ce defaut.
Je vais bosser pour GNU Smalltalk http://smalltalk.gnu.org/ qui est une implémentation du langage Smalltalk. Mon but est de faire un ide (environnement de développement) pour GNU Smalltalk avec les outils qui vont avec (gestion des versions, debuger, inspecteur, ...). Je bosse deja sur ce projet depuis 1 mois et demi et c'est assez impressionnant de voir avec quelle rapidité on peut développer un ide avec Smalltalk : http://smalltalk.gnu.org/blog/mrgwen/gtklauncher
Le fichier image n'est qu'une partie du problème mais pas la seule le gros problème est que l'interface actuelle de Squeak les Morphs bien que potentiellement intéressante, c'était d'ailleurs un projet de recherche chez Sun avec le langage Self mais ce n'est pas du tout terminé et loin d'être professionnel comme Gtk ou Qt d'ailleurs essaie de faire un simple menu ou une barre d'outils tu vas t'amuser, c'est pas impossible mais rien n'est fini dans les Morphs -_-'
Mais tout n'est pas noir avec des projets comme Seaside Smalltalk reprend du poil de la bête :)
Il y a valgrind ( http://valgrind.org/ ) qui est très bien pour faire du profiling et pour chercher les memory leaks (et d'autres choses suivant les plugins :p)
Je fais un master en cours du soirs à l'umh (en Belgique)
bah pour la spécialité je dirais que c'est principalement orienté "gestion" (recherche opérationnelle, data mining, ...).
Nous pouvons faire des propositions sinon ils nous imposent un sujet, autant faire quelque chose qui me plait et qui soit utile pour tous et pour toutes.
Je ne suis pas tout a fait d'accord essaie de jouer du jazz a l'oreil si le tempo est à 300 tu n'as pas le temps de penser écoute le Pat Metheny trio 99-00 sur sa magnifique version de All the things you are ... C'est monstrueux
Alors oui tu dois pouvoir te lacher jouer à l'oreil mais il faut aussi travailler ses gammes arpèges triades accords ... :D tout en essayant de sortir des sentiers déjà pratiqués en s'ouvrant vers d'autres musiques (flamenco, musique classique indienne, ...) par exemple écoute john mclaughlin ...
La logique est assez simple quand KTabEdit aura les fonctionnalités suivantes ET sans aucuns BUGs :
* Affichage correct et rapide
* Une lecture qui fonctionnera chez mr et mme tout le monde (problème avec arts tse3 esd j'aimerais bien rajouter un support fluidsynth qui fonctionne bien avec arts ...)
* Une impression parfaite
* Edition parfaite
* Sauvegarde en GP3 et 4
alors je passerai en version 0.5.0 pour le moment je bosse bcp sur le soft et il y a tellement de choses a faire pour le rendre plus stable plus performant ...
Et puis il y aura la migration vers KDE 4 et QT4 :p
[^] # Re: réflexif
Posté par Gwenaël Casaccio . En réponse à la dépêche GNU Smalltalk 3.2.3 et VisualGST 0.8.0. Évalué à 2.
- Object (instVarAt:, become:, changeClassTo:, ...)
- Behavior
- MetaClass
- Class
- CompiledCode (CompiledMethod, et CompiledBlock)
- ContextPart (MethodContext, BlockContext)
- ...
Sinon dans squeak by example tu devrais trouver ton bonheur ;-)
[^] # Re: réflexif
Posté par Gwenaël Casaccio . En réponse à la dépêche GNU Smalltalk 3.2.3 et VisualGST 0.8.0. Évalué à 2.
Avoir la classe d'un objet:
anObject class
appeler une methode
anObject perform: #blabla with: 123
Changer le contenu d'une variable d'instance:
anObject instVarAt: 1 put: 123
On peut aussi faire des choses amusantes:
anObject changeClassTo: anObject (on a un prototype ;-) attention il faut faire d'autres changements pour que l'objet aie le format d'une classe qui lui est connu par la VM)
Migration d'instances
anOldObject become: aNewObject
tous les objets ayant une reference anOldObject, cette reference sera remplacée par aNewObject.
CompiledMethod allInstances retourne toutes les instances de la classes CompiledMethod.
Ah et comme tu peux le voir les méthodes sont des objets comme les autres on peut donc les modifier, et faire d'autre choses comme de la couverture de code (pour les tests unitaires par exemple). On remplace des méthodes par des method wrapper ils vont être appelés a la place de la méthode et ils font ensuite leur boulot et vont appeler la bonne méthode ;-)
Et encore plein d'autre choses on peut faire des variables d'instance first-class:
MaClass>>maMethod: [
des truc avants
uneIVar := '123'.
des truc apres
]
uneIVar va envoyer les messages beforeChange et afterChange (il suffit de faire un peut de reecriture)
J'oublie une chose importante le context d'exécution peut etre manipule: thisContext
On peut facilement créer un debuggeur ou implémenter les exceptions en Smalltalk.
Il y a encore plein d'autres choses comme les classe anonymes, ...
[^] # Re: visualgst disparait
Posté par Gwenaël Casaccio . En réponse à la dépêche GNU Smalltalk 3.2.3 et VisualGST 0.8.0. Évalué à 1.
[^] # Re: Pharo
Posté par Gwenaël Casaccio . En réponse à la dépêche GNU Smalltalk 3.2.3 et VisualGST 0.8.0. Évalué à 7.
Ils implementent tous les deux Smalltalk meme si ce sont deux dialects differents.
Un programme n'utilisant pas les Morph ou GTK devrait etre portable.
Pour ameliorer la compatbilite il existe le projet Grease qui a pour but de rendre les differentes implementations de Smalltalk compatible entre elles. par exemple Iliad et Seaside utilisent Grease ce qui facilite le portage. La syntaxe des fichiers Smalltalk entre Squeak/Pharo et GST est differente (enfin GST supporte les deux):
Object subclass: #Foo
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: ''!
!Foo class methodsFor: ''!
unMessage
"InterpretedMethod test"
| b |
....l!
Foo new
unMessage;
blabla;
smalltalkEstCool!
sous GST:
Object subclass: Foo [
unMessage [
^ self blabla
]
]
Foo new
unMessage;
blabla;
smalltalkEstCool
Il existe un outil pour GST (gst-convert) qui peut importer des fichiers dans le chunk format (le premier exemple) et le convertir dans la syntaxe de GST. Ensuite l'interface graphique sous GST on privilegie l'integration avec GTK (il y a des gens qui bossent sur un binding de Qt). Un autre aventage avec l'approche de GST est que l'on peut utiliser les outils comme git, on n'est pas non plus enferme dans Smalltalk. Par exemple VisualGST est sous github ou meme iliad. Une autre difference en Squeak/Pharo et GST est qu'il est possible avec GST de generer une image a partir du code source. Squeak/Pharo ont une plus grosse communaute d'utilisateurs que GST.
Il y a aussi le bon livre de Canol Gokel pour apprendre GNU Smalltalk : http://www.canol.info/books/computer_programming_using_gnu_s(...)
(desole pour les accents clavier qwerty)
[^] # Re: Qui sont tes utilisateurs
Posté par Gwenaël Casaccio . En réponse au journal VisualGST et tutorial GTK pour GNU Smalltalk. Évalué à 2.
Maintenant VisualGST est programme avec VisualGST :)
Je travaille aussi sur un logiciel de backup et il y a des sites webs qui ont ete fait avec VisualGST.
D'autres personnes s'en servent pour enseigner Smalltalk ...
[^] # Re: Qui sont tes utilisateurs
Posté par Gwenaël Casaccio . En réponse au journal VisualGST et tutorial GTK pour GNU Smalltalk. Évalué à 2.
Ah aussi on va bientot avoir un binding de Qt hello world fonctionne :p
# Besoin d'un designer
Posté par Gwenaël Casaccio . En réponse au journal GtkLauncher 0.2.0. Évalué à 1.
J'aimerais bien avoir l'aide d'un designer pour faire une jolie icone et un petit logo
Merci ;)
[^] # Re: Choix du nom
Posté par Gwenaël Casaccio . En réponse au journal GtkLauncher 0.2.0. Évalué à 2.
[^] # Re: Un heureux elu :p
Posté par Gwenaël Casaccio . En réponse au journal Google Summer of Code. Évalué à 1.
[^] # Re: Un heureux elu :p
Posté par Gwenaël Casaccio . En réponse au journal Google Summer of Code. Évalué à 1.
[^] # Re: Un heureux elu :p
Posté par Gwenaël Casaccio . En réponse au journal Google Summer of Code. Évalué à 5.
Cordialement,
Gwenael
# Un heureux elu :p
Posté par Gwenaël Casaccio . En réponse au journal Google Summer of Code. Évalué à 10.
Je vais bosser pour GNU Smalltalk http://smalltalk.gnu.org/ qui est une implémentation du langage Smalltalk. Mon but est de faire un ide (environnement de développement) pour GNU Smalltalk avec les outils qui vont avec (gestion des versions, debuger, inspecteur, ...). Je bosse deja sur ce projet depuis 1 mois et demi et c'est assez impressionnant de voir avec quelle rapidité on peut développer un ide avec Smalltalk : http://smalltalk.gnu.org/blog/mrgwen/gtklauncher
[^] # Re: Heu...
Posté par Gwenaël Casaccio . En réponse au journal Petit soft utile pour les musiciens. Évalué à 2.
Comme je l'ai dis il genere un accompagnement : c'est grosso modo un groupe virtuel avec le quel tu improvises (joue un solo) sinon http://fr.wikipedia.org/wiki/Accompagnement_(musique)
[^] # Re: [url]
Posté par Gwenaël Casaccio . En réponse au journal Petit soft utile pour les musiciens. Évalué à 5.
[^] # Re: Potentiellement très utile pour le projet Squeak
Posté par Gwenaël Casaccio . En réponse à la dépêche SqueakGtk. Évalué à 3.
Le fichier image n'est qu'une partie du problème mais pas la seule le gros problème est que l'interface actuelle de Squeak les Morphs bien que potentiellement intéressante, c'était d'ailleurs un projet de recherche chez Sun avec le langage Self mais ce n'est pas du tout terminé et loin d'être professionnel comme Gtk ou Qt d'ailleurs essaie de faire un simple menu ou une barre d'outils tu vas t'amuser, c'est pas impossible mais rien n'est fini dans les Morphs -_-'
Mais tout n'est pas noir avec des projets comme Seaside Smalltalk reprend du poil de la bête :)
[^] # Re: question bête ?
Posté par Gwenaël Casaccio . En réponse au journal Squeak GTK. Évalué à 2.
[^] # Re: question bête ?
Posté par Gwenaël Casaccio . En réponse au journal Squeak GTK. Évalué à 1.
Un binding de GTK+ en Smalltalk est simplement la possibilité de construire des interfaces avec GTK+ (qui est programmé en C) en Smalltalk.
Il faut patcher les sources de la vm pour avoir le support des callbacks...
Je crois qu'il est possible de lancer Squeak sans les morphs mais je peux me planter le mieux est de demander dans la mailing list de squeak-dev.
Merci ;)
[^] # Re: Et ???
Posté par Gwenaël Casaccio . En réponse au journal Squeak GTK. Évalué à 10.
Je ne comprends pas vraiment ce qui te dérange dans mon journal ???
# Happy GNU Year 2008
Posté par Gwenaël Casaccio . En réponse au journal Happy GNU Year 2008. Évalué à 1.
[^] # Re: impressive
Posté par Gwenaël Casaccio . En réponse au journal Ce que les développeurs doivent savoir sur la mémoire. Évalué à 2.
[^] # Re: Encadrement...
Posté par Gwenaël Casaccio . En réponse au journal Cherche idée pour un mémoire. Évalué à 1.
bah pour la spécialité je dirais que c'est principalement orienté "gestion" (recherche opérationnelle, data mining, ...).
Nous pouvons faire des propositions sinon ils nous imposent un sujet, autant faire quelque chose qui me plait et qui soit utile pour tous et pour toutes.
[^] # Re: hum
Posté par Gwenaël Casaccio . En réponse au journal Cherche idée pour un mémoire. Évalué à 3.
[^] # Re: Autre possibilité:
Posté par Gwenaël Casaccio . En réponse au journal Report de la sortie de KDE 4.0. Évalué à 2.
http://techbase.kde.org/Getting_Started/Build/KDE4
Attention c'est le svn donc ca peut aussi ne pas compiler :p
[^] # Re: Moi je dis...
Posté par Gwenaël Casaccio . En réponse à la dépêche KTabEdit-0.0.8 ou comment écrire ses partitions pour votre guitare. Évalué à 3.
Alors oui tu dois pouvoir te lacher jouer à l'oreil mais il faut aussi travailler ses gammes arpèges triades accords ... :D tout en essayant de sortir des sentiers déjà pratiqués en s'ouvrant vers d'autres musiques (flamenco, musique classique indienne, ...) par exemple écoute john mclaughlin ...
[^] # Re: numero de version
Posté par Gwenaël Casaccio . En réponse à la dépêche KTabEdit-0.0.8 ou comment écrire ses partitions pour votre guitare. Évalué à 2.
* Affichage correct et rapide
* Une lecture qui fonctionnera chez mr et mme tout le monde (problème avec arts tse3 esd j'aimerais bien rajouter un support fluidsynth qui fonctionne bien avec arts ...)
* Une impression parfaite
* Edition parfaite
* Sauvegarde en GP3 et 4
alors je passerai en version 0.5.0 pour le moment je bosse bcp sur le soft et il y a tellement de choses a faire pour le rendre plus stable plus performant ...
Et puis il y aura la migration vers KDE 4 et QT4 :p
J'ai du boulot :D