Pourquoi si peu de Cocoa ????

Tout ça est clair et en même temps confu pour beaucoup de monde (même pour moi
rolleyes.gif
)
Pour recentrer le débat sur la question d'origine, il n'y a que peu d'applications Cocoa parce que avec Carbon :

- L'adaptation des anciennes applications est relativement simple et rapide.
- On conserve une compatibilté descendante (rare !) donc plus d'acheteurs potentiels.
- On profite de l'environnement OS X dont on peut faire appel à la majorité des API
- Contrairement à une idée reçue, les applications Carbon ne sont pas moins rapide que les applis Cocoa.
- Contrairement à une 2ème idée reçue, il est tentant de faire la comparaison avec le passage du monde 68K avec l'environnement PowerPC mais faut pas !

- Contrairement à une 3ème idée reçue, une appli Carbon n'est pas forcement compatible Classic ! Ce qui veut dire que certaines applis Carbon n'ont été écrite que pour tourner uniquement sous MacOS X !


Conclusion : mis à part des cas particuliers évoqués dans les posts supérieurs, il faudrait être idiot (ou très motivé !) pour (dans un 1er temps) écrire une appli Cocoa.
 
Bonsoir,

Exact Marc Name, 100% d'accord.
Si Cocoa est aussi flexible et puissant que cela le laisse supposer, (j'ai fait quelques essais basiques et c'est vraiment sympa) il ne faudra que peu de temps pour le porter sur d'autres environnement (Linux, Windows, Beos) Car je suppose que Cocoa est écrit en Cocoa.

Alors on pourra commencer a juger.

Cordialement
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par &lt;Gladiatop&gt;:
Le problème avec cocoa c'est que programmable qu'en Objectif C et que beaucoup de programmeurs travaillent encore en C et en C++.

Moi personnellement je préfère travailler en C++ et j'aime pas trop l'objectif C, donc go to Carbon.
<HR></BLOCKQUOTE>

Tu peux très bien généré une application purement OS X (cocoa) en codant en C++ avec l'environnement de développement disponible en téléchargement.
Tu peux même, depuis la dernière version d'OS X mixer du code C++ et ObjC. Et là c'est génial.
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par TomX:
J'avais lu sur ce forum une analogie intéressante...(pardon de ne pas pouvoir la rendre à son auteur!) :<HR></BLOCKQUOTE>

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Programmer en langage objet, c'est comme construire une maison avec des murs, des fenetres, un toit, plutot qu'avec du ciment, du sable, des briques...<HR></BLOCKQUOTE>
Non, ça ne veut rien dire et c'est tout le problème de ce type de citation ; croire que la programmation objet est aisée est un piège. Il existe peu de bon dévelopeur objet.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>En gros, la programmation en cocoa est grandement facilitée par les outils de très haut niveau fournis...<HR></BLOCKQUOTE>
Qu'entends tu pas "outils de très haut niveau" ??


<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Mais c'est vrai que tant que peux de programmeurs se seront tournés vers le langage objet, la plupart des logiciels seront écrits en C... Quel dommage!<HR></BLOCKQUOTE>
Je me permets encore de te contredire : tu peux faire de l'objet avec du langage C.
De même, tu peux faire de la programmation "classique" avec un langage objet.

Espéront juste que Microsoft ne fera pas entrave à son insertion dans le monde de la prog par la politique que l'on connait...
[/QUOTE]
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par TomX:
J'avais lu sur ce forum une analogie intéressante...(pardon de ne pas pouvoir la rendre à son auteur!) :<HR></BLOCKQUOTE>

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Programmer en langage objet, c'est comme construire une maison avec des murs, des fenetres, un toit, plutot qu'avec du ciment, du sable, des briques...<HR></BLOCKQUOTE>
Non, ça ne veut rien dire et c'est tout le problème de ce type de citation ; croire que la programmation objet est aisée est un piège. Il existe peu de bon dévelopeur objet.

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>En gros, la programmation en cocoa est grandement facilitée par les outils de très haut niveau fournis...<HR></BLOCKQUOTE>
Qu'entends tu pas "outils de très haut niveau" ??


<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Mais c'est vrai que tant que peux de programmeurs se seront tournés vers le langage objet, la plupart des logiciels seront écrits en C... Quel dommage!<HR></BLOCKQUOTE>
Je me permets encore de te contredire : tu peux faire de l'objet avec du langage C.
De même, tu peux faire de la programmation "classique" avec un langage objet.

Espéront juste que Microsoft ne fera pas entrave à son insertion dans le monde de la prog par la politique que l'on connait...
[/QUOTE]
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR> Je me permets encore de te contredire : tu peux faire de l'objet avec du langage C. <HR></BLOCKQUOTE>

Bien sur, tu peux aussi faire de l'objet avec du pascal, avec de l'assembleur, bref avec n'importe quel langage sachant gérer les pointeurs.

Le seul problème, c'est que ca revient à ré-inventer la roue.

Donc sur le principe, faire de l'objet avec du C, je suis d'accord meme si le terme "simuler de l'objet" serait plus approprié, mais en pratique, ca n'aurait aucun interet...
 
Il est clair que c'est d'un niveau élevé comme discussion, et bien plus intéressant que le nombre de rebonds nécessaire au démarrage de Explorer
grin.gif


Je suis pas programmeur mais il y a un truc que j'ai trouvé intéressant, et qui relève presque de la philosophie. Qulequ'un a dit qu'il reprochait à c++ d'être trop permissif. Ça m'a rappelé la reflexion d'un développeur de ma boîte (pourfendeur de Mac devant l'eternel) qui a dit un jour qu'il adorait Explorer (par rapport à Netscape) parce qu'il permettait tout !!! j'avais trouvé ça très significatif par rapport au ébat que l'on a souvent sur Microsoft : ils respectent rarement les normes édictées (parfois pour des raisons anticoncurrentielles, mais aussi parfois par leur philosophie même), mais il y a des gens qui trouvent ça très bien : ceux que j'appelle les bidouilleurs, les gens peu rigoureux quoi !!

Et je me demande, à la lecture de ce forum, si ce débat ne recoupe pas celui sur C++ / Objective C. D'un côté la bidouille, de l'autre le respect plus rigide d'un certain nombre de règles, mais à l'arrivée (peut être) des logiciels plus solides !

Messieurs les spécialistes, ne vous étripez pas trop !
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par Didier Guillion:
Bonsoir,

Exact Marc Name, 100% d'accord.
Si Cocoa est aussi flexible et puissant que cela le laisse supposer, (j'ai fait quelques essais basiques et c'est vraiment sympa) il ne faudra que peu de temps pour le porter sur d'autres environnement (Linux, Windows, Beos) Car je suppose que Cocoa est écrit en Cocoa.

Alors on pourra commencer a juger.

Cordialement
<HR></BLOCKQUOTE>
Dans le domaine de logiciel libre, il existe GNUStep, une adaptation des frameworks d'OpenStep (de NeXT). http://www.gnustep.org/
Ca se programme en Objective-C sous linux, *BSD, windows, solaris.

Mais ça a du mal à percer.

A noter qu'Apple a produit une version "objective-c++" de gcc pour pouvoir compiler du code utilisant les 2 langages, ce que bcp de développeurs attendaient.
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par TomX:
...
Espéront juste que Microsoft ne fera pas entrave à son insertion dans le monde de la prog par la politique que l'on connait...
<HR></BLOCKQUOTE>
Oubliez mike$ de temps en temps, ils sont hors course et les langages de prog ne sont pas leur savoir faire...

D'autant plus que l'histoire du C et de ses dérivés est intimement lié à unix, ils sont nés tous les 2 à la fin des années 60 dans les laboratoires d'ATT...
 
Je suis d'accord.

Considérez également que nous autre les programmeurs ne sommes de gros faineants, si un langage est plus clair, plus facile a utiliser, et surtout plus portable, on va l'adopter rapidement sans hésiter.

Le problème est que souvent les langages comme C, C++,C sharp ou objective C tiennent rarement leurs promesses...

Cordialement
 
Salut,
Je rentre d'une mission à l'étranger et je tombe sur cette discussion sur cocoa. Sachez en fait que :

Cocoa est pour un grand nombre de programmeur Apple, (à l'intérieur comme à l'extérieur de Cupertino), un nouveau langage.
C'est bien sûr un langage objet. c'est même à mon avis l'un des meilleurs. Les applications mac os provenant de l'OS 9.x ont toutes été 'carbonnisée'. c'est pour Apple le meilleur moyen de permettre aux développeurs de porter sans trop de peine leurs applis.
Cocoa necessite un certain temps d'apprentissage. En plus il propose une logique de conception très nouveau, facile (on s'en apperçoit après) et difficile (nouveaté obllige) à la fois. Je pense que pour développer une appli qui tire toute la substance de OS X, il faut utiliser cocoa.
L'avantage? c'est que dès sa naissance, cocoa a été pensé entièremant pour OS X et rien que pour OS X. La moindre petite fonction ou api utilise les concepts liés au fonctionnement de OS X. les fonctions et apis carbon ont été ajustées pour certaines et réecrites pour d'autres. Notemment la partie que l'on appelle les core foundation. qui sont en fait les fonctions de base (core) du système. elles sont utilisées par carbon. Ce sont en fait des apis cocoa exprimées sous la forme de fonction C.
Ainsi pour l'api cocoa NSSTRING on trouve la fonction Core CFSTRING etc...
Tout cela parceque de naissance, NSSTRING utilise l'UNICODE.
En plus l'exploitation de quartz est meilleure (Voir la définition des caractères d'omniWeb versus IE par exemple.
par exemple, les applis carbon n'utilise pas le tiroir.
Bref, je pense que carbon évoluera pour atteindre le niveau de cocoa d'ici 1 à 2 ans.

A plus.
 
Oooooops... Faut faire attention aux mots, parce que pour un débutant, ca doit etre un peu flou :

Cocoa n'est pas un langage mais des bibliothèques d'objets permettant d'accéder à OS X. Les langages permettant d'utiliser Cocoa sont Java et Objective C. Si on entend parler de langage C, langage C++ et objective C, c'est parce qu'on peu intégrer du C ou C++ dans de l'objective C : il comprend ca parfaitement.

Dans ces bibliothèque d'objets, on trouve toutes les fonctions d'accès à OS X : gestion des documents, des fenetres, des boutons, de la souris etc etc....

Ces bibliothèques ont été écrites en Objective C, et ne correspondent en rien aux bibliothèques développées sur OS 9. Les bibliothèques sous OS 9 gèrent aussi les fenetres, les boutons, la souris, mais avec des "noms" différents : pour ouvrir une fenetre sous OS 9, on n'appelle pas la meme fonction que sous OS X. C'est donc quand on parle de "portage" d'OS 9 vers OS X qu'intervient Carbon.

Carbon est aussi un ensemble de bibliothèques, mais d'un type particulier : vous avez du remarquer que Carbon est présent deux fois : une fois sous OS 9 sous la forme d'une extension, et une fois sous OS X sous la forme de framework. C'est parce qu'il sait faire la jonction entre 9 et X.

Admettons qu'on soit sous OS X : quand on demande d'ouvrir une fenetre à Carbon, on lui demande avec le nom utilisé sous OS 9. Carbon sait qu'il se trouve sous OS X : il transforme donc l'ordre d'ouverture en ordre OS X, et c'est le code OS X qui est exécuté.

maintenant, on est sous OS 9 : Carbon sait qu'il est sous OS 9, recoit l'ordre d'ouvrir une fenetre "facon OS 9", donc il ne transforme rien puisque l'ordre d'ouverture est déjà dans le bon mode.

Maintenant, qu'est-ce qui se passe quand on est sous OS 9, et qu'on demande d'ouvrir une fenetre à la mode d'OS X ? Ben sauf erreur de ma part (j'ai très très peu travaillé sous carbon), ca ne doit pas etre possible... Mais là, je laisse le soin aux spécialistes Carbon d'affirmer ou d'infirmer ce que je dis.

On dit aussi que carbon ne peut pas utiliser toutes les possibilités d'os x : si vous avez suivi ce que j'ai dis plus haut, vous devez comprendre qu'il ne le peut pas car OS 9 ne le peut pas ! Carbon est simplement une passerelle OS 9 vers OS X, mais ne peut pas comporter d'améliorations : ca voudrait dire qu'une appli Carbon pourrait tourner sous X mais plus sous 9 ! Et là, on sort du role de Carbon.

Alors bien sur, c'est schématisé à l'extrème, et il y a plein de petites subtilités sur lesquelles on pourrait revenir, mais j'espère avoir un peu éclairci pour certains d'entre vous l'image un peu floue qu'étaient Cocoa, Carbon et consorts.
 
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par nexxen:
Carbon est simplement une passerelle OS 9 vers OS X, mais ne peut pas comporter d'améliorations : ca voudrait dire qu'une appli Carbon pourrait tourner sous X mais plus sous 9 ! Et là, on sort du role de Carbon.<HR></BLOCKQUOTE>
En effet, et pourtant ça existe... Certaines applications écritent uniquement pour MacOS X sont Carbon, la plus connue d'entre elle : le Finder !
 
Bonjour,

On peut considérer que Carbon est un genre de traducteur entre les commandes (nom de fonctions) Mac OS X et les commandes Mac OS Classic (8 et 9).

Tant que le programmeur utilise carbon, son code fonctionne sous Mac OS X et Mac OS 9.

Mais, le programmeur Carbon, peut également utiliser des commandes X non Carbon, qui ne sont pas présente sur 9 à ce moment là son programme ne fonctionne plus sur 9 mais uniquement sur X.

Cordialement