Apprendre et débuter la programmation pour Macintosh
[Débuter la programmation pour Macintosh, MacOS 7, 8 et X, trouver la documentation sur la Toolbox, les langages C, C++, Pascal, Basic, Java, Hypertalk, Prograph, Hypercard, MPW, Code Warrior, ResEdit, Resorcerer, les ressources, compilateurs, linkers, debugger, sur les traces de Clarus Moof la Dogcow]
Cette page nécessite d'activer JavaScript.
Si vous n'en disposez pas, vous devrez peut-être copier manuellement les adresses des liens dans le champs de saisie des URL de votre navigateur
Mise-à-jour le 6/02/2001
http://www.multimania.com/resister/
| Débuter la programmation pour Macintosh | |
|---|
Attention, cette page ne prétend absolument pas être exhaustive. Il s'agit juste de donner quelques pistes pour débuter la programmation. Si comme moi vous habitez loin d'une grande ville, vous serez probablement content de savoir où trouver un peu de documentation.
Car le plus dur dans la programmation, c'est la recherche des outils et de la documentation nécessaire. Ensuite, il est juste question de méthode. La phase préliminaire de conception, elle, est plutôt amusante!
Pourquoi programmer pour Macintosh
Lorsque le chapitre qui devint cette page a été écrit, nous étions en fin 1997. La presse tirait alors quelle bande de cons et/ou de désinformateurs malhonnêtes! à boulets rouges sur Apple, en annonçant la mort imminente d'Apple et la disparition du génial Macintosh, que tous ceux qui connaissent un tant soit peu l'informatique (sauf ceux qui ont offert leur âme à Microsoft) reconnaissent pourtant comme la meilleure plateforme micro-informatique du marché. Dans un tel contexte, il était capital d'encourager la création de programmes pour le Macintosh, même de simples freewares ou sharewares, afin de dynamiser une plate-forme que certains voulaient moribonde. Il s'agissait à l'époque de soutenir Apple et de continuer à écrire des programmes pour ne pas se retrouver un jour obligé de subir des PC Wintel, et devenir de ce fait des escalves de Micro$oft et Intel. L'objectif était alors et avant tout défendre sa liberté.
Aujourd'hui, il y a bien d'autres raisons d'écrire des programmes pour Macintosh. Apple bat tous ses records de ventes et cela change beaucoup de choses. Ainsi, en 1999, 3000 nouveaux logiciels sont apparus! On peut programmer pour le plaisir, car c'est une vraie jouissance que de voir naître un programme que l'on a créé à partir d'horribles lignes de texte; plaisir aussi avec le sentiment de connivence et la connaissance intime de la machine et de l'OS que la programmation implique. Mais on peut aussi programmer, parce que cela permet de gagner de l'argent (car il est bien difficile de vivre sans) d'une façon agréable et non-polluante. Certains auteurs de sharewares exclusivement pour Mac tirent des revenus non-négligeables de cette activité. Quelques-uns sont même devenus riches. Pour ma part, même si je suis loin d'avoir fini ce grand projet que j'ai commencé en juin 98, je ne regrette vraiment pas de m'être lancé dans pareille aventure. Apprendre à programmer le Mac m'appris beaucoup de choses et pas seulement dans le domaine particulier de l'écriture de programmes pour cette merveilleuse machine. C'est pourquoi je vous invite à tenter une expérience similaire. « Hello! Enter and say Moof! », dirait Clarus la Dogcow.
Depuis peu, nous avons une nouvelle motivation possible : celle de faire partie des pionniers qui vont écrire des programmes d'applications pour MacOS X, le système d'exploitation (OS) pour micro-ordinateurs le plus puissant de la planète et le plus en avance technologiquement
Quels outils
pour la programmation avec MacOS?
Avertissement : l'arrivée de MacOS X constitue une nouvelle révolution pour le monde du Macintosh. Ce qui est écrit ici sur les langages et les outils concerne MacOS classique et Carbon (la boîte de compatibilité de MacOS X avec les précédents systèmes). Pour les spécificités de Cocoa (la nouvelle Toolbox de MacOS X), voyez plus particulièrement la page La révolution MacOS X, en complément de celle-ci.
1. Programmer avec CodeWarrior et MPW
Ces deux outils sont dit de bas niveau, car il permettent un contrôle très poussé de ce que vous programmez. Vous intervenez au niveau des ROM et de la Toolbox. (le niveau le plus bas est celui du processeur, que l'on pilote en langage machine avec 0 et 1! La Toolbox est un très vaste ensemble de fonctionnalités qu'Apple met en ROM ou dans l'OS à destination des programmes : une gigantesque boîte à outils, comme son nom l'indique). De ce fait, vous pouvez donner des ordres à n'importe quelle partie de la machine.
MPW (Macintosh Programming Workshop), qui a l'avantage d'être gratuit, vous permettra de réaliser de belles applications, au prix d'un développement plus long et plus complexe. Il vous faudra un certain temps pour assimiler l'interface pas du tout intuitive. Pour ma part, j'ai passé plus de de temps à essayer de comprendre comment utiliser les nombreux morceaux de MPW, qu'à apprendre à écrire de petits programmes simples, source en C et ressources comprises! (mais je n'avais probablement pas la bonne doc ;-). MPW a été conçu pour des pros de la programmation qui n'ont pas besoin qu'on les aide par une interface claire! En fait, si vous êtes ambitieux et courageux, si les lignes de commandes complexes ne vous effraient pas, alors MPW, qui est constitué notamment par un shell bien ardu à apprendre, est pour vous. Comme il est gratuit, il serait dommage de vous en priver, car c'est vraiment un bon produit, probablement le meilleur, si l'on veut bien oublier son interface lamentable. Si vous ne vous reconnaissez pas dans ce portrait, oubliez MPW qui risquerait de vous décourager!
CodeWarrior, lui, vous facilite grandement le travail, notamment par son interface bien supérieure, son débogueur beaucoup plus simple d'emploi, sa documentation assez claire et abondante (des milliers de pages au format PDF) conçue aussi bien pour les débutants que pour les pros et par la possibilité d'utiliser le "framework" PowerPlant Constructor, ensemble de classes C++ convenant à toutes sortes d'applications pour la réalisation de leur interface. En outre, alors que vous devez copier MPW et sa volumineuse et indispensable documentation depuis un des sites mentionnés ci-dessous, CodeWarrior est fourni sur CD avec des explications partiellement en français (ouvrages de chez Eyrolles sur le C et le C++). Cependant, si vous habitez hors de Paris ou d'une grande ville, armez-vous de patience pour trouver le revendeur qui le propose (pour ma part, j'habite à 100 m d'un Apple Center :-) . Et s'il ne l'a pas en stock, précisez bien que vous voulez la version pour MacOS et surtout pas pour PowerPC! (Cette dernière version s'adresse aux systèmes embarqués à base de PowerPC ou aux stations RISC IBM PowerPC? mais pas aux Macintosh!). CodeWarrior Pro présente un avantage pour qui voudrait expérimenter (dans un but didactique, bien sûr) les divers fichiers sources qui exploitent la grande vulnérabilité des PC : il peut compiler aussi pour x86. ;-)
Enfin, notez que le CD de CodeWarrior contient MPW.Trouver MPW : MPW est en copie libre sur http://developer.apple.com/tools/, sur ftp://dev.apple.com/(il me semble dans devworld/Tool_Chest/Core_Mac_OS_Tools/) ou sur ftp.apple.com. (j'ignore dans quel dossier). Il est aussi présent sur le CD de CodeWarrior Pro pour Macintosh (ces deux outils sont parfaitement compatibles entre eux). Vous pouvez donc en toute légalité demander MPW à quelqu'un qui possède Codewarrior.
Trouver CodeWarrior : ce produit est édité par Metrowerks en trois versions (distribuées en France par Aware jusqu'en sept. 2000, par TouSoft depuis). Prix de 800 FF environ (Discover Programming) à 3500 FF (version Pro, code pour 68k,PowerPc, x86); Academic Pro (id) : comptez 1000 FF. La version Academic Pro présente un rapport qualité/prix remarquable, puisque sa seule limitation est d'être réservée pour l'écriture de programmes non-commerciaux et notamment aux étudiants. (la version 5 troque le langage Pascal au profit de Java)
2. Basic avec FutureBasic et RealBasic
Le langage Basic est réputé plus simple que ceux évoqués plus haut. Voici trois outils (il y en a probablement d'autres) :
Real Basic (www.realsoftware.com) ou FutureBasic (www.pixmix.com et http://euro.futurebasic.com/fr/), ou Vip Basic, de Mainstay, distribué en France et en Europe (www.irislink.com) par I.RI.S. Ces outils en Basic ont l'avantage de fonctionner sur de petites configurations. (ex. 68020, OS 7.1, 3,5 MO de RAM pour RealBasic 1.1.1).
Concernant Future Basic, la version 2 dispose d'un manuel partiellement en français, d'un constructeur d'interface en mode graphique, vous autorise à placer du code en assembleur 68k
(essai de cette ancienne version dans SVM Mac 101, 12/98). Depuis janvier 2000, FutureBASIC 3 est disponible en France (en même temps qu'aux USA). Le produit a été intégralement traduit en notre langue, y compris les centaines de fichiers d'exemples. Le CD européen contient la version française et la version US. Les versions italienne et allemande sont en cours de réalisation. FutureBasic 3 compile désormais des applications PPC, 68K et Fat. Selon Staz Software, l'auteur de la version US, le code généré est en moyenne 4 fois plus rapide que celui de Real Basic (nous n'avons pas vérifié ce point). L'environnement est ouvert (le runtime est éditable par le programmeur), l'accès à la Toolbox est quasi intégral, et les shared libraries sont enfin accessibles. On peut donc s'attaquer à d'assez gros et complexes projets. Un runtime objet est livré sur le CD, mais il est encore dans sa prime enfance.
Vous trouverez plus d'infos concernant Future Basic 3 sur http://euro.futurebasic.com/fr/ou en écrivant à :
A. Pastor
Pix & Mix (distributeur européen FutureBASIC 3)
32, boulevard de Ménilmontant
75020 Paris - France
Tél. : +33 1 43 46 44 44 - Fax : +33 1 43 49 16 51
Pix & Mix nous a semblé dynamique et attaché à Future Basic. C'est un bon point que nous tenions à souligner.
Quand à RealBasic, doté lui aussi de fonctions de construction graphique d'interface, il est fort bien documenté (mais en anglais), riche en exemples, compatible avec VisualBasic (de Kro$off, utile si vous venez du monde obscur) et, last but not least, son compilateur est excellent. Vous en trouverez un essai rapide dans SVM Mac 105 d'Avril 99. La version 2, désormais disponible, est beaucoup plus riche. Le créateur (un passionné du Macintosh :-) de l'excellent RealBasic définit son produit comme le juste milieu entre les logiciels usant de langages intervenant à un haut niveau comme Director (simples, mais limités) et ceux de bas niveau, comme MPW ou CodeWarrior (illimités, mais demandant un apprentissage assez long). Cependant, pour ceux qui se trouveraient limités par le Basic, RealBasic autorise le recours au C lorsque cela est nécessaire, si bien que vous pouvez aller très loin, plus simplement qu'avec des outils comme MPW ou CW. (De toutes façons, je doute fort que vous atteigniez les limites de RB. À moins de travailler sur un projet très ambitieux ou de vouloir écrire des drivers, vous n'aurez probablement jamais recours aux ajouts en C).
Plus d'infos sur www.realsoftware.com En conclusion, je crois que si j'avais connu plus tôt ces deux remarquables outils de programmation en Basic, je ne me serais pas lancé dans l'apprentissage du C et de CodeWarrior.
3. Prograph : un inconnu génial
Prograph est un langage réçent et assez révolutionnaire. Certains disent de lui qu'il est aux autres langages ce que le Macintosh est aux autres ordinateurs! (D'ailleurs, il me semble que des cerveaux d'Apple ont contribué à sa naissance). Sa particularité : il utilise une syntaxe graphique!.
Hélas, son éditeur, Pictorius, à l'heure actuelle, a décidé de ne plus mettre à jours les outils Prograph pour Macintosh. Cela ne vous empêche pas de tester l'IDE Classic (p. ex. pour une interface prototype) et, s'il vous plaît, de demander à Pictorius d'en reprendre le développement. (C'est ce que j'ai d'ailleurs fait). Une décision sera prise quant à la continuité de cet outil sur Mac vers Mars ou Avril 2001. Donc, si vous souhaitez pouvoir acquérir les outils Prograph (dont le compilateur) pour MacOS X, c'est maintenant qu'il faut le faire savoir à Pictorius. (URL ci-dessous).
Comme je viens seulement d'essayer Prograph, je ne peux guère vous en dire plus.
Vous trouverez une version gratuite de l'IDE Prograph, comprenant un éditeur et un interpréteur, ainsi que beaucoup de docs et des liens sur www.taylor-design.com. La version commerciale se trouve sur www.pictorius.com.
Il semble qu'il en existe aussi une version OpenSource, mais je ne sais pas où la trouver.
4. Des produits à part
Jusqu'ici, les produits présentés étaient des outils généralistes qui intervenaient à des niveaux assez bas. Il en existe cependant d'autres, plus spécialisés qui permettent de réaliser plus simplement certaines catégories de programmes applicatifs. En voici quelques-uns :
- 4D de la société française ACI, est un puissant gestionnaire de bases de données (SGBD), il dispose d'une foule d'outils, dont un compilateur optimisé tant pour les processeurs Motorola 68k que pour les PowerPC et même pour les vieilleries boguées de chez Intel (les Pentium, pour ceux qui n'auraient pas compris ;-). De nombreux développeurs de par le vaste monde refusent d'utiliser autre chose que 4D.
- FileMaker Pro, célèbre gestionnaire de Bases de Données, d'une grande facilité d'emploi dispose lui-aussi d'une version pour développeurs, qui offre des possibilités similaires. Hélas, la version 5 bénéficie d'une intégration poussée avec Microchiotte Excel et Access, qui n'est pas un progrès et qui se répercute défavorablement sur l'interface. Heureusement, FileMaker Inc. n'a pas poussé la ressemblance avec Microchiotte Office en allant jusquà truffer FMP d'insupportables bogues majeurs ni à le rendre compatible avec Virus Basics for Applications.
- Omnis est lui aussi un puissant SGBD relationnel très apprécié. Il a pour particularité d'exister aussi en version pour Linux.
Grâce à ces puissants gestionnaires de bases de données, capables de compiler des programmes autonomes, vous pouvez notamment réaliser facilement et rapidement des logiciels de gestion et des sites web dynamiques.
- Hypercard et Supercard peuvent vous permettre d'écrire de très nombreuses applications, beaucoup plus simplement que les autres outils. Il s'agit de logiciels auteurs multimédia (mais pas seulement, loin de là) qui peuvent produire des applications indépendantes (avec toutefois l'aide d'un produit tiers nommé LiveCard, dans le cas d'Hypercard). Hypercard est un produit d'Apple (www.hypercard.apple.com), tandis que Supercard est désormais vendu par IncWell. Le premier est plus simple, mais moins puissant que le second qui constitue une bonne alternative au coûteux Director et dont une nouvelle version vient de sortir (On attend toujours la version 3 d'Hypercard, annoncée mais sans cesse repoussée). Hypercard a l'avantage de pouvoir s'enrichir d'une très vaste bibliothèque de fonctions externes (XCMD), qui lui permettent de fabriquer des applications pour de très nombreux besoins, bien au-delà de la simple présentation interactive façon Director. (Pour Supercard, qui se veut un super hypercard, je pense qu'il en est de même).
Un nouveau produit vient d'apparaître, qui se présente comme comme un RAD (Rapid Application Developpement) descendant d'Hypercard. Il s'agit de Serf. ( www.best.com/~serf/)
- AppleScript vous permet d'automatiser de nombreux traîtements, dont ceux du Finder et de bien des applications. Il est fourni, avec l'éditeur idoine et un compilateur sur tous les Mac. Documentation vaste sur http://developer.apple.com/
5. ResEdit et Resorcerer
Ce sont deux éditeurs de ressources. Un programme Mac est composé du code-source et de ressources, qui composent l'interface et que l'on crée et manipule très facilement avec un éditeur de ressources, tel ResEdit ou Resorcerer (ou plus difficilement avec Rez, sous-ensemble de MPW ;-), avant d'assembler le tout avec un compilateur. Cela a pour avantage de faciliter grandement la conception, puis la réalisation et enfin la modification (ex. traduction en une autre langue) de l'interface.
ResEdit est gratuit. Vous le trouverez sur http://developer.apple.com/tools/
Resorcerer est lui un produit commercial, assez cher, mais bien plus complet et productif que ResEdit.Pour les autres outils, pour avoir des avis de divers utilisateurs, consultez donc les forums fr.comp.sys.mac.programmation (en français) & comp.sys.mac.programmer (US) ou voyez ci-dessous. Le site www.realgurus.com se consacre uniquement à RealBasic. Lancez une recherche sur le Web dans un moteur de recherche. Voyez notammentwww.macsoftware.apple.com, un catalogue (non exhaustif) en ligne (en plusieurs langues dont le français) regroupant plus de 18000 produits pour Mac! (dont 3000 arrivés en 99!)
NB : Sur le CD d'Univers MacWorld nO90 de Mai 1999, sont présentes les démos et documentations de CodeWarrior, SuperCard, RealBasic, FutureBasic. Par ailleurs, si vous êtes novice dans l'art de programmer, lisez aussi le numéro 73 d'Univers Mac (12/97), vous y trouverez de nombreux conseils. Si Hypertalk, plus accessible que le C/C++, a vos préférences, c'est le numéro 79 (06/98) qu'il vous faut. Vous trouverez sur le CD le logiciel OpenStack, outil de programmation complet pour Hypercard (et Supercard?).
Voyez aussi Login (ex-Dream, ex-AmigaDream), cette excellente revue très technique sur l'informatique non Wintel s'est depuis quelques mois ouverte à MacOS X. (mensuel, vente en Kiosque, cf infra).
Si AppleScript et JavaScript, langages de macro-commandes interprété par des applications, vous intéressent, je vous invite à visiter le site de Danny Goodman (dannyg.com). Bien sûr la consultation du site d'Apple (www.apple.com/applescript/) vous sera aussi très utile et, si vous êtes novice, le numéro 80 d'Univers Mac (Juillet 98).
NB : Les logiciels ci-dessus ne sont pas les seuls outils de programmation pour MacOS. Citons par ex. : GNU C/C++ (gratuit), Visual Café (de Symantec, pour Java), ProFortran95 ou Fortran F77 d'Absoft (www.absoft.com), MacPerl
[Citons aussi, parmi les compilateurs trouvables mais aujourd'hui abandonnés : Symantec C++ (comparable à CodeWarrior, mais "limité" aux C et C++), Borland TurboPascal
]. Si je ne parle pas de tous les outils, c'est que je ne les connais pas tous. Sachez qu'il y en a encore d'autres, dont j'ai oublié les noms, et aussi pour d'autres langages (lisp, Python, etc.).
La documentation
- Login HS 4 : l'excellente revue française Login (le mag. de la micro alternative) (www.login.posse-presse.com) a sorti en mi-novembre 2000 un hors-série (daté d'octobre) entièrement consacré à la programmation sur Mac (Classic et X), disponible en kiosques (39 FF) ou par correspondance (cf site ou login@posse-presse.com). Malgré quelques coquilles sans gravité, je vous recommande chaudement la lecture de ce HS 4. Le CD contient (entre autres) des démos de CodeWarrior 6 et de RealBasic, ainsi que des outils pour le langage Python.
- ADC News : le bulletin (en anglais) des développeurs (programmeurs) Apple. Pour le recevoir, il faut s'enregistrer en tant que développeur sur le site web connect.apple.com/ en remplissant le questionnaire et en y cochant la case "i wish to receive ADC News by mail". Comme expliqué ci-dessous, le programme de base Apple pour développeurs est gratuit.
- Inside Macintosh : de nombreux volumes sont disponibles. Citons : Macintosh essential Toolbox, More Macintosh Toolbox, Mac OS 8 Human Interface Guidelines, MacOS 8 Toolbox Reference, etc. Tous ces ouvrages, et d'autres (CarbonPaper, Apple_Events_Registry_&_Suites, etc.) sont disponibles au format PDF sur le site ftp://dev.apple.com/devworld/ ou sur ftp.apple.com ou sur http://developer.apple.com/. Les versions imprimées sont éditées par Addison Wesley, qui possède une filiale en France à Paris et dans de nombreux pays du Monde.
NB : ne soyez pas effrayé par les centaines de pages que contient chaque volume de cette collection. Seuls les bibliophiles graves et les passionnés au niveau ultime lisent tout. Les autres se contentent de chercher (et de trouver :-) dans ces ouvrages de référence les réponses à leurs questions.
- De nombreux exemples de codes sont disponibles sur le forum alt.sources.mac ou sur ftp.apple.com/devworld/Sample_Code/. Vous trouverez une liste d'exemples à copier sur http://developer.apple.com/dev/techsupport/source/index.html.
- Mac Programming For Dummies, aux éditions Sybex / IDG. Contient un CD avec CodeWarrior Lite, vous pourrez ainsi tester cet agréable programme. Un livre excellent et amusant, pour s'initier!
- Débuter en programmation, ed. CampusPress, coll. Tout en poche (65 FF). Ouvrage généraliste, serait excellent s'il ne faisait pas autant de pub pour microchiotte.
- Maîtrise des algorythmes en C par Kyle Loudon, éd. O'Reilly (280 FF) et Entraînement à l'algorythmique, par A. Guntz, chez Techniplus (39 FF). Un algorythme est une façon savante de désigner une procédure logique destinée à résoudre un problème : la base de la programmation. Nous utilisons tous des algorythmes sans le savoir, par ex. en suivant une recette de cuisine. Le petit livre d'A Guntz constitue une bonne initiation, tandis que l'excellent et fort complet livre de K. Loudon est une référence, comme beaucoup de livres de chez O'Reilly. Il est fort complet, pédagogique, facile à lire.
- MacTech est une revue canadienne anglophone sur la programmaton pou Mac. On la trouve en France dans certaine librairies spécialisées. Sur www.mactech.com, vous trouverez des ex. de code et de nombreux documents utiles.
- Site technique francophone : Delaf, sur delaf.free.fr a traduit beaucoup de documentation technique. Un site très intéressant.
- Programmer Macintosh avec Think C , de Pierre Mousel & Guillaume Nogacki, aux Éditions Eyrolles. (Bien utile, notamment aux débutants, même si vous n'utilisez pas Think C de Symantec). Hélas, cet ouvrage est épuisé. Néanmoins on peut le trouver d'occasion ou dans le stock de librairies spécialisées.
- Programmer sur Mac d'Éric Besnier, éd. Micro Application. Ces 430 pages pour 195 F devraient permettre aux débutants peu anglophones de réaliser leurs projets. (je ne l'ai pas lu).
- Programming Starter Kit for Macintosh de Jim Trudeau, Hayden Books, a division of Macmillan Computer Publishing, 860 pages (!) et un CD contenant (entre autres) une version de CodeWarrior. Ouvrage très riche et pas trop cher en regard de sa taille ($39.95 soit 250 F), dont une version au format PDF est inclue sur le CD Reference de Code Warrior Pro et Academic Pro;
- Learn C++ on the Macintosh et Learn C on the Macintosh de Dave Mark, édités par Addison-Wesley. Ces deux ouvrages (qui se trouvent aussi au format PDF sur le CD de la documentation de CodeWarrior Pro et Academic Pro) me semblent excellents pour apprendre ces deux langages.
- Le grand livre, le Langage C (262 FF) et Le grand livre, le langage C++ (195 FF) des éditions Micro Application ou encore Le langage C++ de Jesse Liberty (coll. Le grand Poche, 99 FF) chez Simon & Schuster McMillan, si l'anglais vous rebute un peu, vous conviendront mieux. Jesse Liberty traite uniquement d'exemples standards, tandis que les deux livres de MA ont un horrible chapitre de quelques pages sur Windows (le reste est standard). Si vous n'avez pas de compilateur pour Mac, vous devrez aller chercher une version de GNU C/C++ déjà traduite pour MacOS (je ne retrouve plus l'URL) ou encore MPW ou une démo de CodeWarrior (ou acheter CodeWarrior) ou un autre compilateurC ou C++ gratuit pour MacOS. j'ai entendu parler de HarvestC (voir http://cuiwww.unige.ch/cgi-bin/freecomp/ ou un moteur de recherche). Les gros livres de MA m'ont semblé plus complets et plus clairs que celui de S&SM, il est vrai plus petit et moins cher.
- Les ressources du Mac, vol.1 & 2, de JP Curcio, édité par Dunod, dans la collection Mémo Mac. Deux excellents petits livres, d'un réel intérêt. Leur seul petit défaut est d'ignorer les nouveautés apportées par Mac OS 8. Mais celles-ci sont parfaitement documentées par Apple et disponibles gratuitement en PDF (voir plus haut). Ces ouvrages s'adressent plus au bidouilleur qu'au programmeur d'applications sophistiquées. Ce dernier y trouvera quand même de quoi largement le satisfaire. NB : Ces 2 volumes semblent épuisés chez Dunod, mais sont toujours disponibles, dans un plus gros format, chez Eyrolles.
- Macintosh Programming Techniques et More Mac Programming Techniques de Dan Parks Sydow, éd. M&T Books, sont d'excellents moyens d'apprendre les secrets de la Toolbox.
- Ultimate Mac Programming de Dave Mark, éd. IDG Books, Macintosh Programming Secrets, de Scott Knaster & Keith Rollin, éd. Addison Wesley, et How to write Macintosh software (auteurs et éditeurs identiques au précédent), permettent eux aussi de comprendre les secrets de la Toolbox, mais à un niveau encore plus avancé.
- MACINTOSH C: A Hobbyist's Guide to Programming the Mac OS in C de K. J. Bricknell (brick@spirit.com.au) Le dernier de la liste, mais pas le moindre : un livre gratuit souvent mis-à-jour, bien écrit, largement documenté (7 Mo d'exemples de fichiers-sources très utiles). Vous le trouverez en copie libre au format PDF sur http://cafe.AmbrosiaSW.com/macintosh-c/. On ne remerciera jamais assez ni AmbrosiaSoftware (qui propose d'ailleurs d'excellents jeux et utilitaires en shareware) ni K. J. Bricknell pour avoir mis à la disposition du plus grand nombre un livre d'une telle qualité. (rassurez-vous, le site ftp où se trouvent les fichiers supporte la reprise du transfert après une interruption :-). Si vous préférez la version francophone, Delaf en a commencé la traduction.
- N'oubliez pas les forums de discussions (newsgroup), notamment ceux-cités plus haut (fr.comp.sys.mac.programmation (en français) & comp.sys.mac.programmer), ni les sites d'Apple, ni les zines comme ApfelSaft (www.chez.com/apfelsaft/) ou Mac Expert Magazine (c/o PO Latour, Chemin du Mesnil, 78120 CLAIREFONTAINE-France courriel : newman@club-internet.fr). Vous trouverez aussi de nombreux livres sur le site de Metrowerks (www.metrowerks.com). En outre, Apple a mis en place trois sites Web (http://developer.apple.com, www.info.apple.com/dev/ et www.apple.com/developer/) pour qui programme pour Mac OS Classic ou X. De nombreux outils, conseils, exemples, SDK (Software Developer Kits) y sont à votre disposition. Des cours y sont même disponibles sur une université virtuelle des développeurs Apple.La revue Apple Directions, elle, se trouve sur http://gemma.apple.com/mkt/informed/appledirections/. Il existe aussi une mailing-list (liste de diffusion) en français consacrée à la programmation sur Macintosh. Rendez-vous sur http://www.macdev.netinfo.fr/ pour vous y inscrire.(fut www.ObjectLand.org/MacDev/).
- Les programmes Apple pour les développeurs sont de trois sortes. Le premier, gratuit, s'adresse à tous. Il consiste à aller chercher sur les sites indiqués ci-dessus (http://developer.apple.com ou www.devworld.apple.com ou www.apple.com/developer/ ou encore pour ceux qui souhaitent s'enregistrer http://connect.apple.com/) la volumineuse documentation technique (en anglais) qu'Apple a placée en téléchargement libre. Inconvénient : cela prend beaucoup de temps, avantage : c'est gratuit (hors coût de connexion). Le second, appelé Select, est payant, pour environ 3000 FF par an (en US $, par carte de paiement internationale uniquement) les abonnés reçoivent chaque mois un CD. En outre, ils bénéficient de cinq questions (en anglais) au Service Technique des Développeurs (DTS) d'Apple. Avantages : permet de tester les nouvelles techniques et les mises-à-jours de l'OS en avant-première et de bénéficier de réductions sur l'achat de matériel Apple. Inconvénients : actuellement, on ne peut payer qu'en dollars US et tout est en anglais. On attend le retour d'un service développeurs officiel en France. Enfin, le programme Premier est beaucoup plus cher, et donc plutôt réservé aux entreprises. Il offre de nombreux avantages, pour qui aime les voyages aux États-Unis, et la documentation est plus volumineuse, comme le nombre de recours au Support Tech. de Cupertino. Pour plus de détails sur ces programmes, contactez Apple. Pour débuter, le programme de base suffit, avec éventuellement une inscription sur connect.apple.com/
- Les Apple User Groups sont des associations d'utilisateurs Apple. Certains s'intéressent à la programmation. Toutefois, si quelques uns sont ouverts, dynamiques et accueillants, d'autres m'ont semblé inactifs ou peu enclins à accueillir de nouveaux venus. J'ai ainsi demandé en Octobre 1998, puis en Novembre 98, à rejoindre l'AUG de Nancy et j'attends toujours une réponse! (:-<). Pourtant, selon des Nancéiens, cet AUG est actif. Pour contacter un Apple User Group, ou en créer un, allez voir sur www.augfrance.com.
Pour trouver les livres ci-dessus, si votre libraire habituel ne veut pas ou ne peut pas vous les commander, voici quelques adresses :
- Le Monde en Tique (6 rue Maître Albert 75005 PARIS - www.lmet.fr - 01 55 42 73 73)
- l'Infothèque (32 rue de Moscou 75008 PARIS - 01 45 22 67 01)
- Eyrolles (bd Saint-Germain 75240 PARIS cedex 05 - www.eyrolles.com - 01 44 41 11 11).
Ces trois là, il me semble, livrent aussi par correspondance.
Pourquoi le choix du langage de programmation n'est pas abordé
On peut lire tellement d'avis contradictoires à ce sujet consulter un forum consacré à la programmation est à édifiant pour s'apercevoir qu'il y un grand nombre de réponses possibles. De merveilleux programmes ont été écrits tant en assembleur, qu'en Basic, en Pascal, en C, en Prograph, en C++, en Java, avec Hypercard, avec 4D, etc.
Comment choisir alors? Si vous avez des ambitions multi-plateformes, certains langages sont plus portables que d'autres. Ainsi un assembleur est-il spécifique à un processeur. Le C++ est, lui, théoriquement multi-plateforme. Il ne faut pas croire pour autant qu'un programme écrit en C++ est facilement exécutable d'une machine à l'autre, s'il n'a pas été conçu en prévoyant cela (:-(ce qui allonge le temps de développement de façon parfois considérable, selon la nature du projet, car la norme ANSI ignore l'interface graphique, les API de Windows comme la Toolbox du Macintosh ou le recours à Gnome ou KDE). Par ailleurs, certains compilateurs sont multiplateformes, d'autres non. Seul la solution Java est quasi-universelle. Mais peu d'utilisateurs disposent d'un interpréteur performant. (Toutefois, pour que cela change, il suffirait que les programmes en Java donnent envie de s'équiper d'un interpréteur performant, la fameuse "machine virtuelle", laquelle est gratuite.)
Java présente un autre avantage, c'est un langage orienté objet considéré comme plus simple que le C++, il dispose de nombreux composants réutilisables (les Beans), un peu comme avec le regretté feu OpenDoc. Mais Java, langage interprété donne des applications lentes.
ObjectiveC et les API d'OpenStep sont aussi une excellente solution, très utile pour des projets multi-plateformes Unix/NT et (maintenant) Mac, d'autant plus que désormais MacOS X Server est en Open Source (et bientôt X "client" aussi) sous le nom de DarwinOS . Tout ceux qui ont essayé ObjectiveC, ProjectBuilder et InterfaceBuilder sont unanimes sur la facilté et la qualité du développement avec ces outils. Jan Stransky, (ex) directeur technique très compétent d'Apple France considère qu'une journée suffit à apprendre ObjectiveC, lorsqu'on maîtrise le C. (c'est le temps qu'il a mis, mais il est très fort. Comptons trois jours pour quelqu'un de plus moyen ;-) Après, bien des hésitations, Apple semble maintenant maintenir ces excellents outils venus de Next. La sortie prochaine de Mac OS X grand public 1 et Server 2 devrait clarifier encore ce soutien, auparavant bien faible. Ce qui est certain, c'est que les fantastiques API Cocoa du nouveau MacOS X, exigent ces outils hérités de Next (ProjectBuilder et InterfaceBuilder) et que la très grosse base installée des machines capables de recevoir MacOS X (G3 stations et powerbook, I Mac, G4, Ibook) justifie que l'on développe directement pour Cocoa en Objective C ou en Java (seuls langages possibles actuellement), dès lors que l'on crée un projet de zéro (pour une mise à jour de programmes pré-existants, Apple a créé les API Carbon, elles aussi intégrées à Mac OS X, 9, 8 et utilisables avec divers outils acceptant divers langages (renseignez-vous auprès de l'éditeur du compilateur qui vous tente).
Certains langages sont donc particulièrement adaptés à certains usages, d'autres non. On le voit, les critères de choix sont nombreux et souvent (hors le cas MacOS X-Cocoa) rien d'objectif ne permet de trancher favorablement pour un langage.
En fait, dessinez (avec un crayon ou un programme de dessin) l'interface graphique de votre projet, qui sera figée lorsque vous ne pourrez plus la simplifier, puis décortiquez dans ses moindres détails la logique et les ressources nécessaires à sa réalisation, enfin regardez les langages capables de le concrétiser et choisissez celui qui vous convient le mieux, avec lequel vous êtes le plus à l'aise. Cela me semble la meilleure façon de mener à bien un projet. Mais peut-être me trompe-je
;-)
Astuces pour gagner du temps et écrire de bons programmes
Contrairement à ce que l'on pourrait penser, l'écriture du code est la phase la moins importante du développement d'un programme. Car même un spécialiste d'un langage ne pourra mener facilement à son terme l'écriture d'un programme dont la conception a été bâclée. Pour vérifier la cohérence d'un projet avant d'écrire la moindre ligne de code, il est important d'en rédiger l'aide auparavant et d'avoir défini précisément l'interface graphique, d'abord sur papier puis avec un éditeur de ressources (ResEdit ou Resorcerer). En procédant ainsi, vous vérifiez la pertinence de l'analyse des actions qu'effectue votre programme et vous simplifiez considérablement la phase d'ecriture du code-source. La consultation des Interface Guidelines d'Apple vous facilitera aussi grandement le travail et vous évitera bien des erreurs (et d'ailleurs Apple ferait parfois bien de relire ses propres travaux sur l'interface ;-). Si vous disposez d'utilisateurs novices, montrez-leur vos projets d'interfaces avant toute réalisation et ne retenez que les solutions qu'ils comprennent, éliminez ce qui leur pose des difficultés de compréhension.
Retour à la page principale (Informatique, sous-section 1)
« La programmation, cela fait (parfois) mal au crâne, mais c'est aussi une source de plaisir (si, si! :-). Et cela est bien moins compliqué que ce que certains prétendent! Si cela ne vous paraît pas simple, c'est que votre professeur (livre ou primate) est mauvais. »
Page créée le 08/10/98 Mise-à-jour le 6/02/2001
Aloïs Durand alduran@XXXfree.fr (effacer les XXX antispam)