Pérennité d'Obj-C et conseils divers

  • Créateur du sujet Créateur du sujet Membre supprimé 2
  • Date de début Date de début
M

Membre supprimé 2

Invité
Bonsoir à tous.

Je passais par là, quand, devant mon cours de JAVA, je ne me sentais plus l'envie de me broyer quelques neurones sur les interfaces après un réveillon très arrosé.

Je suis arrivé sur Mac il y a plus d'un an maintenant. Je suis en école d'info où j'apprends ou ai appris (la maîtrise c'est une autre histoire ;-)) le C, C++ et maintenant le JAVA.

J'ai acheté il y a peu de la littérature sur la prog Mac (surtout Objective-C), et il faut avouer qu'il faut bien faire le tour des ouvrages pour distinguer le livre le plus adapté aux besoins.

Mes interrogations sont les suivantes:
- Quel est l'espoir de trouver un travail où je pourrai programmer régulièrement ou non sur des projets Mac ? (Je sais que les gens compétents trouvent toujours du travail, mais dans ce domaine si particulier...)
- L'Objective-C vaut-il vraiment la peine d'être maîtrisé pour profiter à fond des technos Apple ? Je pose cette question car j'ai pu avoir un aperçu des technos offertes par OSX et j'avoue avoir été assez bluffé.
- Le C++ ou JAVA (langages tout de même plus pérennes) sont-ils suffisants ? J'ai lu que JAVA ne serait plus supporté tel qu'actuellement dans XCode dans 10.5.

Si vous pouviez également me faire de vos expériences sur les projets Mac auxquels vous avez participé !

En vous remerciant par avance,
m4el
 
Bonsoir,
m4el a dit:
- Quel est l'espoir de trouver un travail où je pourrai programmer régulièrement ou non sur des projets Mac ? (Je sais que les gens compétents trouvent toujours du travail, mais dans ce domaine si particulier...)
Peut être en tant que dévelopeur indépendant avec de bonnes idées de softs pour Mac ???
- L'Objective-C vaut-il vraiment la peine d'être maîtrisé pour profiter à fond des technos Apple ? Je pose cette question car j'ai pu avoir un aperçu des technos offertes par OSX et j'avoue avoir été assez bluffé.
Ca reste et restera la voie royale pour profiter de toutes les technologies d'Apple, comme les bindings par exemple. Mais de nombreuses API restent accessibles en C.
- Le C++ ou JAVA (langages tout de même plus pérennes) sont-ils suffisants ? J'ai lu que JAVA ne serait plus supporté tel qu'actuellement dans XCode dans 10.5.
Cocoa en Java n'est plus développé par Apple, mais le Java pur et dur reste utilisable sur Mac et sur XCode (mais de tout manière pour le Java, Eclipse est mieux adapté).
Le C++ est utilisable avec l'objective-c : ça s'appelle objective-c++. Tu peux tout à fait écrire des morceaux de tes programmes en C++ et ne faire que l'interface graphique en Cocoa. Mais si tu veux faire ton interface graphique en C++, il faudra passer par d'autres API que Cocoa (par exemple qt ou wxWidget), ce qui apportera aussi de la portabilité à ton application.
 
ntx a dit:
Peut être en tant que dévelopeur indépendant avec de bonnes idées de softs pour Mac ???

C'est aussi une éventualité à laquelle j'ai pensé ! ;-)

ntx a dit:
Ca reste et restera la voie royale pour profiter de toutes les technologies d'Apple, comme les bindings par exemple. Mais de nombreuses API restent accessibles en C.

Bon à savoir, mais tant qu'à faire, je préfère me lancer dans l'Obj-C, voire l'Obj-c++ (oui, j'aime les petites mais nobles causes ;-))

ntx a dit:
Cocoa en Java n'est plus développé par Apple, mais le Java pur et dur reste utilisable sur Mac et sur XCode (mais de tout manière pour le Java, Eclipse est mieux adapté).

J'utilise déjà Eclipse pour mes projets JAVA, même si je trouve que c'est un veau. Cela dit, la compilation temps réelle pour la correction syntaxique et typographique est quand même très appréciable. Enfin je l'aime bien le petit >:]


ntx a dit:
Le C++ est utilisable avec l'objective-c : ça s'appelle objective-c++. Tu peux tout à fait écrire des morceaux de tes programmes en C++ et ne faire que l'interface graphique en Cocoa. Mais si tu veux faire ton interface graphique en C++, il faudra passer par d'autres API que Cocoa (par exemple qt ou wxWidget), ce qui apportera aussi de la portabilité à ton application.

J'ai déjà codé en wxWidgets pour mes projets en C++, et j'avoue avoir été particulièrement imrpessionné de l'envergure du projet. Cela dit, ce qui me chagrinait, c'était cet aspect "OS9", de la lib. C'est du bon Carbon, c'est bien ça ?
Enfin ce que je veux dire, que oui, c'est portbale, transparent sous Linux et Windows, mais la GUI a une tête bizarre sous OSX, ça ne sent pas le Cocoa et l'interface native.

Merci beaucoup pour tes réponses !
 
de la part d'un débutant sur mac: l'objective-c est absolument génial à condition de toujours réfléchir selon un point de vue "statique / dynamique" à confronter avec une situation "à la compilation par rapport à ce que l'on peut faire durant l'exécution". c'est vrai aussi pour le C++, soit, mais c'est encore plus fortement présent avec l'objective-c.
 
m4el a dit:
J'utilise déjà Eclipse pour mes projets JAVA, même si je trouve que c'est un veau. Cela dit, la compilation temps réelle pour la correction syntaxique et typographique est quand même très appréciable. Enfin je l'aime bien le petit >:]
Essaie ça http://www.netbeans.info/downloads/download.php?type=5.0b2 :D

Il y a personnellement une chose que j'apprécie beaucoup avec l'objective-c, c'est son élégance.

Un exemple tout bête.

Bloc de code:
En JAVA:
cube.placeObjet(10, 25,100)

En Objective-C
[cube placeObjetAvecCoordonnéeX: 10 avecCoordonnéeY: 25 avecCoordonnéeZ: 100]

L'objective-C est le seul langage à ma connaissance qui nomme les arguments, ce qui rends le code beaucoup plus lisible. Du coup même une personne ne connaissant pas les méthodes peut comprendre le code. (Surtout beaucoup plus simple de revenir sur son propre code intouché depuis plus d'un an :D ).

Par contre, il faut aussi prendre en considération que le Java évolue très vite depuis ces dernières années. La prochaine SDK par exemple (1.6.0) aura des nouvelles fonctions multimédia très intéressante. La plus intéressante: l'intégration d'openGL dans le JAVA. Tout ce qui est graphique sera affiché par l'OpenGL, donc très rapide.

A regarder absolument pour se faire une véritable idée du futur potentiel du Java:
http://java.developpez.tv/javadesktop-dec2005/

Le problème c'est justement sachant ça, de choisir entre COCOA + Objective-C ou le Java.
Surtout que les IDE comme Netbeans rattrapent très vite Xcode et ses outils (Shark, etc...)
Il suffit de voir cette vidéo pour comprendre par exemple que le Java n'est plus du tout à la ramasse face à interface builder:
http://www.netbeans.org/files/documents/4/475/matisse.html
Et surfer sur ce site web pour regarder les démos pour comprendre que le Java possède aujourd'hui son propre Shark très puissant:
http://profiler.netbeans.org/

Je ne peux que vous conseiller ce blog aussi pour voir le potentiel futur des applications desktop de Java:
http://www.jroller.com/page/gfx

Certaines choses sont redondantes avec les vidéos ci dessus vu que se sont en partie les travaux de Romain qui sont présentés (et oui ça ressemble pas mal à de l'Apple étant donné que Romain apprécie beaucoup Apple). :jap:

Difficile de choisir une voie quand on voit ça. J'aurais bien voulu que le Java reste lent et tout moisie, ça m'éviterait d'hésiter aujourd'hui !

D'un coté, le COCOA avec l'intégration totale de Mac OS X pour une très bonne expérience graphique et multimédia ainsi que des technos innovantes (Binding, core data, etc..).

De l'autre, le JAVA qui va permettre avec la prochaine version de faire des applications quasiment aussi poussé graphiquement grâce à l'openGL mais avec l'avantage d'être multi-plateforme, et des outils qui étaient à la ramasse mais rattrapent rapidement leur retard (les moyens de Sun sont énormes par rapport à Apple.).

Dur dur d'être développeur (c) Jordie :D

[EDIT] J'avais pas fait gaffe, mais le data bindings est déjà présent dans la JDK 5 https://databinding.dev.java.net/.
 
C'était bien la peine de "quoter" mon poste de 3 écrans, juste pour dire 2 lignes :D
Par contre, un exemple des futurs applications Java qui pourraient arriver d'ici peu, les jeux:
http://tribaltrouble.com/
tt09.jpg


J'ai testé, c'est très prometteur. Et surtout le concept est très intéressant, tu paies le jeu une fois, tu le fais tourner sur toutes les plate-formes.
 
normalement 'cocoa java' ne concernera pas 'Leopard', probablement pour ne pas faire de l'ombre à l'objective-c.

de toutes façon, ceux qui s'intéresse fortement à l'objective-c, c'est pour réaliser des théories adaptatives, pour l'objective-c++, cela concerne le "temps réel".

Java, a d'abord la vocation de réaliser des applications de manière rapides et intuitives......et multi-platesformes.