Java n'est pas si lent.

Je viens de me balader sur un secteur des forums que j'avais loupé jusqu'ici, les fils Heox de début 2005, répertoriés ailleurs.

Donc je suis tombé sur le débat sur les outils. Et je m'empresse d'y ajouter mon grain de sel. D'abord pour la petite histoire, j'ai développé en une bonne dizaine de langages informatiques, depuis mes premiers programmes en fortran dans les années 70... putain ça me rajeunit pas, ça. J'ai fait (entre autres) du C, du C++, du pascal objet (base de Delphi) et du Java.

Depuis que j'ai commencé à pratiquer (en 1997) ans je ne veux plus entendre parler d'autre chose que de Java.

D'abord, pour ce qui est de la rapidité, j'ai fait des benchmarks et j'ai constaté que suivant les applis, on est à un rapport quatre à huit entre java interprété et C++. Pas cent, comme certains le disent. Pour les interfaces graphiques, on est même sans doute plus près de deux, mais ce sont des choses non mesurables. Ce qu'il faut savoir est qu'il existe des compilateurs java. J'en utilise un : jet. Fait par une équipe de russes à la "cité des étoiles", là où les russkoffs ont pondu leur station spaciale et les softs qui allaient avec. Très bon, bien optimisé, et dans les 10 à 20% en dessous de C ou C++ optimisé, "optimisé" voulant dire plein d'astuces de programmation qui rendent la maintenance pourrie. Par rapport à du C++ non optimisé, à peu près pareil.

Inconvénient du compilo Jet, la version personnelle est gratos, mais ne permet pas de fabriquer des ".exe" distribuables : ça ne tourne que sur la bécane qui a servi à compiler. Par contre, il existe une version payante, de mémoire dans les 1000 roros, qui permet de faire des exécutables pour windaube et linux.

L'argument "c'est lent" ayant ainsi eu le cou tordu, voyons maintenant les avantages.

1 - Les bibliothèques sont standard (faites par Sun et gratos), extrêmement riches, très fiables. Programmer revient le plus souvent à faire son marché intelligemment.

2 - La progra, orientée exclusivement "objet" est très facile à debugger et surtout à maintenir. On programme vite et bien. Par exemple il n'y a pas de pointeurs ni de gestion de mémoire en java, alors que tout programmeur C ou C++ sait que les pointeurs pétés et les fuites de mémoire sont le cauchemar de la phase industrialisation des softs. Oui, pour les novices, les applis informatiques fuient, comme les vieux moteurs :)

3 - C'est compact : il faut deux fois moins de lignes de java que de C++ pour faire des choses voisines (sauf en scientifique évidemment). Et chacun sait que la productivité en développement se mesure en lignes par jour, ou encore qu'il existe une barrière de la complexité pour un informaticien moyen de l'ordre de 20 à 30 000 lignes par appli. Au delà, c'est du travail d'équipe avec des méthodes lourdes, une structuration forte, des docs chiantes à maintenir, etc...

4 - Java est entièrement portable, entre PC et Mac, entre Linux et Windaube, voire même sur les pda ou les téléphones portables !

Donc on ne me ferait pour rien au monde, à moins bien sur de me payer cher, revenir à C++ ou Delphi. Si les webmasters de HEO me filent un coin de serveur avec un répertoire, le login et password qui vont avec, j'aurai plaisir à y mettre en ligne quelques démos de softs java, par exemple un petit interface de visualisation carto que j'avais fait en quelques heures - allez j'exagère, j'ai bien du y passer deux jours - pour montrer ce qu'on pouvait faire pour suivre en temps réel "the race" ou "around alone", ou encore des instruments (anémo, girouette) animés.

J'ai même beaucoup plus bluffant à vous montrer, mais faudra attendre encore quelques semaines.

L'équipage
13 fév. 2006
14 fév. 2006

Pour faire simple ...
tu m'envoies un zip de la distribution à installer et on s'arrange avec ... je te mets mon mail en message direct (because spammeurs).

15 fév. 2006

Ok je prépare ça
sous 48 h. C'était des applis java autonomes, faut les passer en applet, et comme toujours on s'emmerde à revenir dans des trucs qu'on a fait il y a cinq ans...
En plus, les interfaces html-java ont changé. La balise "applet" est obsolète. Faut que je revoie un peu ça.

15 fév. 2006

C'est la balise
"applet" du html qui est obsolète. On emploie aujourd'hui soit "object", avec des ruses pour que ça passe aussi bien avec des navigateurs respectueux des normes (firefox, ...) qu'avec des daubes (Internet Explorer).

Dans sa grande sagesse, le W3C a estimé que "java" devait être banalisé, au même titre que flash, etc... pour exécuter des fonctions non html, et qu'il convenait que l'on utilise la même balise ("object") pour toutes ces applications externes (plug-ins).

15 fév. 2006

Obsolète ?
ça tombe bien, la dernière fois que j'ai fait (pour la seule fois) un truc en java c'était il y a 5 ans :mdr:

15 fév. 2006

ça marche ...
bien, je vais essayer de le mettre en ligen demain :-)

A l'interieur du phare Amédée Nouvelle Calédonie

Phare du monde

  • 4.5 (135)

A l'interieur du phare Amédée Nouvelle Calédonie

2022