Et je te signale que tu entres ici dans la question de la portabilité des API
Ce n'est pas un problème d'API : on parle bien de la définition du langage. Le C te permet de par sa grammaire d'obtenir des résulats différents d'une machine à l'autre là où le Java ou C# ne te le permettent pas. Ce n'est pas un comportement différent de l'API : le problème vient bien de la trop forte liaison entre les types primitifs du C avec l'architecture hardware, les I/O fichiers binaires ne sont qu'un révélateur, les API spécialisés en C ne sont là que pour cacher les lacunes natives du langage. Java ou C# n'utilises pas des API pour régler le problème, mais définissent une machine virtuelle qui constitue une véritable abstraction de l'hardware, et ouvre donc la voie à une portabilité totale du code qui le cible. En fait le C# et Java ne sont pas du tout portables : ils ciblent avant tout une seule machine, avec une architecture bien précise. L'astuce consistant en fait à porter cette machine qui est une machine virtuelle pour obtenir la portabilité de tout ce qui tourne au dessus.
dans la communication avec l’extérieur.
Peut-on vraiment parler de communication avec l'extérieur ? Le fichier ne voit pas sa structure modifiée lorsque tu le changes de machine. Par contre le comportement de ton programme, si.
[^] # Re: Bonne nouvelle
Posté par TImaniac (site web personnel) . En réponse à la dépêche Que penser du rachat de Novell ?. Évalué à 2.
Ce n'est pas un problème d'API : on parle bien de la définition du langage. Le C te permet de par sa grammaire d'obtenir des résulats différents d'une machine à l'autre là où le Java ou C# ne te le permettent pas. Ce n'est pas un comportement différent de l'API : le problème vient bien de la trop forte liaison entre les types primitifs du C avec l'architecture hardware, les I/O fichiers binaires ne sont qu'un révélateur, les API spécialisés en C ne sont là que pour cacher les lacunes natives du langage. Java ou C# n'utilises pas des API pour régler le problème, mais définissent une machine virtuelle qui constitue une véritable abstraction de l'hardware, et ouvre donc la voie à une portabilité totale du code qui le cible. En fait le C# et Java ne sont pas du tout portables : ils ciblent avant tout une seule machine, avec une architecture bien précise. L'astuce consistant en fait à porter cette machine qui est une machine virtuelle pour obtenir la portabilité de tout ce qui tourne au dessus.
dans la communication avec l’extérieur.
Peut-on vraiment parler de communication avec l'extérieur ? Le fichier ne voit pas sa structure modifiée lorsque tu le changes de machine. Par contre le comportement de ton programme, si.