Quel langage ?

gibet_b

Membre expert
Club iGen
28 Mars 2005
1 905
119
45
Combrailles (France)
www.bournisien.info
Salut à tous,

Etant développeur de formation, je me dis depuis que j'ai un mac que je me mettrai bien au développement sur mon Mac.

Mon frère (également développeur) s'est mis au Cocoa. Mais moi ce qui m'embête dans un langage 100% Apple c'est justement que c'est un langage fermé... J'aurai bien voulu faire du développement multiplateforme. J'avais pensé au Java, que j'aime bien mis à part sa lenteur mais Apple a décidé de ne plus le supporter dans Cocoa.

Alors que faire ? Des idées, des solutions ?

Merci !
 
Bonsoir,
pour commencer Cocoa n'est pas un langage, c'est un framework qui existe pour l'objective-c et encore pour quelques temps le Java.
L'objective-c est une surcouche du C, donc si tu connais déjà ce langage, il y a peu à apprendre. Il reste le langage le plus adapté pour développer des applications pour Mac OSX. De plus il est complètement interfaçable avec du C ou du C++. Il te permet d'accéder à toutes les technologies proposées par Apple : Quicktime, OpenGL, Bonjour, ...
Si tu préfères le Java, tu peux tout à fait développer pour Mac OSX sans utiliser Cocoa, mais en utilisant les librairies standards du Java.
 
  • J’aime
Réactions: molgow
Si on prend le langage C/C++, tant que tu reste avec la bilbiothèque de base, il peut être considéré comme multi plateforme. Il suffit de recompiler sur la plateforme choisie par exemple avec gcc.

Ensuite si tu commence à utiliser les interfaces utilisateurs, là c'est plutôt spécifique à chaque plateforme...

Il existe toute fois un outil de dev multi-plateforme qui fonctionnerait assez bien, mais je ne l'ai jamais essayé personnellement... RealBasic
 
  • J’aime
Réactions: qsdfg
Tout à fait, le C++ utilisés avec des librairies communes (STL, SDL, OpenGL, WxWidget, GTK, QT, ... ) est parfaitement multi-plateforme.
Sinon le Java l'est aussi. Ce qu'il faut oublié pour le multi-plateforme, c'est Cocoa :)
 
ntx a dit:
Tout à fait, le C++ utilisés avec des librairies communes (STL, SDL, OpenGL, WxWidget, GTK, QT, ... ) est parfaitement multi-plateforme.
Sinon le Java l'est aussi. Ce qu'il faut oublié pour le multi-plateforme, c'est Cocoa :)

Voilà, c'est cela que je voulais savoir ! Je ne savais pas quels étaient les libraires graphiques qui fonctionnaient sous mac os x. Cependant pour avoir une application vraiment intégré à mac os x, on est obligé d'utiliser Cocoa non ?

EDIT : je viens d'aller voir sur le site de wxwidget et les applications développés avec semblent très bien intégrées au point de vue de l'interface. Qui plus il y a une news disant que le passage à intel se fera sans douleur. J'ai même vu que c'était la libraire utilisé par les développeur de Audacity... Quelqu'un ici l'utilise ? Existe-t-il un tuto en francais pour les bases ?

Merci encore de vos réponses !
 
Du multi platform, et qui en plus devrait ressembler à du Mac sous Mac Os X ????

Une seule réponse: JAVA.

D'ailleurs, en passant, si ton code Java utilise les lib QT d'Apple, adieu le multi-platforme !

Pour preuve: regarde les captures d'écran de Medic à cet endroit.

Le fond est bien en metal brossé, les menus, le packaging, les boutons... tout y est. De plus sans rien faire (ou presque)... Tout est 100% Java et 100% Multi platforme.
 
j'ai développé avec RealBasic et c'est un langage bien plus puissant que l'on ne pourrait le penser. Compatible en grande partie avec VisualBasic.net de microsoft, multiplateformes (compilation pour OS 9, OS X, Win95 à XP (proprement, sans DLL !!) et dans une moindre mesure Linux).

L'appli réalisée sera beaucoup plus mac friendly qu'avec java.. l'interface graphique est parfaite. Des outils d'interfaçage avec des bases de données sont livrées (oracle, mysql, postgresql, 4D, etc..) ainsi qu'une base de données maison. Le framework est très complet: services web, gestion des ports série, accès au webkit, outils de graphiques vectoriels, langage de script, programmation VBA pour programmer des applis Excel, Word et PowerPoint, etc..
 
Je ne connais pas RealBasic, donc je me tairai à ce sujet.

Par contre il est vrai que Java est une bonne solution si tu prends la peine de "l'adapter" au Mac (et aux autres plateformes); par défaut, une appli Java n'est pas très MacFriendly, mais en questionnant le système au démarrage de ton appli afin de connaître la plateforme, avec un simple if, cela te permet ensuite de prendre les classes appropriées pour les spécialités de l'interface graphique (cela rajoute du code, évidemment, car certains passages sont à double suivant l'OS).

J'ai fait qques trucs du genre, sans aller trop loin, mais si tu veux une idée...
Consulte également la docu d'apple à ce sujet, même si tout n'est pas évident, ça aide.
 
RealBasic fait vraiment dur. Son développeur ajoute souvent de nouvelles choses mais il corrige peu les bugs déjà existants. De plus, bien qu'il y ait la possiblité de programmer en orienté objets, il y a bien des choses qui ne sont pas des objets en RealBasic car on ne peut pas en hériter.

L'idéal pour faire une belle application sur Mac est Cocoa. Si on veut une solution multiplatforme, on faire l'interface avec Cocoa et employer autre chose pour le reste pour nous permettre de créer un portage facile ailleurs. Il faudra donc maintenir du code d'interface différent pour chaque platforme.

Une autre solution est d'employer des trucs comme SWT ou Swing en Java ou encore wxWindow comme tu le mentionnais. C'est un autre genre de compromis.

Il n'y pas de solution parfaite à ce problème. Il faut choisir en fonction des besoins.