Non. C'est l'impression que tu as, grâce notamment au standard AT et son BIOS qui verrouille un minimum le boot et l'accès basique aux périphériques, et grâce à Windows derrière (ou Linux, soyons honnêtes car il fait à peu près la même chose) qui implémente un HAL pour, justement, éviter d'avoir à
trop devoir gérer le matériel spécifiquement.
Tu peux avoir des CPU différents, des chipsets différents, des mémoires différentes, des bus machine différents (ISA, VLB, PCI, AGP, PCI-E), des connexions aux HDD différentes (IDE, E-IDE, SCSI, SATA, SATA-2, USB, Firewire, mode RAID ou pas), des formatages différents, des périphériques absents, etc. Entre deux machines "PC",
une fois sorti du BIOS, tu peux très bien ne pas avoir UN SEUL driver (donc, pas un seul composant !) en commun, tu en es conscient ? Pourquoi crois-tu que les Linuxiens réclament des drivers "constructeur" pour leur OS ?
Certes, on peut abstraire encore plus le matériel... Mais ça rajoute des couches, et/ou des limitations (perte de possibilités spécifiques), et donc ça a un coût.
Entre un Mac PPC et un Mac Intel, OK, il y a pas mal de différences... Mais est-ce que ce sont les mêmes binaires qui tournent sur les deux machines ? Non, ils ont été compilés / adaptés aux deux cibles, donc cela devient deux systèmes totalement différents. Aussi différents qu'un Linux PPC et qu'un Linux x86, en fait.
A-t-on autant de possibilités de différences entre deux Mac PPC (ou deux Mac Intel) qu'entre deux PC ? Non plus.
Ne compare pas une API qui a plus de 20 ans d'évolutions, qui a supporté une demi-douzaine d'évolutions majeures du matériel
tout en assurant la rétrocompatibilité binaire avec une API qui n'a connu, réellement, qu'une seule "grosse" évolution (le passage aux CPU Intel).
Les configurations Mac restent très figées par rapport aux configurations PC : il n'y a guère que les consoles qui soient plus verrouillées que les Mac en terme de matériel. Cela n'empêche pas d'avoir plusieurs API sur Mac non plus, et qui sont plus ou moins interconnectées (Cocoa / Carbon notamment, sans parler de Classic bien sûr). Tout comme certaines opérations matérielles sous Windows peuvent se faire sans avoir besoin de réinstaller l'OS ou les applications : j'ai déjà changé ma CM sans réinstaller mon Windows, par exemple, et ça marche nickel. Tu as un exemple équivalent sous Mac à proposer ?
Après, l'API (Mac ou Win) est ce qu'elle est, avec ses qualités et défauts,
et ceci est valable pour les deux. Mais l'API Win32 est forcément et obligatoirement "bas niveau" (donc, exposant en partie le matériel sous-jacent) pour justement permettre son fonctionnement sur la multitude de matériels différents pouvant composer un PC. Chose que l'API Mac peut se permettre d'éviter, tout comme l'API Next qui fonctionnait AUSSI sur des machines relativement "fermées".
Et chacun de ces choix possède son prix à payer, comme le précise également wiztricks.
Enfin, il ne faut pas oublier non plus que si Win32 est l'API "de base" de Windows, elle n'est pas non plus la seule, ni forcément la plus simple à utiliser. Grâce justement à sa granularité élevée, elle peut être facilement encapsulée avec un overhead très léger côté performances. C'est ce que font la plupart des frameworks "natifs" sous Windows, comme par exemple la VCL de Delphi qu'utilise Droïde.
Pour la petite histoire, non, je ne suis pas un "anti-Mac", pas plus qu'un "anti-Linux". J'ai des produits Apple, Microsoft et GNU/Linux chez moi. Simplement, je prends le produit le plus adapté à MES besoins, pour CHAQUE besoin. Rappelle-toi simplement que TES besoins, contraintes et domaines d'utilisation ne sont pas les mêmes que ceux des autres, et donc forcément TON OS favori n'est pas forcément supérieur à tous les autres...
Partager