09 déc. 2009

Mac OS X - je t'aime !

Et pas qu'un peu ! Qui pourrait oser prétendre que ce système, extrêmement bien conçu, mériterait de s'attirer mes foudres ? Certainement pas vous. Et pour vous remercier de votre sollicitude, je vous présente un tour d'horizon des raisons pour lesquelles je suis tombé amoureux des petites machines de firme de Cupertino.

L'auguste machine : le rêve des programmeurs

Oh mon dieu qu'elle est jolie ! J'ai sous les yeux deux superbes bêtes : un iBook G4 fonctionnant sous Mac OS X 10.4.11 et un MacBook (intel) fonctionnant sous Mac OS X 10.5.8. Et pour le développeur que je suis, ces machines sont une véritable révolution.

Dans un premier temps, ce qui frappe, c'est l'indéniable chance qu'on les utilisateurs de Mac de n'avoir besoin que d'un seul et unique bouton sur leur souris. Pour avoir accès aux fonctions qui seraient accessibles en un clic si le pad présentait deux boutons, il suffit de jouer avec ces mignonnes touches poétiquement nommées Pomme et Fleur ou (plus prosaïquement) "Ctrl" ou "Shift". Un clic sur le bouton droit devient ainsi Ctrl+bouton. C'est tellement plus simple que je me demande pourquoi les constructeurs PC font la course aux boutons.

Et en parlant du clavier, que dire ? il est magnifique et fonctionnel. On pourrait regretter son léger manque de réponse, qui donne un peu l'impression d'appuyer dans du pudding pas assez cuit, mais n'y voyez pas là une critique : je préfère. Comme ça, je suis obligé de faire très attention à ce que j'écris histoire d'éviter de l'écrire deux fois. Passé la fausse impression de perte de temps qui en découle, cette technique finit par s'avérer très reposante pour l'esprit et les doigts. Certains mauvais esprits penserait que certaines touches manquent : ou sont les touches |, {, ou encore } ? Soyez franc : en tant que programmeur, vous les utilisez souvent ces touches ? Si vous le faite, vous ne devriez pas. Pourquoi perdre son temps avec un langage basé sur les paradigmes d'un C ancestral lorsque des langages de nouvelle génération aussi puissants que le Basic nous tendent les bras ? Soyez un peu sérieux quand même, et sachez vous remettre en question ! Ce clavier est parfait - il rompt vos mauvaise habitudes acquises durant des années de travail sur des systèmes très inférieurs à celui d'Apple. Ainsi, oubliez la touche "AltGr" - rien que le nom fait froid dans le dos. Ne soyez pas affolé des changements de position de certaines touches comme '-' ou '_', qui se transforment respectivement en '§' et '!' sur le beau clavier tout blanc de mon MacBook. La raison principale de cette modification est que ces dernières touches sont trop peu usitées. Alors afin d'assurer leur promotion, elles ont été placées à une position plus centrale et plus visible.

Un système en avance sur son temps

Vous avez programmé une application pour un OS quelconque récemment ? Peut être avez vous utilisé un langage bas de gamme tel que le C ou l'horrible C++. Franchement, vous êtes dépassé : l'avenir est à Objective-C, un langage magnifique offrant une véritable implémentation objet au dessus de C. Tellement au dessus qu'en fait, le -C à la fin du nom n'est là que pour rassurer les programmeurs vieillissants engoncés dans leurs mauvaises pratiques de programmation au rabais. Objective-C, c'est le futur.

HelloWorld.h

#import <Foundation/Foundation.h>
@interface HelloWorld : NSObject { // no instance variables }
// methods - (void)sayHello;
@end

HelloWorld.m[1]

#import "HelloWorld.h"
@implementation HelloWorld
- (void)sayHello { NSLog(@"Hello, world, at %@", [NSCalendarDate calendarDate]); }
@end

main.m

#import <Foundation/Foundation.h>
#import "HelloWorld.h"
int main (int argc, const char * argv) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// my stuff HelloWorld *hw = [[HelloWorld alloc] init]; [hw autorelease];
[hw sayHello];
[pool release]; return 0; }

C'est quand même bien plus clair que le même programme écrit en C, n'est-ce pas ?

Des documents de partout!

Prenons le fabuleux darwinbuild, un outil permettant entre autre le développement de modifications dans le kernel XNU (la base Open Source de Mac OS X ; oui, la base est Open Source. Mais le kernel d'un Mac OS X n'est pas Open Source. Chez Apple, on est pas des sales communistes. On préfère nettement récupérer les modifications des utilisateurs, les incorporer dans un système propriétaire, et fermer le tout en empêchant toute modification ultérieure. Il ne faut pas exagérer non plus: l'Open Source est dangereux pour les vendeurs de logiciels). Les derniers mots de la page d'accueil de cet outil sont :

If you are interested in building and modifying Darwin projects, the documentation on this website, and the DarwinBuild tools, will prove to be an invaluable resource.

Et c'est vrai ! La documentation de ce site web (c'est à dire, cette page d'accueil et la page d'accueil du wiki) sont claire et concise - une prouesse, quand on connait la complexité du système ! Le système Mac étant un système simple, il est vrai qu'un outil aussi complet que darwinbuild ne pouvait être que simple d'utilisation. Et bien évidemment, c'est le cas : seules 15 options de ligne de commande possible. Seules les plus compliquées sont documentées, parce que les autres parlent d'elle même (franchement, il faut être un peu lent d'esprit pour ne pas comprendre ce que darwnibuild -nochroot -build=bname project va faire).

En conclusion

Mac OS X est un excellent système, particulièrement étudié pour que vous ne puissiez pas vous y retrouver si vous avez ne serait-ce que 3 minutes d'expérience avec un autre système d'exploitation. Il est très simple d'utilisation, surtout si vous ne voulez pas faire autre chose que regarder le magnifique écran aux chatoyantes couleurs. Il épouse parfaitement le paradigme de simplicité offert par le hardware le supportant.



Et dire qu'il y a quelques mois, j'ai failli acheter un mac...

Notes

[1] '.m' est l'extension des fichiers d'implémentation de Objective-C. Ca vient de... En fait, je sais pas d'où ça peut venir.

Commentaires

1. Le jeudi, décembre 10 2009, 11:20 par fabrizio

beaucoup de troll ! (pourtant c'est pas vendredi)

http://www3.sympatico.ca/jplaberge/changement.htm

2. Le jeudi, décembre 10 2009, 13:33 par Emmanuel Deloget

Bah, on est bientôt vendredi :)

Par nature, je ne suis pas complètement contre le changement, mais il faut avouer que là, Apple ne fait pas dans la dentelle. Sans compter que ces changements ont un impact direct sur mon travail : pourquoi m'avoir supprimé des touches du clavier dont je me sers dans mon travail ? Ca n'a pas vraiment de sens, et c'est de mon point de vue contre-productif. Alors quoi, il faut un mac pour les tâches normales et un mac spécial pour développer ?

Sans parler de ma résistance aux changements (je parlerais plutôt de résilience pour le coup ; il ne faut pas se leurrer : mon métier nécessite que je m'adpate en permanence, donc on ne peut pas dire que je soit vraiment résistant), il faut quand même avouer que certaines stratégies adoptées par Apple n'ont pas vraiment de sens du point de vue informatique. Le choix d'Objective-C comme langage préférentiel de la plateforme par exemple - en faisant ce choix, Apple s'est coupé d'un grand nombre de développeurs. L'abandon manifeste de la communauté - lorsqu'on voit les efforts de MS pour être en contact permanent avec les développeurs, on est un peu scié de voir le manque d'intérêt d'Apple pour notre profession. XCode a des années de retard sur les IDE professionnels tel qu'Eclipse ou Visual Studio. La documentation d'Apple est en de nombreux points cryptique voire incomplète. Et globalement, on a le sentiment que toute connaissance acquise (de chère lutte) est jalousement gardée - tant elle confère un avantage concurrentiel évident.

Alors oui, je suis un peu trollesque (pas beaucoup. Si ?), mais dans le même temps, l'adaptation à Mac OS m'a couté 3 jours pour l'instant, alors que je n'ai jamais mis plus d'une demi-journée à me conformer à l'esprit d'un OS quelconque auparavant. Ne doutant pas trop de mes capacités, je me mets donc fort logiquement à douter de Mac OS... :)

3. Le vendredi, décembre 11 2009, 20:14 par elaps

Rien que le titre sentait le troll à plein nez. Eh bien j'avais raison (et ça me rassure ^_^).

4. Le dimanche, décembre 13 2009, 12:22 par bc

Lorsqu'on argumente son avis, on échappe d'office au qualificatif de Troll ... Je dis ca, je dis rien ;)

5. Le dimanche, décembre 13 2009, 12:57 par Emmanuel Deloget

Argumenter ? Je savais pas qu'il fallait que j'argumente moi.

Et d'abord, quel argument utiliser pour décrire à quel point le fait que Alt+Shift+L soit la combinaison de touche permettant d'afficher le caractère '|' est contre-productif pour un programmeur ? Ou que la documentation de darwinbuild tienne sur deux pages, avec les différents programmes important non décrits (notamment darwinup ou le créateur de packages) ? Et franchement, le coup de la souris à 1 bouton, à notre époque... Va-t-on me dire qu'il est plus facile et intuitif de faire Ctrl+Clic que Clic droit ? Encore une fois, je ne vois pas quels arguments peuvent être utilisés ici.

C'est vrai que je n'ai pas argumenté; il n'empêche que j'ai souffert pendant 5 jours pour réussir à compiler un programme, tant la quantité d'informations disponible est importante... :)

Damned. Mac OS est utilisé par environ 5% des utilisateurs d'ordinateurs personnels; Linux, 1%. Comment diable arrive-t-on à une situation ou Linux est mieux documenté sur le net que Mac OS ?

Se pose aussi la question du choix du langage de programmation permettant un accès natif à de nombreuses API - Objective-C, langage qui n'est utilisé sur aucune autre architecture que sur Mac, alors qu'on retrouve le C sur tous les OS existants (y compris Mac OS) et le C++ sur un certain nombre d'entre eux (y compris, again, Mac OS). Alors pourquoi un langage abscons, qui n'a jamais vraiment récolé, et qui oblige les programmeurs à un effort d'apprentissage supplémentaire ? Sans développeurs, un OS ne survit que par la mansuétude de son distributeur, qui fournit les outils nécessaires à son utilisation. Si ce n'est pas tout à fait le cas pour Mac OS, on en est quand même pas très loin.Si les anti-PC peuvent regretter la pléthore de logiciels quasi-identiques fonctionnant sous Windows, cette masse informe a quand même un avantage : la plateforme s'adapte à son utilisateur, ce n'est pas l'inverse. Je choisi le logiciel que je souhaite utiliser. Dans l'univers Mac OS, on est quand même très en retard... Combien d'IDE (comparé au monde PC) ? Combien d'éditeurs de texte ? Combien de nouveaux projets chaque jours, comparés à Windows ou Linux ?

Il y a de bonnes choses dans Mac OS - de très bonnes choses même. Mais franchement, pour l'utilisation que je vais en avoir (développement logiciel ; parce que quand même, ce blog parle de développement, pas de surf sur le net), j'ai l'étrange impression que je vais souffrir ma race, au nom d'une prétendu simplicité d'utilisation qui n'a jamais été démontrée scientifiquement par une étude sérieuse. Peut-être que l'Idiot User gouverné par son insatiable curiosité de la règle 34 trouve que le Mac est plus accessible que le PC. Mon principal problème est que je suis un Power User, par un Idiot User. Et je trouve dommage que le Mac, à ce niveau d'utilisation soit pénible à en haïr le concept même.

Au final, même si le ton de l'article est trollesque, ce n'est pas tant un troll qu'un cri d'alarme - Mac OS a par certain coté des années d'avance, et par certain coté des années de retard sur la concurrence. Et comme par hasard, je me retrouve à me frotter à la partie en retard...

6. Le dimanche, décembre 13 2009, 16:07 par bc

En fait, mon avis était, qu'a la base, c'était déjà suffisamment argumenté, et que je n'y voyais pas, justement, un troll. On crie au troll trop souvent quand on pointe du doigt les défauts d'un système ou d'un autre. C'est idiot, et ca ferme le débat.

7. Le dimanche, décembre 13 2009, 19:15 par 3DArchi

Salut, C'est amusant. J'ai toujours entendu un retour très positif des utilisateurs de Mac. Mais à vrai dire, je ne connais aucun développeur sur cette plateforme. Au vu de ce que tu dis, ce n'est peut être pas totalement un hasard. Les devs pour Mac seraient-ils faits sur d'autres plateformes ? Ce serait rigolo. J'aurais un autre reproche : c'est le prix. Le MAC bas de gamme n'existe pas, le Wintel bas de gamme si. Et, on n'a pas forcément toujours besoin d'une bête de course.

8. Le lundi, décembre 14 2009, 10:40 par Emmanuel Deloget

Ah ! Moi qui croyais qu'on me cherchais des noises :p

9. Le lundi, décembre 14 2009, 14:52 par fabrizio

-> Alt+Shift+L:

Tu peu modifier ton keyboard mapping si le changement est trop violent. http://developer.apple.com/mac/library/technotes/tn2002/tn2056.html#REFLIB/navigation/index.html

-> darwinbuild:

tu ne commence pas par le plus simple pourquoi utilises-tu la toolchain pour le kernel ? Si c'est pour écrire des drivers l'IOKit s'intègre bien à XCode (en plus c’est du C++ « lite »)

-> le coup de la souris à 1 bouton, à notre époque...

Tu peu brancher une souris USB et changer les parameters dans les préférences pour utiliser les 2 boutons

-> Objective-C:

Le framework cocoa à 20 ans d'avance en terme de paradigme de programmation, MVC (découplage), KVO (binding), privilégie la composition à l'héritage (délégation) permet d'écrire des applications simple à maintenir dans la mesure où les concepts sous jacents sont bien maitrisés. Une fois la syntaxe de l'objective C maitrisé il est relativement simple d’écrire une application Cocoa. Puis je ne pense pas vraiment que le langage soit un frein vue le nombre d’applications qui existent sur iPhone qui utilise en SDK proche de Cocoa.

-> alors qu'on retrouve le C sur tous les OS existants (y compris Mac OS) et le C++ sur un certain nombre d'entre eux (y compris, again, Mac OS).

L’objective C est sur une base de C rien ne t’interdit de faire du C voir du C++ En mixant ton code OjectiveC / C++ (fichier .mm).

Mais si ton but est écrire du code portable, autant aller vers des framework comme QT, Juce wxWidgets etc… qui sont fait pour ça, mais la tu t’intègre assez mal en terme d’expérience utilisateur.

-> Combien d'IDE (comparé au monde PC) ? Combien d'éditeurs de texte ? Combien de nouveaux projets chaque jours, comparés à Windows ou Linux ?

Sous mac j’utilise essentiellement XCode et Textmate (la roll royce des editeurs de texte) Je ne comprends pas l’intérêt d’avoir 8 IDE’s et 25 éditeurs de texte ? Tu utilise quel IDE sous windows ? 90% de chance que ce soit visual studio j’ai bon ? Que reproche tu as XCode ? Sinon tu as aussi Eclipse et Netbeans.

Note : je ne suis pas du tout un MacUser fanatique, je passe 8 heures par jours sous Visual Studio (que j'aime beaucoup), je développe dans le cadre professionnel essentiellement sous Windows. Pour mes projets perso j’aime bien changer et voir ce que ce fait ailleurs. Le changement est toujours difficile bon courage a toi :)

Note 2: J'attends la suite de tes articles sur le moteur de règle :)

10. Le lundi, décembre 14 2009, 19:39 par Emmanuel Deloget
-> Alt+Shift+L:
Tu peu modifier ton keyboard mapping si le changement est trop violent. http://developer.apple.com/mac/library/technotes/tn2002/tn2056.html#REFLIB/navigation/index.html

Ah oui. Quand même. Ceci dit, ça ne va pas afficher la position des touches sur mon clavier ;)

-> darwinbuild:
tu ne commence pas par le plus simple pourquoi utilises-tu la toolchain pour le kernel ? Si c'est pour écrire des drivers l'IOKit s'intègre bien à XCode (en plus c’est du C++ « lite »)

J'avoue que j'aurais eu le choix, j'en serais resté à XCode (bien que je le considère comme étant terriblement en retard par rapport à ce qu'il devrait être). Mais je n'ai pas le choix: le projet sur lequel je travaille ne build que dans darwinbuild. Misère, misère.

-> le coup de la souris à 1 bouton, à notre époque...
Tu peu brancher une souris USB et changer les parameters dans les préférences pour utiliser les 2 boutons

C'est marrant, c'est la même réponse qu'on obtient de la part de tous les users Mac. Mais avoir deux boutons sur la souris USB ne va pas rajouter un bouton au pad de mon MacBook. Et si je suis dans le train, ça ne sera guère pratique à utiliser :)

-> Objective-C:
Le framework cocoa à 20 ans d'avance en terme de paradigme de programmation, MVC (découplage), KVO (binding), privilégie la composition à l'héritage (délégation) permet d'écrire des applications simple à maintenir dans la mesure où les concepts sous jacents sont bien maitrisés. Une fois la syntaxe de l'objective C maitrisé il est relativement simple d’écrire une application Cocoa. Puis je ne pense pas vraiment que le langage soit un frein vue le nombre d’applications qui existent sur iPhone qui utilise en SDK proche de Cocoa.

Oh, ce n'est pas le design du framework que je réprouve, mais bien le langage utilisé. Pourquoi baser les fonctions les plus essentiel de la couche graphique d'un OS sur un langage que personne d'autre n'utilise ? C'est une barrière supplémentaire à l'apprentissage de la plateforme (d'un point de vue développement). C'est un non sens logique, mais avec un vrai sens commercial, parce que les entreprises qui ont déjà fournit l'effort de travailler sur cette plateforme sont plus productive qu'une société qui doit s'y mettre. La concurrence en est faussée, et le prix des développements s'en ressent. A l'heure actuelle, un développement au forfait sous Mac est vendu plus cher qu'un développement similaire sous Linux (qui est encore plus cher que Windows). Ca n'est pas forcément une bonne nouvelle pour le business - et tout ça, à cause du choix d'un langage. Une pauvre décision, à mon humble avis - et qui n'enlève rien aux qualités du framework. D'ailleurs, ce framework, était-il complètement impossible de l'écrire dans un autre langage ? J'en doute fortement...

-> alors qu'on retrouve le C sur tous les OS existants (y compris Mac OS) et le C++ sur un certain nombre d'entre eux (y compris, again, Mac OS).
L’objective C est sur une base de C rien ne t’interdit de faire du C voir du C++ En mixant ton code OjectiveC / C++ (fichier .mm).
Mais si ton but est écrire du code portable, autant aller vers des framework comme QT, Juce wxWidgets etc… qui sont fait pour ça, mais la tu t’intègre assez mal en terme d’expérience utilisateur.

Même sans vouloir écrire du code portable, on peut avoir besoin d'écrire du code rapidement, et pour pas cher. C'est plus difficile si le développement se base sur un langage exotique.

-> Combien d'IDE (comparé au monde PC) ? Combien d'éditeurs de texte ? Combien de nouveaux projets chaque jours, comparés à Windows ou Linux ?
Sous mac j’utilise essentiellement XCode et Textmate (la roll royce des editeurs de texte) Je ne comprends pas l’intérêt d’avoir 8 IDE’s et 25 éditeurs de texte ? Tu utilise quel IDE sous windows ? 90% de chance que ce soit visual studio j’ai bon ? Que reproche tu as XCode ? Sinon tu as aussi Eclipse et Netbeans.

L'intérêt, c'est qu'il y a de grandes chances que tu trouve ton bonheur. Effectivement, j'utilise beaucoup Visual Studio, mais j'utilise aussi Eclipse, Code::Blocks, KDevelop et bien d'autres outils encore, selon ce que je désire faire. Ce que je reproche à XCode, c'est son approche antédiluvienne de l'IDE. XCode est un builder de makefile amélioré, guère plus. L'éditeur de texte est tout sauf pratique; la façon dont les erreurs de compilation sont gérée est plus ou moins barbare; etc. Si j'avais le choix entre utliser XCode et Visual Studio, je ne prendrais même pas le temps de réfléchir (et je pense que tu ne prendrais pas ce temps non plus). A l'heure ou les IDE haut de gamme proposent des fonctions telle que le refactoring, la création automatique de diagrammes UML en fonction du code et d'autres joyeuseté, avoir un outil comme XCode, censé être la panacée du développement sous Mac OS, ça fait mal au cœur. Enfin, je dis ça, je dis rien... :)

Note : je ne suis pas du tout un MacUser fanatique, je passe 8 heures par jours sous Visual Studio (que j'aime beaucoup), je développe dans le cadre professionnel essentiellement sous Windows. Pour mes projets perso j’aime bien changer et voir ce que ce fait ailleurs. Le changement est toujours difficile bon courage a toi :)

Dieu (enfin, quelque chose comme ça; je ne crois pas en Dieu) sait que je n'ai rien contre la nouveauté. Je vis de la nouveauté. Mais les outils de développement sous Mac OS X, ça n'a rien de nouveau - c'est globalement mal pensé et peu fonctionnel, sans compter qu'ils ont des années de retard sur ce qui se fait de mieux en la matière. A tel point que finalement, je développe sous Linux avant de réimporter le code source dans mon arbre darwinbuild et de lancer la compilation et la génération de packages sous Mac. Juste historie d'avoir un clavier un poil mieux adapté au développement et des outils me permettant de travailler à peu près sereinement.

Note 2: J'attends la suite de tes articles sur le moteur de règle :)

ça vient, ça vient... :) Si je ne passais pas mon temps libre à trouver des solutions pour travailler plus efficacement, ça viendrais encore plus vite :)

11. Le mardi, décembre 22 2009, 14:34 par cluikacommence

Un clavier AZERTY c'est top, parce que en prog on utilise toujours éèçà, et que {[| soient faciles d'accès n'apporteraient rien.... Prend un clavier QWERTY si tu veux un clavier adapté aux programmeurs ! (même sur ton macbook tu auras accès facilement à [|{ )

Pour ce qui est du clic droit, pose 2 doigts sur ton pad de macbook et clic : Oh merveille,un menu contextuel !

Et puis bien entendu, pour ce qui est de la simplicité du système, Mac est bien loin derrière. L'API Windows est toujours claire et détaillée, on trouve facilement ce qu'on cherche, y'a qu'a regarder la taille de MSDN pour comprendre qu'il n'y a pas de superflu....

Et si tu veux comparer Objective-C au C++ sous Windows, fait une application fenêtrée avec les mfc et essaie InterfaceBuilder sous Mac, tu verras c'est beaucoup plus proche ce C# et ses Windows Application (donc bien intégré)

Perso, je travaille sur Windows, utilise Visual Studio (que je ne trouve pas finie sans Visual Assist) et autres IDE. Et comme toujours, on peut trouver des reproches à faire. Mais XCode est vraiment pas terrible, je te l'accorde :)

Par contre je trouve l'approche mac rafraichissante, même si l'adaptation de l'utilisateur demande quelques efforts...mais c'est toujours vrai quand tu changes de système (comme quand tu change de téléphone)

12. Le mardi, décembre 22 2009, 15:08 par cluikacommence

Juste pour illustrer ce troll :

13. Le jeudi, janvier 28 2010, 13:18 par moustov

> le clavier

m'sieur manu : tu fais allusion à | { et } qui appartiennent au (bon) vieux C, mais il y a aussi et que l'on ne retrouve dans _aucun autre langage_

hmmm... Ôõ

je ne suis pas certain que tu sois parfaitement objectif sur ce point là, d'autant que tu évoques "objective C", choix de langage lacanien ! ;^)

ceci dit, il est vrai que l'environnement mac est bien pensé ; ça c'est indéniable !

a+

14. Le lundi, février 1 2010, 11:52 par Emmanuel Deloget
J'ai l'impression de passer pour le Méchant qui n'Aime pas les Produits Apple et qui Devrait les Aimer Quand Même. Bon, manque de chance, j'ai du mal à apprécier les "iProduits" lorsqu'ils sont illogiques dans leur approche... Quoi qu'il en soit, un brin de réponse pour cluikacommence.
Un clavier AZERTY c'est top, parce que en prog on utilise toujours éèçà, et que {[| soient faciles d'accès n'apporteraient rien.... Prend un clavier QWERTY si tu veux un clavier adapté aux programmeurs ! (même sur ton macbook tu auras accès facilement à [|{ )
AZERTY ou QWERTY, ce n'est pas vraiment le débat. Ca fait 20 ans que j'utilise un clavier AZERTY pour programmer, donc je ne vais pas être plus tranquille avec un QWERTY. Par contre, si on bouge ou on cache toutes les touches qui me sont utiles, là je me sens un peu limité.
Pour ce qui est du clic droit, pose 2 doigts sur ton pad de macbook et clic : Oh merveille,un menu contextuel !
Parfait. Simple et efficace. Terriblement plus simple qu'un second bouton :).
Et puis bien entendu, pour ce qui est de la simplicité du système, Mac est bien loin derrière. L'API Windows est toujours claire et détaillée, on trouve facilement ce qu'on cherche, y'a qu'a regarder la taille de MSDN pour comprendre qu'il n'y a pas de superflu....
Contrairement à ce que j'entends à droite et à gauche, le MSDN est une source dont bien d'autres devraient s'inspirer. Chaque API est présentée sous 3 axes :
  • Un "overview", qui donne les piste et la philosophie générale de l'API présentée.
  • Un guide de programmation, qui explique quoi faire et comment le faire
  • Une référence, qui liste l'ensemble des éléments de l'API avec moultes informations utiles.
Pour certaines API (par exemple DirectX), d'autres informations s'ajoute à ce schéma déjà bien utile.
Et si tu veux comparer Objective-C au C++ sous Windows, fait une application fenêtrée avec les mfc et essaie InterfaceBuilder sous Mac, tu verras c'est beaucoup plus proche ce C# et ses Windows Application (donc bien intégré)
Si tu veux utiliser un outil RAD basé sur le C++ et permettant de réaliser des applications Windows, alors tu préfèreras utiliser C++ Builder ou Qt Designer plutôt que l'éditeur de ressources intégré à Visual Studio (parce que, je le rappelle, ce n'est qu'un éditeur de ressources). Les outils intégrés à VS ne sont pas la panacée, mais ils fonctionnent quand même très bien. Créer une dialogue dans cet éditeur de ressource n'est pas si compliqué que ça. Lui associer des traitements d'évènement se fait quand même très simplement. Ce n'est pas un outil parfait, mais c'est quand même un outil fonctionnel.
Perso, je travaille sur Windows, utilise Visual Studio (que je ne trouve pas finie sans Visual Assist) et autres IDE. Et comme toujours, on peut trouver des reproches à faire. Mais XCode est vraiment pas terrible, je te l'accorde :)
C'est entièrement vrai. VS, avec tous ces défauts, est tout de même l'un des meilleurs produit du marché - sinon le meilleur. La concurrence est rude avec Eclipse (principalement pour ceux qui programment en Java). Le fait qu'aucun outil ne soit considéré comme outil de référence est symptomatique de la façon dont les éditeurs de plateformes considèrent les développeurs...
Par contre je trouve l'approche mac rafraichissante, même si l'adaptation de l'utilisateur demande quelques efforts...mais c'est toujours vrai quand tu changes de système (comme quand tu change de téléphone)
Ce qui m'a plu avec l'iPhone, c'est que justement, la phase d'adaptation est si courte qu'on ne la voit pas passer. il y a des points à étendre dans ce téléphone, mais globalement, c'est le plus agréable à utiliser du marché. Et une brève réponse à moustov (tiens au fait, comment tu vas ?)
je ne suis pas certain que tu sois parfaitement objectif sur ce point là
Pour être tout à fait franc, moi non plus :) Plus sérieusement, j'ai été en colère, maintenant je suis plus calme et mesuré. Il n'empêche que ce claveir est idiot (et que les mappings clavier sont anti-développeur. il ne s'agit pas seulement du programmeur C qui parle : la plupart des "grands" langages "récents" sont basées pour une bonne part sur la syntaxe du C - PHP, C++, Java, C#, Objective-C et bien d'autres encore. Prévoir un clavier qui, dans un sens, rend malaisé l'utilisation de ces langages est un non-sens et un signe fort envers les développeurs : vous êtes trop évolué pour utiliser un Mac, veuillez faire vos programmes pour une autre plateforme logicielle...

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet