Objective-C ou Java ?

mpergandmpergand Membre
12:20 modifié dans Actualités #1
qui mine de rien argumente en douce pour Java

Non non, pas en douce, ouvertement :D

J'ai rien contre ObjectiveC, il y a des concepts étonnant comme le forwardInvocation que je viens de découvrir, mais pour moi la gestion de la mémoire est un gros point noir. Il faut dire que j'avais été un peu echaudé par le CoreFondation. Lors de la sortie de OS X, je n'ai pas sauté le pas vers Cocoa immédiatement, car je savais qu'il fallait tout réapprendre. J'ai donc t‚té un peu du Carbon sous CW. J'ai pas été très emballé, cette version de CW posait pas mal de problèmes et puis j'ai découvert la gestion des objets du CoreFoundation avec ses CFRetain/CFRelease, le fait qu'il faut prendre en† compte le nom de méthode (s'll comporte copy ou create), pour faire un release sur l'objet, etc. J'ai un souvenir assez pénible de quelques 500 lignes de code pour la gestion d'un plist en CoreFoundation, belle† prise de tête! Alors je me suis dit, ok, il faut franchir le pas vers Cocoa ! Avec ObjectiveC, Apple a d? nous faire un truc super sympa à programmer, pas prise de tête, comme le Mac, pas de doute. Donc je commence à parcourir la doc et là que vois-je, devant mes yeux écarquillés? retain et son pote release :o ah! non pas ça! c'est pas possible, dites moi que je rêve, que (bon ok j'arrête :)) Comme d'un autre coté, j'étais assez interressé par java, je me suis dit pour ObjectiveC on verra plus tard.
Voilà, j'ai donc appris Cocoa avec une doc inadaptée à java et sans pratiquement aucun exemple de code, 6 mois de partauge complète, de plus Cocoa est vraiment spécial, les connaissances acquises dans d'autres systemes ne servant quasiment à rien!
(Aujourd'hui, il y a plus de docs dispo et de sites sur CocoaJava, heureusement)

Par contre pour Java, que du bonheur ! L'absence de pointeurs est un peu déroutant au début (il faut perdre ses vieux refllexes du C, C++) mais on se rend vite compte de la facilité de se language, de sa légèreté (face à ce gros mastodonte de C++). En java, c'est facile, en quelques lignes de code, de tester une idée(pas fichier .h). Maintenant que le maà“trise bien, je peux aligner les lignes de code pratiquement sans réfléchir, comme une seconde langue.

Favouille84, nous avons phagocyté ton fil, mais je pense que sa lecture fut instructive pour toi et pour tous les débutants en Cocoa.
Tu sembles avoir une bonne connaissance de Carbon et tu as décidé de basculer à la POO et ObjectiveC. Trés bien, mais je pense que celà risque d'être assez douloureux ! Le peu de code que tu nous as montré, me laisse présager de nombreuses difficultés, car tu tentes de faire une simple adaptation des méthodes employées en Carbon en Cocoa. Seulement c'est trés mauvais, tu utilises mal les objets et pas du tout les nouvelles fonctionnalites offertes par Cocoa. Un conseil, fais comme moi: oublie tout ! Fais table rase du passé, repars de zéro et utilise uniquement Cocoa, comme par exemple pour ton fichier de données tu peux choisir les PropertyList (XML) ou le sérialisation (NSCoding)
Tu te focalises sur la compatibilité avec tes anciens fichiers, mais ce n'est pas un problème, ça sera le rôle d'un simple fonction d'importation de ton programme.
Si je te conseille Java, c'est que dans ton cas (comme de tous les novices) il t'obligera à programmer par objets, et t'affranchira de la gestion mémoire d'ObjectiveC. Tu pourras n'utiliser que des fonctions Cocoa (delegation, notification, MVC, etc) tout comme en ObjectiveC. Et une fois que tu en auras la maà“trise, tu pourras passer à OjectiveC trés facilement si tu le désires, la seule chose qui change étant cette fameuse gestion de la mémoire.

Si ObjectiveC est le language le plus efficace pour programmer en Cocoa, ce n'est pas le plus facile et peut-être pas le plus approprié pour débuter.

Et finalement, ObjectiveC est-il un atout ou un handicap pour OS X ?
A quoi sert ObjectiveC à part gérer l'interface utilisateur ?
ObjectiveC + Cocoa ont-ils des atouts face à C# + .NET ?

Vaste sujet, qui pourra etre débattu, sur un autre fil, si vous le désirez† :D
«1

Réponses

  • 12:20 modifié #2
    Par contre ouvrir un forum consacré à Cocoa-Java pourrait être des plus utiles, c'est extrêmement rare à ma connaissance.
  • mpergandmpergand Membre
    12:20 modifié #3
    Je n'en connais qu'un seul: Cappuccino
  • VeillardVeillard Membre
    12:20 modifié #4
    Me revoilà après avoir lu (et appliqué) les 4 premiers chapitres de "Cocoa par la pratique"  ???. J'avoue qu'après quelques demi-journées d'absence il y a eu pas mal de messages sur le sujet. En ce qui concerne les "retain" et les "release", j'ai bien compris la subtilité.

    Allez demain j'attaque les "Objets helper"...  ;D

    A+
  • ClicCoolClicCool Membre
    12:20 modifié #5
    dans 1089721526:

    qui mine de rien argumente en douce pour Java

    Non non, pas en douce, ouvertement :D

    C'est l'ouverture des hostilités ?† :P
    Bon! ben je me dévoue pour jouer les fantassins en première ligne.
    Mais j'espère que la cavalerie va rapidement rapliquer parceque je suis pas sur de tenir le front tout seul ! :P :P :P

    J'ai rien contre ObjectiveC, il y a des concepts étonnant comme le forwardInvocation

    Ah ! :)
    je me suis dit pour ObjectiveC on verra plus tard.

    Donc tu n'envisages pas Java comme une fin en soit et tu penses basculer sur Objective-C† ;D
    L'idée c'était Java pour commencer sans se soucier de la gestion de la mémoire puis passer à ObjectiveC ?
    6 mois de partauge complète

    A ben oui, vu comme ça, ça a l'air cool Java† :P
    (il faut perdre ses vieux refllexes du C, C++) .../...(pas fichier .h).

    Ben il me semble qu'il n'y a pas plus propre que la rigueur du C et ses pointeurs et ses déclarations d'interfaces dans les fichiers .h non ?
    même si c'est une contrainte à apprendre.
    je peux aligner les lignes de code pratiquement sans réfléchir

    Ah bon, c'est un anvantage de ne pas réfléchir ? de ne pas être contraint de structurer ses idées et son projet avant d'écrire le code proprement dit ?
    Favouille84 Un conseil, fais comme moi: oublie tout ! Fais table rase du passé, repars de zéro

    Essaies de ne pas trop oublier la rigueur du c sinon tu serais obligé de t'y remettre en passant à l'Objective-C.
    Si ObjectiveC est le language le plus efficace pour programmer en Cocoa, ce n'est pas le plus facile et peut-être pas le plus approprié pour débuter.

    Là je suis bien obligé d'avouer (ce que l'honetteté nous pousse à faire des fois :P )que tu as raison,
    SAUF pour quelqu'un ayant assez de notions de C et Carbon pour avoir écrit un logiciel de plongée remarquable† :D

    Donc, si j'ai bien compris c'est seulement la gestion de la mémoire qui te freines, mais tu penses, in finé, passer sous Objective-C ?

    C'est sur, la facilité de gestion de la mémoire en Java et son "garbage collector"† est très tentante au regard des précautions réflexes à aquérir avec Objective-C et des débuggages nécessaire à la recherche d'une fuite mémoire.

    Mais n'y a-t-il pas un prix à payer pour cette facilité ? en terme de rapidité d'exécution ? en terme de poids du code compilé ?
    Dis nous tout !† ::)
  • mpergandmpergand Membre
    12:20 modifié #6
    Donc tu n'envisages pas Java comme une fin en soit et tu penses basculer sur Objective-C††
    L'idée c'était Java pour commencer sans se soucier de la gestion de la mémoire puis passer à ObjectiveC ?

    A l'époque, je voulais tester java, savoir s'il était à la hauteur de sa réputation ( un C++ épuré de ses lourdeurs) et je n'ai pas été déçu. J'envisage difficilement de réutiliser C++, à part peut-être pour essayer QT.
    Je ne pense pas faire une appli en pur ObjectiveC dans l'immédiat, sauf en cas de besoin d'un maximum de performances.

    Ben il me semble qu'il n'y a pas plus propre que la rigueur du C et ses pointeurs et ses déclarations d'interfaces dans les fichiers .h non ?

    Le C, c'est le pire des langage car il te permet de faire n'importe quoi, de programmer comme un pied et de te prendre pour un crac quand même.

    Ah bon, c'est un anvantage de ne pas réfléchir ? de ne pas être contraint de structurer ses idées et son projet avant d'écrire le code proprement dit ?

    Réfléchir de trop ça me fatigue ;D

    Favouille84 Un conseil, fais comme moi: oublie tout ! Fais table rase du passé, repars de zéro
    Essaies de ne pas trop oublier la rigueur du c sinon tu serais obligé de t'y remettre en passant à l'Objective-C.

    Appliquer les bidouilles du C à un langage object c'est pas un peu inepte ?

    Là je suis bien obligé d'avouer (ce que l'honetteté nous pousse à faire des fois† )que tu as raison,
    SAUF pour quelqu'un ayant assez de notions de C et Carbon pour avoir écrit un logiciel de plongée remarquable†

    Je ne suis toujours pas d'accord, C et Carbon n'ont rien à voir avec ObjectiveC et Cocoa, vouloir transposer les mêmes principes de l'un à l'autre est une erreur. J'ai porté plusieurs de mes applis carbon vers OSX, mais en partant de zéro !

    C'est sur, la facilité de gestion de la mémoire en Java et son "garbage collector"† est très tentante au regard des précautions réflexes à aquérir avec Objective-C et des débuggages nécessaire à la recherche d'une fuite mémoire.

    Sur le dev list d'Apple, un responsable d'une société d'info affirmait qu'il n'utilisait plus que Java, car ça lui permettait de diviser le temps de dev par deux (en particulier du fait de l'absence de ces problèmes de mémoire ) et comme le temps c'est de l'argent, son choix était vite fait !

    C'est ce que j'ai constaté lors de mes portages et Cocoa est vraiment puissant quand on le maà“trise (même en java) :)
  • muqaddarmuqaddar Administrateur
    12:20 modifié #7
    Hum... mpergand, tu m'as mis le doute quand au choix du langage que je souhaite apprendre.
    Ayant lu pendant 4 ans, qu'objective-c était ce qui se faisait de mieux en langage objet, j'ai décidé de m'y mettre récemment... quitte à bouder un langage bien plus connu,prisé et multi-plateforme : java.

    Bon, les arguments de clicCool sont rassurants, c'est vrai que la gestion mémoire est difficile à comprendre mais si on y gagne en vitesse de l'appli, ça vaut le coup non ?
  • mpergandmpergand Membre
    12:20 modifié #8

    Bon, les arguments de clicCool sont rassurants, c'est vrai que la gestion mémoire est difficile à comprendre mais si on y gagne en vitesse de l'appli, ça vaut le coup non ?


    Les performances de java ne sont pas un problème dans 90% des cas. Regarde cette appli Editeur TX7† il y a plus de 200 controls, un peu lourd non? Sous Panther, la réactivité est trés bonne. En fait en Cocoa-Java, tu fais essentiellement appel aux fonctions Cocoa, qui elles sont en ObjectiveC, donc trés rapides.

    Maintenant, si tu veux faire un prog de retouche d' images révolutionnaire, c'est évidemment pas le bon choix† :D
  • 12:20 modifié #9
    dans 1089754678:


    Bon, les arguments de clicCool sont rassurants, c'est vrai que la gestion mémoire est difficile à comprendre mais si on y gagne en vitesse de l'appli, ça vaut le coup non ?


    Les performances de java ne sont pas un problème dans 90% des cas.


    Dans ce cas, pourquoi ne pas utiliser le realbasic :p. C'est encore moins casse tête, et il ne faut pas s'embêter avec deux applications.

    Quand à ce que tu dis pour la vitesse, ce n'est certes pas un problème... à condition d'avoir une machine à la hauteur. Sur mon 400Mhz, on fait très vite la différence entre ce qui est fait en Objective-C et en Java.

    Quand à l'argument de la gestion de la mémoire, un peu de rigueur et le tour est joué. Pour ma part c'est pas ce qui m'occupe le plus dans la résolution de bugs.

    Sinon, y-a-t-il un équivalent des catégories en Java? Ou alors on est obligé de sous classer?
  • mpergandmpergand Membre
    12:20 modifié #10
    Quand à ce que tu dis pour la vitesse, ce n'est certes pas un problème... à condition d'avoir une machine à la hauteur. Sur mon 400Mhz, on fait très vite la différence entre ce qui est fait en Objective-C et en Java.

    Sur mon iBook 600 sous Panther, je ne constate pas de différence notable (à l'inverse de Jaguar). Seul le démarrage est plus long.

    Sinon, y-a-t-il un équivalent des catégories en Java? Ou alors on est obligé de sous classer?

    Non effectivement, mais s'en sert-on tant que ça ?
  • 12:20 modifié #11
    Pour les catégories, presque tout le temps...

    Le premier usage est les méthodes privées pour une classe (une catégorie déclarée dans le .m). Le second usage est pour les délégués, les méthodes du délégués étant définies dans une catégorie de NSObject. Plus des cas isolés, où on complète une classe existante par quelques méthodes utiles à un cas spécifique.

    Certains s'en servent aussi pour distinguer les méthodes primitives des autres, ou pour fractionner le code d'une classe en plusieurs morceaux. Ces deux cas ne nécessitent pas le recours aux catégories.
  • ClicCoolClicCool Membre
    12:20 modifié #12
    dans 1089753737:

    Je ne pense pas faire une appli en pur ObjectiveC dans l'immédiat, sauf en cas de besoin d'un maximum de performances.

    Ou comme le dit arldon si un utilisateur ne dispose pas d'un G5 bi-Pro :)

    Le C, c'est le pire des langage car il te permet de faire n'importe quoi, de programmer comme un pied et de te prendre pour un crac quand même.

    T"es dur pour le C !!!, D.M. Ritchie et B.W. Kernighan auraient pas aimé lire ça :P
    Mais en effet initialement je pensais que favouille faisait du carbon en c++ puis le doute m'a pris et j'ai gommé les ++ au dernier moment ce qui change grandement la valeur de mes arguments.
    Reste que s'il n'a pas fait de c++, il me parait plus logique de s'y former un peu, puis d'aborder Objective-C que d'abborder la POO par Java pour finalement aboutir à Obj-C.

    Réfléchir de trop ça me fatigue ;D

    ça je comprends :D

    Appliquer les bidouilles du C à un langage object c'est pas un peu inepte ?

    En effet encore une fois,
    une petite approche du C++ semble indiquée (le temps de comprendre les concepts d'objet etc ...)
    Quoiqu'il peux aussi appréhender la notion d'objet en même temps en Obj-C, il a pas l'air idiot ce Favouille et Aborder la notion Objet en apprenant le Java, je suis pas s?r que ce soit tellement plus simple.

    Je ne suis toujours pas d'accord, C et Carbon n'ont rien à voir avec ObjectiveC et Cocoa, vouloir transposer les mêmes principes de l'un à l'autre est une erreur. J'ai porté plusieurs de mes applis carbon vers OSX, mais en partant de zéro !

    Bon encore une fois j'aurais jammais du effacer au dernier moment mes ++ :(
    Pour ce qui est de partir de zéro, oui aussi.
    Favouille semble se faire un monde de la récupération de ses anciennes données alors qu'il devrait tout réécrire de zéro en Objective-C et ajouter simplement une fonction d'import de ses anciens fichiers !

    Sur le dev list d'Apple, un responsable d'une société d'info affirmait qu'il n'utilisait plus que Java, car ça lui permettait de diviser le temps de dev par deux (en particulier du fait de l'absence de ces problèmes de mémoire ) et comme le temps c'est de l'argent, son choix était vite fait !

    Mon fils, lui aussi a fait parfois d'autres choix que je n'approuve pas toujours :P :D

    Cocoa est vraiment puissant quand on le maà“trise (même en java) :)

    c'est vrai, même en Java c'est puissant :P

    Mais au total, on en reste jusque là à apprendre le Java pour ne pas avoir à apprendre les bons réflexes de gestion de 2 instructions "retain" et "release" (3 avec "autorelease").
    Le tout au pris d'une perte de performance et de certaines incompatibilités Java-Cocoa que tu connais bien mais que tu n'évoques pas ici ;)

    N'y a-t-il pas d'autres avantages en faveur de Java ?
  • mpergandmpergand Membre
    juillet 2004 modifié #13
    Je viens de scinder le sujet en 2 pour ne pas polluer le thread de favouille.

    merci izostar !

    Mais en effet initialement je pensais que favouille faisait du carbon en c++ puis le doute m'a pris et j'ai gommé les ++ au dernier moment ce qui change grandement la valeur de mes arguments.

    Le problème e?t été le même† s'il avait utilisé C++ et PowerPlant.
    une petite approche du C++ semble indiquée (le temps de comprendre les concepts d'objet etc ...)

    Si tu es programmeur professionnel, tu es bien s?r obligé d'apprendre le C++, sinon c'est pas indispensable.
    J'ai utilisé C et C++ pendant de années, ce n'est pas pour ça que je les apprécie pour autant.

    Le tout au pris d'une perte de performance et de certaines incompatibilités Java-Cocoa que tu connais bien mais que tu n'évoques pas ici

    Oui, c'est vrai, mais on peut très bien programmer en CocoJava et ne pas rencontrer toutes les difficultés que je décris sur mon site( voir la partie anglaise, celle en français n'est pas à jour, pour d'obscures raisons que je n'exposerai pas).
    En fait cette page est plus un coup de gueule contre Apple, toute la partie sur les NSControl n'existerait pas si Apple documentait correctement les choses. Et puis c'est comme les trains, on ne parle jamais de ceux qui arrivent à l'heure.
  • ClicCoolClicCool Membre
    12:20 modifié #14
    dans 1089797315:

    Je viens de scinder le sujet en 2 pour ne pas polluer le thread de favouille.

    merci izostar !

    Oui Merci izostar !

    Le problème e?t été le même† s'il avait utilisé C++ et PowerPlant.

    De mon côté, il m'a paru très simple de passer de PoxerPlant à Obj-C. Mais faut peut-être pas généraliser sur mon cas ?

    Si tu es programmeur professionnel, tu es bien s?r obligé d'apprendre le C++, sinon c'est pas indispensable.
    J'ai utilisé C et C++ pendant de années, ce n'est pas pour ça que je les apprécie pour autant.

    Pareil, faut peut-être pas généraliser sur ton cas ?
    J'ai du mal à comprendre comment, ayant eu l'habitude du c++, tu peux être tant rebuté par la gestion de la mémoire en Obj-C ?

    En fait cette page est plus un coup de gueule contre Apple, toute la partie sur les NSControl n'existerait pas si Apple documentait correctement les choses. Et puis c'est comme les trains, on ne parle jamais de ceux qui arrivent à l'heure.

    En lisant ton site, en effet, au travers de ton coup de gueule, on ressent une certaine passion pour le Java ;)

    Plutôt que d'argumenter sur les défaut qu'a l'Obj-C à tes yeux, si tu nous donnais envie de nous pencher sur le Java ?
    Quels sont les plaisirs propre Java que tu expérimentes et que finalement tu ne nous expose pas tellement ? (en dehors de la gestion de la mémoire)

    Il me semble, qu'à une époque du moins, il n'y avait qu'en Java par exemple qu'on pouvait utiliser les W.O. ?
    C'est toujours Vrai ?
    Y-a-t-il certains projets qui méritent le Java (au moins partiellement) du fait de l'absence d'équivalent en Cocoa ?
    Ca vaudrait alors le coup d'inclure un peu de Java dans cartains projets ?

    Ca vaut peut-être le coup, comme a dit Arldon d'ouvrir ici un Forum Java-Cocoa ?
    ;)
  • 12:20 modifié #15
    dans 1089802514:
    Ca vaut peut-être le coup, comme a dit Arldon d'ouvrir ici un Forum Java-Cocoa ?


    J'ai changé d'avis! Comme il en existe un, pas de raison de disperser des participants potentiels déjà peu nombreux. Je trouverais un rapprochement plus intéressant, mais c'est une initiative qui doit venir des webmasters.
  • muqaddarmuqaddar Administrateur
    12:20 modifié #16
    Bein oui, le site s'appelle objective-cocoa...
    Je savais que des sites existaient sur java cocoa.
    Néanmoins, je ne suis pas fermé, on peut en parler dans ce forum (autres langages) où ds la partie projets si des applis sont écrites avec les 2 langages.

    Pour ce qui est des arguments pour les deux langages, je laisse faire les connaisseurs... ;-)
  • ClicCoolClicCool Membre
    12:20 modifié #17
    dans 1089875386:

    A titre informatif, on peut programmer les WO en quoi à part en Java ?
    dans 1089886676:

    Rien.


    Ben ça c'est pas un Argument ? :)
    Ou alors les Web Obkects sont-ils un "résidu" de NextStep qui ne sera plus mis à jour ni suivi à l'avenir ?
  • odjauodjau Membre
    12:20 modifié #18
    Je n'en suis qu'à  mes balbutiements en cocoa (je compte surtout me mettre à  cocoa), mais un des des principaux avantages de java n'est-il pas dans le fait que ce langage est multiplatformes ?

    Me tompe-je  ???
  • muqaddarmuqaddar Administrateur
    12:20 modifié #19
    Non, c'est bien un de ses grands avantages tu as raison.
    Mais bon, t'as envie de programmer pour PC ? ;-)

    J'ai lu qu'il y avait aujourd'hui 12 millions de macs sous OS X, il y a déjà  de quoi faire... ;D
  • odjauodjau Membre
    12:20 modifié #20
    Non je n'ai pas envie de programmer pour PC (je le fais déjà  8h/jour au boulot). ::)
    Cependant, le fait qu'un langage soit multiplateformes peut-être un avantage certain pour convaincre certain client. Sans rentrer dans les détails, pour ne pas embêter tout le monde, un des clients de l'entreprise ou je travail veux voir son programme fonctionner sous Mac (OS9 et OSX), Windows et Linux?Heureusement que le langage dans lequel nous programmons est (un minimum) multiplateformes ;)
    Voilà , ma remarque était simplement du à  une petite déformation professionnel  ;)

    ciao
  • mpergandmpergand Membre
    12:20 modifié #21
    Effectivement, Java a été conçu à  l'origine pour être portable, mais c'est un peu hors de propos ici, car Cocoa lui, ne l'est pas.
    Il semble que les concepteurs de java se soient fortement inspirés d'ObjectiveC, voir ICI

    J'ai lu qu'il y avait aujourd'hui 12 millions de macs sous OS X, il y a déjà  de quoi faire...


    Ouais, c'est beaucoup ou ridiculement faible, tout est relatif.
  • muqaddarmuqaddar Administrateur
    12:20 modifié #22
    Oui, effectivement, ça dépend de ce qu'on programme... (appli pro ou grand public...etc)
  • groumpfgroumpf Membre
    12:20 modifié #23
    ObjectiveC c'est pas mal mais c'est qd meme beaucoup plus compliqué que Java, j'ai fait quelques progs mais je ne me suis pas encore occupé de la mémoire, après 5 ans de Java, j'y comprend plus rien !
    L'avantage que je vois reside plutot dans Interface Builder.
    Je m'interroge sur l'intérèt de programmer en Cocoa à  cause de la portabilité inexistante (Open Cocoa ?), et je concois Java plutot pour réaliser des applications portables.
    Le probleme de Java sur les petites machines est sa lenteur (Swing), d'ou mon intéret pour essayer Cocoa/ObjC.
    Le mélange de l'ObjC et du C++ est aussi assez genant (voir examples Apple) mais c'est peut-etre parce que je ne connais pas suffisamment les API Cocoa.
    Java est vraiment un langage puissant tout en restant simple a programmer, il va encore s'ameliorer en 1.5.
    Je travaille pour des applis serveur Internet et tous les grands programmes sont en Java (Weblogic, WebSphere, opensource jakarta).
  • mpergandmpergand Membre
    juillet 2004 modifié #24
    Plutôt que d'argumenter sur les défaut qu'a l'Obj-C à  tes yeux, si tu nous donnais envie de nous pencher sur le Java ?
    Quels sont les plaisirs propre Java que tu expérimentes et que finalement tu ne nous expose pas tellement ? (en dehors de la gestion de la mémoire)


    - pas de headers
    - pas de pointeurs
    - garbage collector
    - syntaxe à  100 lieues de la lourdeur du C++

    Mais finalement, vous avez raison, fuyez Java, car c'est une drogue dure, une fois qu'on y a touché, on ne peut plus s'en passer  ;D ;D
  • 12:20 modifié #25
    C'est marrant cette guerre entre langages. J'ai toujours été éduqué "informatiquement" avec le principe d'apprendre de nouvelles choses et d'utiliser les bons outils au bon moment.
    Perso, j'essaye d'apprendre un nouveau langage par an (et y a du boulot entre Python, Ruby, ObjC, Java, SmallTalk,etc.) car je ne pense pas qu'il y a UN langage universel. Java peut être très bien pour certaines applications mais objC peut être plus adapté à  d'autres (il arrive même fréquemment qu'une appli tourne avec plusieurs composants écrits dans des langages différents).
    Si un langage ne vous convient pas, cela ne signifie pas qu'il soit mauvais ou moins bien qu'un autre (même s'il y en a). Mais plus que vous n'avez pas saisie sa substance (moi c'est le Perl que je trouve infâme). Pour ma part, j'ai intégré la gestion mémoire de l'objC et je trouve que c'est un bon compromis entre intelligence et gestion automatique (la méthode autorelease est un bonheur pour ceux venant du C), ce qui fait que j'aime utiliser ce langage (tout comme le Python, C et C++).

    Il faut essayer :-) Si cela se solde par un échec, ce n'est pas grave. On apprend plus de ces derniers et il sera toujours possible de changer.
  • Eddy58Eddy58 Membre
    juillet 2005 modifié #26
    Déterrage de thread ! Apple informe qu'ils ne feront plus évoluer les APIs Cocoa en Java, et conseillent fortement d'utiliser l'Objective-C ! :o
  • muqaddarmuqaddar Administrateur
    12:20 modifié #27
    C'est mpergand qui va pas être content... :)
  • mpergandmpergand Membre
    12:20 modifié #28
  • Eddy58Eddy58 Membre
    juillet 2005 modifié #29
    dans 1121192879:

    De nombreuses bibliothèques portables devraient apparaà®tre sur OS X et personnellement je vais garder un ½il attentif sur le projet C#/Mono qui pourrait devenir très intéressant.
    ObjectiveC est donc maintenant le seul langage pour développer en Cocoa, mais j'ai toujours considéré ObjC comme un frein au portage d'application sur OS X (qui connait ObjC ?) d'ailleurs il y a très peu d'applis écritent en ObjC à  part quelques freewares/sharewares. Le passage à  Intel risque d'en réduire encore leurs nombres pour tendre vers le zéro absolu !!

    Mais beaucoup, dont moi déjà , n'ont pas envie de voir leur appli sur Windows ou Linux, personnellement je n'y trouve aucun intérêt, car déjà  d'une ces systèmes me déplaisent, et de deux il y a assez de développeurs comme ça qui font le même type de soft. A moins d'avoir vraiment quelque chose de novateur à  présenter pour sortir du lot (et l'inovation est de plus en plus dure), le jeu n'en vaut pas la chandelle. Ca ne m'intéresse donc pas de développer pour ces plateformes... Je préfère me concentrer sur OS X, Objective-C et les APIs Cocoas, qui permettent de tirer le meilleur du système, de donner une certaine personnalité à  un soft, et apporter un maximum d'intégration au système, ce que l'on ne pourrait pas faire lors d'un développement multi-plateformes, qui oblige souvent à  occulter telle ou telle fonctionnalité et spécificité.
    D'autre part je ne vois pas pourquoi le passage à  Intel ferait "tendre vers zéro" le nombre d'applis ObjC...Il est vrai que les blockbusters dont le développement a commencé bien avant l'avènement d'OS X sont carbon, et tout refaire en ObjC demanderait bien trop de boulot, il faudrait tout reprendre à  zéro, mais ce n'est pas nouveau non ? Pourtant je suis certain que ca leur ferait du bien, un petit lifting... ;)
    Je suis sûr que beaucoup comme moi pensent que l'Objective-Cocoa est la meilleure façon de bien intégrer son appli au système, et de lui faire traverser sans encombres les futures évolutions d'OS X (par exemple un soft pur ObjC/Cocoa se recompile sans modif sous Intel).
  • beltbelt Membre
    12:20 modifié #30
    Java et C# (ne devrait-on pas plutôt dire C bémol) : quelle tristesse : des langages sans pointeurs !
    Personellement, j'ai beacoup de sources en C (vestiges de l'époque turbo_c) avec plein de pointeurs partout qu'objective-c me compile sans l'ombre d'un problème...
    A ce propos, il serait quand même souhaitable que xcode fasse quelques progrès, au moins pour proposer en terme de facilité et d'ergonomie ce qui existait sur turbo_c il y a dix ans (meilleur système de navigation dans le projet, debugger bien plus facile d'emploi, etc...)
  • WIMPWIMP Membre
    12:20 modifié #31
    dans 1090142389:

    Je n'en suis qu'à  mes balbutiements en cocoa (je compte surtout me mettre à  cocoa), mais un des des principaux avantages de java n'est-il pas dans le fait que ce langage est multiplatformes ?

    Me tompe-je  ???

    dans 1090143458:

    Non, c'est bien un de ses grands avantages tu as raison.


    Avantage qui a une sérieuse contrepartie: pour pouvoir être multi-plateforme, le code Java est écrit pour une machine virtuelle.
    Il n'est pas compilé, mais interprété a l'exécution.
    Pas étonnant que les performances en prennent un coup.
Connectez-vous ou Inscrivez-vous pour répondre.