Je ne sais pas si sa peut t'aider, mais je suis tomber par hasard sur cet article .
Je ne sais pas si sa peut t'aider, mais je suis tomber par hasard sur cet article .
le top pour développez sous MacOS (uniquement) sans trop ce soucier de la portabilité c'est les couples:
_ C++ / Carbon
_ Objective-C / Cocoa
si tu veux faire des appli, performante et rapide c'est le choix pour lequel tu dois opter.
si tu veux plus faire de la portabilité tu peux toujours utilisé Java (surtout que comme signaler tu peux utiliser Cocoa avec Java)
Sincèrement, ce genre de question métaphysique (que l'on a tous eue, et qui est normale) n'a plus sa place aujourd'hui. Je m'explique.
Actuellement les applications sont de plus en plus réparties : répartition des contraintes, répartition du code au sein de la même machine sous forme de client/serveur locaux ou encore répartition d'un programme entre plusieurs ordinateurs voire plusieurs réseaux.
Je pense fondamentalement qu'il faut s'efforcer le plus possible pour concevoir les programmes avec les bons outils.
Exemple : si ton application comporte une partie très critique en termes de temps d'exécution, rien ne t'empêche de l'écrire en C, par exemple, puis de faire l'interface graphique (voire seulement une partie de l'interface) en Java Swing, ou encore les manipulations sur des données ASCII en Perl, et faire communiquer tout ce beau monde via des socket du domaine Unix.
Apprendre à utiliser les socket, c'est presque enfantin (enfin... en OCaml... mais en C ça doit être quasiment pareil), et très efficace. De plus, celà accroît fortement la réutilisabilité de composants logiciels, ce qui est tout de même intéressant, à mon sens.
Alors l'Objective-C est effectivement le choix le plus judicieux. Il te donne accès à toutes les fonctionnalités d'OSX que ce soit graphiques ou non via le framework cocoa. Il permet aussi un accès direct à toutes les API C du système et rien ne t'empêche non plus d'intégrer du code C++. Bref c'est le choix de prédilection pour tout développement sérieux (j'entends par là pourvoir vraiment accéder à tout) non multi-plateformes sur Mac.Envoyé par kedare
Le plus déroutant au début est la syntaxe des déclarations et des appels de méthodes (cela casse avec les habitudes de la syntaxe C qu'on retrouve dans beaucoup de langage).
Côté gestion mémoire, l'Obj-C est vraiment très élégant puisqu'on peut choisir entre gestion à la mano (plus performant dans bien des cas) et gestion dite autorelease (les objets se libèrent d'eux même en fin de run-loop lorsqu'ils ne sont plus utilisés). Léopard va aussi apporter un nouveau niveau de gestion puisqu'il va intégrer un Garbage collector pour le framework cocoa.
Avant de te précipiter sur un langage, je te suggère de cerner les besoins.
As-tu déjà essayé de réaliser un état en Python (langage que j'adore par ailleurs) ou en Java ?
As-tu comparé la vitesse de création d'un formulaire en GTK avec celle que te permettent Filemaker et Servoy (je sais, c'est payant, mais il y a des versions d'évaluation disponible).
Chaque environnement a ses avantages et ses faiblesses. Le mieux, comme le suggère InOCamlWeTrust, est d'en connaitre plusieurs pour pouvoir utiliser le plus adapté à une tâche donnée.
Une solution n'est valable que dans un contexte donné.
Yvan
C'est clair et net: si tu veux développer une (des) nouvelle(s) appli(s) uniquement pour Mac, c'est le couple Objective-C / Cocoa qu'il te faut choisir
Tu verras, Obj-C est un langage génial et les APIs Cocoa sont super bien faites!
Si tu comprends un minimum l'anglais, plus d'infos sur l'Objective-C sur Wikipedia (malheureusement la version française est très succincte, peut-être que je m'en occuperai un jour…).
Que dire de plus? C'est comme un Mac, l'essayer c'est l'adopter!Envoyé par Mateo34
Objective-C = plaisir
Il faut avoir des bases en C.
(signé : un utilisateur de Mac depuis 1986)
Je confirme, le couple Objective-C / Cocoa est le meilleur choix pour la programmation sur Mac OS X, si tu ne comptes pas aller sur d'autres plate-forme.
C'est un langage extrêmement flexible, extrêmement dynamique, tu as le choix entre mettre les mains dans le cambouis et fire des trucs de très bas niveau ou bien de t'en remettre complètement au haut niveau et moins te faire chier.
Il a sa fine couche objet avec un runtime qui peut parfois ralentir le processus mais qui, grâce au caching, à force d'utiliser une même application, va plus vite. Mais si tu trouves le runtime trop lent tu peux aussi le contourner en appelant les méthodes avec du C directement...
D'ailleurs l'intégration avec le C est totale, ce qui fait que tu peux utiliser les API bas niveaux d'Apple comme Core Graphics, Core Video, Core Audio, Core Image, et prochainement Core Animation de manière complètement transparente.
Non vraiment ce langage n'a pas reçu le traitement qu'il mérite et aurait du avoir eclipsé le C++ si il n'avait pas était si incompris (séquence émotion ).
Envoyé par PsychoH13
en quoi ce langage a été / est incompris ?
Bah disons que si les développeurs n'avait pas pris peur devant la syntaxe atypique de l'Objective-C :
Ils auraient pu découvrir un super langage extrêmement flexible et dynamique...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 [receveur message] @implementation classe : superclasse <protocole> { // attributs } - (id)methodeDInstance: (int)valeur; + (id)methodeDeClasse; @end
Voilà en quoi le langage est incompris, parce que les développeurs n'ont pas cherché à comprendre le langage et s'arrête bien souvent à la syntaxe.
Je ne suis pas complètement d'accord avec toi. Pour moi, Objective-C est tout simplement méconnu (et non incompris) car il n'a simplement jamais été mis en avant avant l'arrivée d'OSX (son prédécesseur NeXTstep n'ayant pas vraiment rencontré le succès mérité). Malgré son âge*, il n'en est donc qu'à ses débuts "marketing" et de plus en plus de devs s'y intéressent.Envoyé par PsychoH13
La syntaxe quant à elle n'est déroutante que du fait du "formatage" des développeurs (C, C++, Java, etc). Doit-on pleurer un développeur qui s'arrêterait à ça (d'autant qu'une fois compris le principe c'est en fait littéralement plus explicite je trouve)? Je ne pense pas.
*: Objective-C est né dans les années 80 (donc bien avant Java qu'il a largement inspiré).
Oui Objective-C est méconnu bien qu'il a été développé à la même époque que le C++... Peut-être aussi à cause du fait que NeXT en ait gardé la license sans vraiment chercher à populariser le langage lui-même.
Mais aussi le fait que ce langage soit atypique en a éloigné plus d'un... M'enfin, l'Objective-C prend de plus en plus d'importance aujourd'hui et c'est très bien !
J'espère maintenant que tu es reconcilié avec Personnellement, et en y repensant, je trouve la syntaxe de l'Objective-C plus compréhensible que celle d'autres langages cousins comme le C++.
Je trouve que les @interface @end et @implementation @end sont plus explicites que les class {}; et MaClasse::methode().
L'objectif C est un excellent langage.
Quelqu'un qui veut développer pour MacOS principalement devrait s'y mettre -_-
Comme l'a dit Psycho la syntaxe est en fait plus propre que le C/C++ qui sont uniquement plus populaire.
Un vrai développeur devrait être capable de s'adapter vite à un changement de syntaxe et Objectif-C ne devrait pas faire exception à la règle.
La syntaxe de l'Objective-C est presque complètement basée sur celle du C. Les différences de syntaxe se trouvent au niveau de la couche objet qui est absente du C, il faut donc regarder du côté du C++ (qui est un langage différent !) pour pouvoir voir les différences de syntaxe.
le probleme est que Objective-C n'est vraiment finalement que pour Mac.
En tant que developper d'application, je pense que l'avenir est au multi-plateforme (regardez les meilleures applis: VLC, FIREFOX, PHOTOSHOP, DREAMWEAVER, FLASH ...). J'adore le mac, mais les applications doivent etre multi-plateformes. Le choix est plutot entre Java et C++ (avec Qt ou autres)
perso j'ai choisi, je prefere le natif et Qt est vraiment innovatif et les developpeurs paraissent vraiment tous cool (voir leurs blogs).
Alors ça, c'est un raisonnement assez bancal. C'est pas parce qu'une application est présente sur plusieurs plate-forme que son code est multiplateforme... Au contraire ! Certaines bien sûr le sont comme FireFox. Mais des applications comme Photoshop, Dreamweaver ou Flash sont LOIN très LOIN d'être multiplateforme au sens où tu l'entends.
Dans la plupart des cas, ce sont des applications différentes qui sont conçues, avec un code différent. Les fonctionnalités sont bien sûr, en général, les mêmes, les fichiers générés sont identiques, mais l'application elle-même, et surtout son code, est différente.
D'ailleurs, chercher absolument à faire du multiplateforme n'est pas vraiment la meilleure solution ! Car tu perds le bénéfice des différences de chaque plateforme et à ce moment tu as deux solutions : soit tu optimises ton application pour une plateforme en particulier et tu fais un code compatible et utilisable pour les autres, et là tu discrimines les autres plateformes. Soit tu fais une code 100% compatible avec toutes les plateformes et optimisés au maximum par les seules possibilités de tes outils, et là aucune plateforme n'aura une application optimisée...
Dans les deux cas tu n'exploites pas les fonctionnalités de toutes les plateformes...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager