dév Mac ou cross-platform ou plus du tout Mac?

Klimi

Membre confirmé
7 Juin 2005
44
2
Bonjour,
(ce message n'est pas une provocation)
après avoir perdu beaucoup pour avoir suivi aveuglément Apple dans le passé (OpenDoc), je suis resté néanmoins fidèle à la Pomme, mais en me limitant désormais à des RAD de haut niveau. Puis MacOS X est arrivé, s'est stabilisé et je venais de décider de me lancer à nouveau en indépendant dans l'écriture d'un projet lourd. Or, le système à peine défini, on recommence les errances et revirements brutaux comme au bon (?) vieux temps de Copland, OpenDoc, Publish & Subscribe, QuickDraw 3D... En plus, j'ai la nette impression que cette fois Apple va abandonner le Mac à moyen terme. Bref, chat échaudé une fois, n'a pas envie de se brûler à nouveau. Aussi je me pose des questions :
1) est-il économiquement raisonnable de se lancer dans un gros développement en partant de zéro ?
2) la solution contre le risque d'abandon du Mac par Apple serait le cross-platform. Mais, vers quelle plateforme? par principe, je préférerais Linux et les divers BSD, mais je suis débutant en ce domaine et n'y connais absolument rien. (d'ailleurs je ne connais que les API du Mac).
Je me demande si ces OS ont un avenir ailleurs que dans les serveurs (où la fin annoncée du XServe leur laisse de la place). Et les utilisateurs de ces OS achètent-il les licences de leurs softs?
[Un soft à l'esprit Mac a-t-il un avenir possible dans ce monde où la logique économique est inversée? Je m'explique : dans le monde Linux et Unix classique, la règle économique consiste à donner gratuitement une bouse inutilisable et à vendre ensuite cher le SAV, alors que dans le monde Mac, et même Windows, on cherche à faire des softs faciles à utiliser, en échange de quoi l'utilisateur accepte de payer une licence, parfois chère, pour une utilisation facile et sans souci.]
Et puis, techniquement, comment libérer un soft conçu pour reposer sur les librairies de MacOS pour en faire quelque chose de portable, sans avoir à écrire des millions de lignes?
Ainsi, par ex.,
- comment avoir une gestion du texte aussi poussée (OpenType, crénage, table Unicode des caractères...)
- et le PDF ? ClipPDF fait-il vraiment l'affaire?
- Peut-on découper une appli en threads indépendants? Cela a-t-il un intérêt pour l'utilisateur? (sur les Mac multiprocesseurs, c'est évident, mais avec Linux ou Windows ?)
- y a-t-il des librairies communes entre Linux et BSD ?
- et entre les divers Linux, les différences sont-elles importantes? Faut-il développer une version pour chaque Linux?
- quelles librairies utiliser pour l'interface? (il y en a tellement). Je veux du simple et de la programmation par objets.
- doit-on abandonner ObjectiveC (pourtant normalisé ISO)?

Sinon, avec quoi faites-vous du cross-plateform bas niveau (pas 4D ou FMP) Mac-WIndows ? Cela coûte-t-il 2 fois plus cher? c'est très différent Windows? Ferais-je mieux d'oublier le mac et de me consacrer uniquement à Windows ou à Linux?

Je vous prie de m'excuser pour ce long message et remercie ceux qui auront la gentillesse d'y répondre.
 
Klimi a dit:
(ce message n'est pas une provocation)
Quand même un peu non ? :rolleyes:

Klimi a dit:
En plus, j'ai la nette impression que cette fois Apple va abandonner le Mac à moyen terme.
Tu voudrais dire qu'Apple va cesser son activité prochainement ? C'est un scoop ! :D
Au fait, tu programmes pour Mac OS ou pour des ordinateurs Apple ? :rolleyes:

Klimi a dit:
(où la fin annoncée du XServe leur laisse de la place).
Faut sortir du monde Mac... le XServe n'a jamais fait de l'ombre aux serveurs Linux ;)

Klimi a dit:
[Un soft à l'esprit Mac a-t-il un avenir possible dans ce monde où la logique économique est inversée? Je m'explique : dans le monde Linux et Unix classique, la règle économique consiste à donner gratuitement une bouse inutilisable et à vendre ensuite cher le SAV, alors que dans le monde Mac, et même Windows, on cherche à faire des softs faciles à utiliser, en échange de quoi l'utilisateur accepte de payer une licence, parfois chère, pour une utilisation facile et sans souci.]
Ça va fort dans les clichés dis donc... :sleep:

Klimi a dit:
Et puis, techniquement, comment libérer un soft conçu pour reposer sur les librairies de MacOS pour en faire quelque chose de portable, sans avoir à écrire des millions de lignes?
Ça c'est effectivement un problème mais qui n'est pas lié à Mac OS en soit. Chaque OS a ses spécificités, faire un soft multiOS implique forcément de spécialiser ses différentes versions pour intégrer les spécificités ou alors ne pas les intégrer et avoir un soft moins bien intégré. C'est un choix à faire.

Klimi a dit:
- Peut-on découper une appli en threads indépendants? Cela a-t-il un intérêt pour l'utilisateur? (sur les Mac multiprocesseurs, c'est évident, mais avec Linux ou Windows ?)
MDR :D
La notion de thread n'a rien à voir avec le multiprocesseur.

Klimi a dit:
Sinon, avec quoi faites-vous du cross-plateform bas niveau (pas 4D ou FMP) Mac-WIndows ?
Je sais pas ce que t'entends par "bas-niveau", mais je te conseillerais Java, meilleure environnement actuel pour le multiplateforme, même si le support pour Mac est assez pourri.
 
molgow a dit:
Quand même un peu non ? :rolleyes:
Non, sincèrement

molgow a dit:
Tu voudrais dire qu'Apple va cesser son activité prochainement ? C'est un scoop ! :D
Non, je trouve qu'Apple délaisse de +en + le Mac pour la musique, le téléphone cf http://www.forbes.com/technology/2005/07/08/apple-cellphone-service-cx_de_0708apple.html
et probablement le cinéma et cela m'inquiète.


molgow a dit:
MDR :D La notion de thread n'a rien à voir avec le multiprocesseur.
OK, je me suis mal exprimé. Je me demandais si Linux (BSD j'en suis sûr) et Windows
savaient répartir les threads d'une appli en fonction de la charge de chaque CPU lorsqu'il y en a plusieurs. Dans certains cas, c'est fort utile.

Je sais pas ce que t'entends par "bas-niveau", mais je te conseillerais Java, meilleure environnement actuel pour le multiplateforme, même si le support pour Mac est assez pourri.
En effet, il y a Java. Mais le "program once, debug everywhere" est-il un mythe? Chaque fois que j'ai testé une appli Java, la lenteur était assez étonnante. Hasard ou obligatoire?
Mais c'est vrai que Java est ce qui vient d'abord à l'esprit.
 
Bonsoir,
si tu veux faire du cross-plateforme avec du C++, tu peux déjà utiliser les librairies standards dont la STL pour toutes les opérations de base. Pour l'interface graphique, il existe des librairies multi-plateforme telles que QT, GTK, WxWidget, ou plus orienté jeux SDL. A toi d'un choisir une.
Pour les threads, la plupart des UNIX (donc Linux et Mac OSX) gèrent la norme posix, mais pour ce qui est de Windows ??? Si ton application se porte à être multi-threadée (ce n'est pas toujours le cas), n'hésite pas à le faire, tu pourras sûrement avoir un gain performances quelque soit le système (mais si les UNIX se débrouillent mieux que Windows). Mais attention, c'est parfois délicat à gérer.
Mais saches que Cocoa est un très bon framework et qu'il reste la meilleure solution pour faire une application graphique sous Mac OSX (la version objective-c étant plus complète que celle en Java).
 
Klimi a dit:
...En effet, il y a Java. Mais le "program once, debug everywhere" est-il un mythe?...

Je n'en vois qu'un: JAVA !

Comme cité dans ce post, je suis sur un assez gros projet (tout est relatif!!!), et nous développons sur les 3 plateformes. Sachant que d'un point de vue entreprise, la seule plateforme valide est Windows, il est hors de question de tordre le source pour le rendre plus portable.

Et pour l'instant, nous n'avons jamais rencontré de tels soucis.


Klimi a dit:
...Chaque fois que j'ai testé une appli Java, la lenteur était assez étonnante...
C'était il y a longtemps ? Car les JVM ont fait beaucoup de progré. De plus, seul Swing est lent, et uniquement au démarrage. Amuse-toi à programmer Fibonnacci de 50 en C++ et en Java. Devine qui est le plus rapide !

C'est un exemple, faut pas en faire une généralité, certes, mais au même titre, qu'il ne faut pas non plus généralisé que Java est lent ;).
 
Bonjour et grand merci pour vos réponses, qui m'éclairent un peu, car pour avoir toujours suivi aveuglément Apple, je suis méchamment dans le brouillard, maintenant que je veux m'affranchir de cette absolue et désormais inquiétante dépendance.
J'avais suivi Linux à ses débuts, puis totalement oublié quand MacOS X a été annoncé.
Idem pour Java, qui me semblait promettait prometteur à ses débuts et ne m'avait point rebuté, mais que j'avais ensuite oublié, faute d'en avoir eu l'usage. C'est vrai aussi que la lenteur constatée, c'est surtout au démarrage. Je vais refaire des tests et voir ton post et les forums Java.
Mais tu as levé mon appréhension concernant Java. :)

il est hors de question de tordre le source pour le rendre plus portable.
oui, cela me fait mal de l'avouer, mais c'est ainsi. Je pense à un post où Didier Guillion, pour qui j'ai un immense respect, expliquait que lorsqu'on lui demande de porter ses softs sur Linux, il conseille VMWare ou un truc du style (me souviens plus). C'est en effet plus sage. Au pire, avec les Mactel, on pourra semble-t-il mettre Windows en DualBoot, si je ne parviens pas à obtenir du suffisant ou si Apple abandonne Java (peu probable, mais non impossible).

si tu veux faire du cross-plateforme avec du C++, tu peux déjà utiliser les librairies standards dont la STL pour toutes les opérations de base. Pour l'interface graphique, il existe des librairies multi-plateforme telles que QT, GTK, WxWidget
Merci, c'est intéressant. Sauf que j'ai toujours eu du mal avec C++. :( . Passer de C à ObjectiveC fut facile (j'avais essayé Smalltalk bien avant), Java lorsque j'y regardai me sembla facile et logique. Mais C++ est resté mon cauchemar :rose:. Le choix se limite-il à Java et C++?
GCC marche-t-il bien pour cibler Windows? (j'en suis resté à feu CodeWarrior pour le CP :rose: )


Cocoa est vraiment un régal à mon goût, les frameworks de Java sont-ils sensiblement plus complexes ou moins fournis?

Encore merci pour vos réponses et pardon pour mon babillage de néophyte.
 
Bonjour,
pour GTK, il faudrait vérifier mais c'est peut être encore du C, car il me semble qu'il existe un GTK+ qui est un wrapper C++ pour GTK.
Sinon, Cocoa est tellement agréable à utiliser pourquoi vouloir faire autre chose :D :D :D ah oui, tout le monde n'a pas un Mac. :siffle:
Cocoa est vraiment un régal à mon goût, les frameworks de Java sont-ils sensiblement plus complexes ou moins fournis?
La version Java est moins complète que la version objective-c.
 
Le probleme avec GNUStep, c'est que c'est bien moins avance que Cocoa. Et si tu developpes en Cocoa, tu vas rapidement avoir une furieuse envie d'utiliser les dernieres technologies d'Apple : binding, Core Data ... et la adieu compatibilite :D :D :D Mais a part ca, pourquoi pas.