Non, c'est pareil, un peu de code JNI et on appelle le C direct.
inotify-java est juste une glue avec ce code JNI déjà créé par quelqu'un autre.
Cela n'a rien à voir avec être prêt du système, la question est juste de savoir si oui ou non il existe une bibliothèque dans un langage donné ? Dans pratiquement tous les langages (Java, Python, Perl...), on fait un binding C, mais l'inverse pourrait être vrai. Il est tout à fait possible d'appeler du java depuis du C (on pourrait imaginer de créer une interface CGI dans Tomcat par exemple).
D'ailleurs être prêt du système ne veut pas dire grand chose au final, il y a des langages dans lesquels on est plus proche de l'architecture du CPU, dans tous les cas, un appel système entraîne un changement de contexte, alors JVM ou pas, ça ne change pas grand chose.
Je ne parle même pas du fait que pour être prêt du CPU en C, il faut compiler pour l'architecture donnée alors qu'une JVM ou équivalent peut s'adapter exactement au système (utilisation ou non d'unités vectorielles, utilisation d'unités de calcul flottant...)
[^] # Re: Chacun son style
Posté par bad sheep . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 2.
Non, c'est pareil, un peu de code JNI et on appelle le C direct.
inotify-java est juste une glue avec ce code JNI déjà créé par quelqu'un autre.
Cela n'a rien à voir avec être prêt du système, la question est juste de savoir si oui ou non il existe une bibliothèque dans un langage donné ? Dans pratiquement tous les langages (Java, Python, Perl...), on fait un binding C, mais l'inverse pourrait être vrai. Il est tout à fait possible d'appeler du java depuis du C (on pourrait imaginer de créer une interface CGI dans Tomcat par exemple).
D'ailleurs être prêt du système ne veut pas dire grand chose au final, il y a des langages dans lesquels on est plus proche de l'architecture du CPU, dans tous les cas, un appel système entraîne un changement de contexte, alors JVM ou pas, ça ne change pas grand chose.
Je ne parle même pas du fait que pour être prêt du CPU en C, il faut compiler pour l'architecture donnée alors qu'une JVM ou équivalent peut s'adapter exactement au système (utilisation ou non d'unités vectorielles, utilisation d'unités de calcul flottant...)