• [^] # Re: ObjectiveC

    Posté par . En réponse à la dépêche Le language de programmation ooc sorti en version 0.2. Évalué à 2.


    - Objective-C met l'accent sur les décisions au temps de l'execution, alors qu'ooc essaie d'attraper les erreurs au temps de la compilation.


    Ben uniquement si tu le veux, sinon le compilo t'engueule hein...


    - Objective-C n'est pas traduit en C mais compilé directement. Parmi les inconvénients, cela veut dire qu'il faut porter le compilateur sous toutes les plateformes visées. Dans le cas d'ooc, on peut utiliser le compilateur ooc pour traduire .ooc -> .c/.h, puis utiliser gcc pour cross-compiler sur un des 50+ architectures qu'il supporte.


    En meme temps vu que le compilo objc le plus utilise c'est gcc, on est a peu pres tranquille concernant la problematique du multi-plateforme ;-)

    Plus serieusement, il y a pas mal de trucs interessants fait en ce moment autour de LLVM, et David Chisnall a implemente un frontend Objective-C.


    Enfin, ooc est inspiré en partie de Java, lui-meme inspire (entre autres) d'Objective-C, lui-meme inspire de Smalltalk. Concrètement, Objective-C est un langage mature qui apparamment ne changera plus beaucoup. Cela permet une grande stabilité, mais le langage est condamné a rester dans ses habitudes: il est trop tard pour tirer les leçons du passé (par exemple, gcc semble ne pas supporter totalement ObjC 2.0). Par contraste, ooc est un jeune galopin qui essaie d'apprendre de ses grands-parents. Il est largement encore temps de s'impliquer et d'influer sur le design.


    J'allait justement souligner ObjC 2.0 -- pour un langage qui ne changera plus beaucoup, c'est un changement assez recent... (bon par contre, c'est en gros Apple qui pousse :-/)

    Pour ce qui est du support ObjC 2.0 dans gcc, pas sur a 100% mais il me semble que gcc supporte tout ce qu'il faut... mais libobjc non. ObjC est dynamique et utilise un runtime, i.e. libobjc sous linux, et le runtime NeXT sur OSX, qui lui supporte ce qu'il faut.