Combiner Java et Smalltalk
Jusqu’à présent, la seule façon d’utiliser Java depuis Smalltalk était d’utiliser Frost, une implémentation de la JVM en Java (mais non fini) ou encore Smalltalk/X qui contient également une JVM. Joachim Geidel a annoncé sur la liste VWNC qu’il avait porté JNIPort, une librairie de classe de Dolphin Smalltalk permettant de s’interfacer à JNI (Java Native Interface) en VisualWorks. L’intérêt, c’est que l’on a accés immédiat à l’ensemble des APIs de Java depuis Smalltalk. L’inconvénient, c’est bien sur de devoir passer à chaque fois entre les deux machines virtuelles, ce qui peut être assez couteux en vitesse.
Voila un exemple d’utilisation de JNIPort :
jvm := JVM current.
class := jvm findClass: #'java.lang.System'.
class currentTimeMillis_null.
"équivalent à java.lang.System.currentTimeMillis();"
string := class getProperty_String: 'java.vm.vendor'.
"--> a java.lang.String(Sun Microsystems Inc.)"
string substring_int: 3 int: 7.
retourne une instance : a java.lang.String( Mic)