JKB writes:
| Le 03-07-2009, ? propos de
| Re: Du C ou du Java dans les systèmes embarqués automobile ?,
| Erwan David ?crivait dans fr.comp.lang.c :
| > JKB écrivait :
| >
| >> Le problème, c'est surtout quel'esprit fantassin n'existe plus. Plus
| >> il y a de couches d'abstraction (objet ou autres, je ne suis pas
| >> raciste !) plus il y a de bugs potentiels. J'en ai encore un exemple récent.
| >> La fonction astar de la libbost demande en moyenne 2s pour calculer un
| >> itinéraire sur un département français (et 600 Mo de mémoire,
| >> passons...). En réécrivant le truc en Fortran95, non seulement la
| >> vitesse d'exécution a été multipliée par 7, mais l'occupation mémoire
| >> n'est plus que de 65 Mo ! Bref, Java, C++ et les autres, ce sont
| >> vraiment des usines à gaz. Si encore il n'y avait pas de fuites...
| >
| > Là c'est plus un problème d'empilement de frameworks que de langage.
|
| Pas que. Lorsqu'on programme directement en C ou en Fortran, on
| attaque directement le problème frontalement. L'avantage, c'est qu'on
| sait exactement ce que le code va faire. Lorsqu'on attaque avec du C++
| ou du Java (ou tout autre langage objet), on ne sait plus exactement ce
| qui se passe.
uniquement si on ne sait pas ce c'est le problème. Dans ce cas, c'est
pas le langage. C'est le programmeur.
JKB <knatschke@koenigsberg.fr> writes:
| Le 03-07-2009, ? propos de
| Re: Du C ou du Java dans les systèmes embarqués automobile ?,
| Erwan David ?crivait dans fr.comp.lang.c :
| > JKB <knatschke@koenigsberg.fr> écrivait :
| >
| >> Le problème, c'est surtout quel'esprit fantassin n'existe plus. Plus
| >> il y a de couches d'abstraction (objet ou autres, je ne suis pas
| >> raciste !) plus il y a de bugs potentiels. J'en ai encore un exemple récent.
| >> La fonction astar de la libbost demande en moyenne 2s pour calculer un
| >> itinéraire sur un département français (et 600 Mo de mémoire,
| >> passons...). En réécrivant le truc en Fortran95, non seulement la
| >> vitesse d'exécution a été multipliée par 7, mais l'occupation mémoire
| >> n'est plus que de 65 Mo ! Bref, Java, C++ et les autres, ce sont
| >> vraiment des usines à gaz. Si encore il n'y avait pas de fuites...
| >
| > Là c'est plus un problème d'empilement de frameworks que de langage.
|
| Pas que. Lorsqu'on programme directement en C ou en Fortran, on
| attaque directement le problème frontalement. L'avantage, c'est qu'on
| sait exactement ce que le code va faire. Lorsqu'on attaque avec du C++
| ou du Java (ou tout autre langage objet), on ne sait plus exactement ce
| qui se passe.
uniquement si on ne sait pas ce c'est le problème. Dans ce cas, c'est
pas le langage. C'est le programmeur.
JKB writes:
| Le 03-07-2009, ? propos de
| Re: Du C ou du Java dans les systèmes embarqués automobile ?,
| Erwan David ?crivait dans fr.comp.lang.c :
| > JKB écrivait :
| >
| >> Le problème, c'est surtout quel'esprit fantassin n'existe plus. Plus
| >> il y a de couches d'abstraction (objet ou autres, je ne suis pas
| >> raciste !) plus il y a de bugs potentiels. J'en ai encore un exemple récent.
| >> La fonction astar de la libbost demande en moyenne 2s pour calculer un
| >> itinéraire sur un département français (et 600 Mo de mémoire,
| >> passons...). En réécrivant le truc en Fortran95, non seulement la
| >> vitesse d'exécution a été multipliée par 7, mais l'occupation mémoire
| >> n'est plus que de 65 Mo ! Bref, Java, C++ et les autres, ce sont
| >> vraiment des usines à gaz. Si encore il n'y avait pas de fuites...
| >
| > Là c'est plus un problème d'empilement de frameworks que de langage.
|
| Pas que. Lorsqu'on programme directement en C ou en Fortran, on
| attaque directement le problème frontalement. L'avantage, c'est qu'on
| sait exactement ce que le code va faire. Lorsqu'on attaque avec du C++
| ou du Java (ou tout autre langage objet), on ne sait plus exactement ce
| qui se passe.
uniquement si on ne sait pas ce c'est le problème. Dans ce cas, c'est
pas le langage. C'est le programmeur.
Non. Tu peux dire tout ce que tu veux, mais lorsque tu écris un
malloc() en C, tu sais exactement ce que tu fais (hors problème
d'implantation du malloc sur l'OS en question). Lorsque tu crées des
objects en C++ ou en Java, tu ne sais plus ce que tu fais _exactement_.
Tu sais exactement ce que tu cherches à faire, mais tu ne sais pas
exactement ce que le compilateur va générer comme code. C'est exactement
pour cela qu'on se retrouve avec des logiciels style usine à gaz qui
utilisent les ressources des machines comme des gorets. Par contre,
Non. Tu peux dire tout ce que tu veux, mais lorsque tu écris un
malloc() en C, tu sais exactement ce que tu fais (hors problème
d'implantation du malloc sur l'OS en question). Lorsque tu crées des
objects en C++ ou en Java, tu ne sais plus ce que tu fais _exactement_.
Tu sais exactement ce que tu cherches à faire, mais tu ne sais pas
exactement ce que le compilateur va générer comme code. C'est exactement
pour cela qu'on se retrouve avec des logiciels style usine à gaz qui
utilisent les ressources des machines comme des gorets. Par contre,
Non. Tu peux dire tout ce que tu veux, mais lorsque tu écris un
malloc() en C, tu sais exactement ce que tu fais (hors problème
d'implantation du malloc sur l'OS en question). Lorsque tu crées des
objects en C++ ou en Java, tu ne sais plus ce que tu fais _exactement_.
Tu sais exactement ce que tu cherches à faire, mais tu ne sais pas
exactement ce que le compilateur va générer comme code. C'est exactement
pour cela qu'on se retrouve avec des logiciels style usine à gaz qui
utilisent les ressources des machines comme des gorets. Par contre,
Des que tu rajoutes un GC, ca devient la merde. Je ne sais pas s'il existe
des implementations de java prevues pour de l'embarque, sans GC (j'espere
qu'il y en a) et je ne sais pas a quel point les bibliotheques susceptibles
d'etre utilisees savent dans quel environnement elles evoluent).
Des que tu rajoutes un GC, ca devient la merde. Je ne sais pas s'il existe
des implementations de java prevues pour de l'embarque, sans GC (j'espere
qu'il y en a) et je ne sais pas a quel point les bibliotheques susceptibles
d'etre utilisees savent dans quel environnement elles evoluent).
Des que tu rajoutes un GC, ca devient la merde. Je ne sais pas s'il existe
des implementations de java prevues pour de l'embarque, sans GC (j'espere
qu'il y en a) et je ne sais pas a quel point les bibliotheques susceptibles
d'etre utilisees savent dans quel environnement elles evoluent).
compilo java, le code source et la JVM (parce la sacro-sainte
portabilité java, elle me fait souvent rigoler, un code C, ADA ou
Fortran bien écrit étant généralement bien plus portable que du java.
J'ai un souvenir ému du passage d'un programme Java d'une jkd Sun sous
Linux à la même version sous Windows. Déjà, ce n'était pas simple. Mais
on a touché le sublime le jour où on a utilisé une J9 sous Linux/ppc ou
une JVM Sun sous Solaris et l'absurde avec une JVM HP sous OpenVMS parce
que Java a été pensé pour des chemins du type Unix et absolument pas
pour des chemins à la VMS node::disk:[directory]file.extension;version !).
compilo java, le code source et la JVM (parce la sacro-sainte
portabilité java, elle me fait souvent rigoler, un code C, ADA ou
Fortran bien écrit étant généralement bien plus portable que du java.
J'ai un souvenir ému du passage d'un programme Java d'une jkd Sun sous
Linux à la même version sous Windows. Déjà, ce n'était pas simple. Mais
on a touché le sublime le jour où on a utilisé une J9 sous Linux/ppc ou
une JVM Sun sous Solaris et l'absurde avec une JVM HP sous OpenVMS parce
que Java a été pensé pour des chemins du type Unix et absolument pas
pour des chemins à la VMS node::disk:[directory]file.extension;version !).
compilo java, le code source et la JVM (parce la sacro-sainte
portabilité java, elle me fait souvent rigoler, un code C, ADA ou
Fortran bien écrit étant généralement bien plus portable que du java.
J'ai un souvenir ému du passage d'un programme Java d'une jkd Sun sous
Linux à la même version sous Windows. Déjà, ce n'était pas simple. Mais
on a touché le sublime le jour où on a utilisé une J9 sous Linux/ppc ou
une JVM Sun sous Solaris et l'absurde avec une JVM HP sous OpenVMS parce
que Java a été pensé pour des chemins du type Unix et absolument pas
pour des chemins à la VMS node::disk:[directory]file.extension;version !).