Appeler du Java depuis .Net

Deux mondes s’affrontent: Java et .Net. Chacun choisi son camp, ou choisi les deux… moi j’ai la double nationalité :) Mais quand les deux mondes doivent alors communiquer? Je fais l’interprète. Voila le topo:
J’ai une application .Net qui a besoin de manipuler des classes Java, et pour se faire je passe par C++/CLI: comment avoir un pied dans du .Net et un autre dans du natif C++.
Lisez la suite de cette entrée »

A la conquête du Web 3.0

J’ai eu une discutions intéressante ce midi au sujet du buzz en ce moment: Adobe open-source Flash! Je vois ça comme un premier pas vers la conquête du Web 3.0. Une guerre déjà entamé entre Adobe, Microsoft et le monde libre.
Lisez la suite de cette entrée »

Java-Gnome

Comme vous le savez, l'environnement Gnome sous linux utilise les composants graphiques de GTK, qui est à la fois portable mais qui de plus possède de nombreux "binding" dans de nombreux langages. Java n'est pas en reste, et en plus de GTK, Gnome-Java propose les "bindings" vers Glade, GConf, Cairo, etc…

Bref, tout pour faire une application qui s'intégre bien dans Gnome, le tout réalisé dans l'élégant langage qu'est le Java , et tout en pouvant bénefficier du très puissant IDE Eclipse. Et puis le fin du fin, c'est de générer un exécutable natif sous linux à l'aide d'un script ANT qui compile avec GCJ (de toutes façon, vous avez déjà vu Gnome sous Windows???).

Alors, après une petite soiré de dev, j'ai réalisé un petit carnet d'adresse en Java compilé en natif :

Carnet d'adresse

Vous pouvez télécharger les sources ici et les binaires ici

Bien évidement, la question se pose pas mal dans la communauté : les futures applications Gnome… en C++, Java ou Mono ?

Java for gaming :)

Et oui, Java n’est pas incompatible avec les jeux !

Personnellement, je ne reproche pas grand chose à Java (surtout depuis la v5), sauf la conso en mémoire… Bref, Java c’est aussi des outils comme Eclipse (vivement la 3.1) [http://www.eclipse.org/] et des Frameworks comme jME [http://www.mojomonkeycoding.com].

Non non, jME ce n’est pas “Java for Mobile Edition” mais ici “jMonkey Engine”.

jME est donc un Framework Java pour faire des jeux (game engine) qui repose sur une API de Java qui s’interface avec OpenGL : LWJGL pour “Lightweight Java Game Library”.

“Lightweight” car cette API a pour ambition de s’intégrer dans les systèmes embarqués (les portables ^^).

La combinaison des deux permet tout de même des résultats très appréciables :

[exemple de chargement de fichier 3DS avec animations]

J’ai commencé à faire un petit jeu… mais je passe du coq à l’âne… il me faudrait plus de temps.

Geeks

Bon, pour les Geeks comme moi, j’ai découvert un truc sympa aujourd’hui : Mono+ikvm

Explication : .Net (de Microsoft) s’impose comme un standard dans le développement d’applications “fenêtrées”, mais bon voila : un standard oui, mais sur Windows avec le Framework .Net de Microsoft…

C’est là qu’intervient Mono (http://www.mono-project.com/about/index.html).

Mono est un “altérnative” à .Net (voir sur le site pour une explication plus détaillée) cad que grâce à Mono, on peut compiler et exécuter des applications .Net. Résultat, .Net n’est plus une exclusivité Microsoft mais s’étend aux plateformes Linux Mac et autres…

Ikvm : kesako ? (http://www.ikvm.net/)

Qui ne connais pas Java ? Et bien ikvm c’est comme le JDK de Sun… compatible .Net !

En effet, ikvm regroupe une machine virtuelle faite en .Net, l’implémentation des classes Java en .Net ainsi que des outils permettant la compatibilité .Net/Java.

En gros, tu fais une appli Java, que tu compiles avec ikvm qui te donne un joli petit exe .Net :). Ou même un petit composant Java qui s’intègre dans une appli .Net.

Et là on me répond, et l’avantage de Java alors ? Qu’en est-il du « code once, run anywhere » ? Bingo, la je réponds Mono !

Voila comment faire de Java un langage utilisable pour des applis natives avec un code portable.

Et là on me pose la question : « Et J# ou C# de Microsoft ? »… ok, à part profiter des outils existant pour Java (Eclipse, etc…) je ne vois pas d’autres intérêts. Mais ça demande à être étudié, non ^^ ?

Merci à Will Senn (http://www.codeproject.com/cpnet/hellomono.asp)

Pour les plus Geeks d’entre vous : Eclipse tournant à l’aide d’IKVM à l’aide de Mono sur Cygwin+Xfree sur Windows2000… rien que ça ! (voir sur le site de Mono)