Table des matières

Suivant



Introduction


Avant propos


Le but de ce document est de proposer une présentation du langage Objective-C. Ce langage souvent peu connu, a acquis ces lettres de noblesse avec l'environnement graphique NeXTStep. Il s'appuie en grande partie sur le document fourni par Apple que vous pourrez trouver ici (en version pdf).

Beaucoup de gens connaissent le C++, mais peu connaissent son cousin l'Objective-C. Ce sont tout deux des langages orientés objet développés à partir du C. Cependant celui des deux qui nous intéresse ici est inspiré dans sa conception du réputé SmallTalk et de ce fait est beaucoup plus objet que le C++. Ce dernier aspect confère à l'Objective-C une plus grande modularité que son cousin. Je me permettrait donc de proposer un comparatif présentant les différences et les similitudes entre trois langages objet : l'Objective-C , le C++ et le Java. Vous verrez que le Java s'apparente beaucoup plus à l'architecture de l'Objective-C (ce qui tout à fait compréhensible historiquement) bien qu'il ressemble plus au C++ au niveau syntaxique.


Comparatifs entre 3 langages objet:C++, Objective-C, Java



C++

Objective-C

Java

Vocabulaire

Donnée membre

Variable d'instance

Champs

Fonction membre

Méthode/message

Méthode/message

Héritage

Multiple

Simple

Simple

Interfaces/Protocols

Non

Oui

Oui

Categories

Non

Oui

Non

Activation d'objets disponibles par le réseau

Non(seulement par Corba)

Oui

Oui

Typage dynamique

Link-time (Late-Binding)

Run-time

Run-time




Un peu d'histoire...


Pour la petite histoire, en 1988 Steve Jobs est invité a quitter le groupe Apple dont il est l'un des co-fondateurs. Grâce aux indemnités dues a son rang, il crée son entreprise NeXT qui développera un OS complet comprenant un noyau Mach et une interface graphique avancée. L'ensemble du développement sera axé autour de la communication, du travail de groupe et des technologies objet. Cet OS appelé NeXTStep sera vendu au départ pour des machines spécifiques: les NeXTCubes (si ça vous rappelle le nom de machines plus récentes, c'est normal...) ou encore stations NeXT équipées d'un disque dur magnéto-optique amovible et d'un DSP. Le lancement de ces machines fort coûteuses n'eut pas le succès escompté et NeXT dut recentrer ses activités sur la vente d'OS NeXTStep.

NeXTStep est basé dans ses basses couches sur un Unix de souche BSD sur un microkernel MACH. De plus, ce système d'exploitation était fournis avec un environnement graphique et surtout avec un ensemble très complet d'APIs objet. En 1994, en collaboration avec SUN, NeXT publie les spécifications OpenStep qui est une évolution de NeXTStep rendue indépendant du système d'exploitation. Un peu plus tard SUN recentrera ses activités sur le développement du langage et de l'API Java. On trouve à partir de cette période différents portages qui voient le jour sur Solaris, Hp-UX et Windows NT.

NeXT fut racheté par Apple en 1996 et Steve Jobs réintégra le groupe Apple dans la même année. En 2000, Apple sort son nouveau système d'exploitation. Il fait étrangement penser dans sa conception a son père naturel. En effet, de la même manière, Mac OS X est un Unix reposant sur un microkernel MACH, son interface graphique Aqua repose entre autres sur la technologie Cocoa qui est une évolution directe de Openstep.

Je n'ai pour ma part jamais vu tourner ni de machine NeXTCube, ni l'OS NeXTStep, ni même l'interface graphique NeXT. Cependant le couple GNUStep/WindowMaker gratuit qui imite le "Look&Feel" et fournis l'API OpenStep donne une bonne idée de l'interface proposée à utilisateur et respectivement au programmeur. Bien-sur, les autres alternatives pour tester cette environnement sont d'acheter NeXTStep dans une des différentes architectures dans lesquelles il est paru (Voir la page des liens) ou plus cher et plus rare de trouver une machine NeXTStep... Enfin la solution est soit d'acheter une machine Apple fournie avec le dernier Mac OS X soit d'aller en regarder une chez un ami ou dans une grande surface.

Si vous cherchez des renseignement plus précis sur l'architecture du nouveau système d'exploitation du géant de la pomme, je vous conseille cet autre exposé publié par un autre étudiant de ma formation.




Table des matières

Suivant