Objective C fait vendre des livres

Christophe Laporte |
Les solutions Apple intéressent de plus en plus les développeurs. Il y a des signes qui ne trompent pas, comme la WWDC qui affiche complet depuis deux ans. Autre indicateur intéressant : les ventes de livres.

Sur les 121 catégories de livres informatiques recensées par Bookscan, huit seulement affichent des ventes en hausse sur les six premiers mois de l'année, par rapport à la même période en 2008. Sur les huit sujets qui ont suscité l'appétit des lecteurs, on trouve la programmation sous Mac et Objective C.

Mike Hendrickson d'O'Reilly, qui a compilé les statistiques de ventes de livres aux États-Unis, s'étonne de la montée en puissance si rapide d'Objective C. Les livres consacrés à ce langage de programmation sont en quatrième position des meilleures ventes de livres au premier semestre 2009, juste derrière les livres dédiés à C#, Java et au PHP. Mais, l'Objective C a généré plus de vente de livres que le C/C++, JavaScript ou ActionScript.



Si ce phénomène s'inscrit dans la durée, il peut être très intéressant pour Apple, qui est en train d'accroitre de manière significative sa base de développeurs, qui pourront à l'avenir passer assez facilement de l'iPhone au Mac, et vice et versa.

Sur le même sujet :
- La littérature pour Mac se porte bien
Tags
avatar Axelvak | 

Ce qui est dommage c'est que les ouvrages principaux ne sont pas trouvables sous forme .pdf.

À moins que j'ai mal cherché… si quelqu'un avait un site pour les acheter sous forme dématérialisée (et sans DRM) je suis preneur.

avatar Dr_cube | 

Je suis surpris par ces données. Je suis surpris qu'autant de livres sur C# puissent se vendre.. Et je suis surpris que Python ne soit pas plus populaire. J'aurais eu tendance à penser qu'il avait gagné en popularité ces derniers temps. C'est très surprenant aussi que les ventes de Javascript aient chutées... Avec Ajax et tous les Frameworks qu'ils sortent par dessus, je pensais que Javascript connaissait sa nouvelle heure de gloire.
J'aurais bien aimé voir ce qu'il en est d'XML, pour voir si SVG, RelaxNG, XSLT et tout le bastringue sont de plus en plus utilisés.

En outre, j'espère que les gens n'achètent pas des livres sur le langage Objective-C, mais bien plutôt sur le développement Mac ou sur le développement iPhone en Cocoa. Parce que pour ce qui est d'Objective-C, ça s'apprend en moins de 4h avec l'excellente documentation d'Apple : un simple PDF de 150 pages super bien fait et gratuit. L'Objective-C c'est simple. Le développement sur Mac ou iPhone c'est très compliqué et ça justifie l'achat de livres.

En tout cas on mesure ici l'"effet iPhone". Apple a fait un très bon coup. Leurs technologies n'ont jamais été aussi populaires.

avatar Aozera | 

Ces chiffres sont la suite logique après la montée en part de marché de l'iPhone et des Macs ces dernières années. Que du bon pour nous en somme :)

J'en profite pour vous demander, quel livre conseilleraient-vous pour débuter l'Objective-C ? Avec de légère connaissance en C. Les livres que j'ai pu trouver demande, selon certain, de bonne connaissance en POO :(. Ou Alors, est-je mal cherché ?

avatar Axelvak | 

Cocoa Programming for Mac OS X de Aaron Hillegass et Cocoa Progamming de Anguish/Buck/Yacktman.

avatar Mangeur d'pommes | 

Les chiffres présentés ici ne transcrivent que l'état du marché concernant la vente du support livre. Faire la symétrie avec le véritable taux de répartition et l'évolution sur un an de ces langages serait abusif. Sinon quelles sont les échelles du diagramme ?

avatar Mangeur d'pommes | 

En disant échelle, je voulais dire unités !

avatar modulus | 

@Dr_cube: Tout à fait d'accord avec ce que tu dits.. En revanche, je n'ai pas mis la main sur la doc Apple que tu recommandes, aurais-tu un petit lien ?

avatar modulus | 

@Gabone: Merci beaucoup !!

avatar lafonjm | 

@Axelvak

"Cocoa Programming for Mac OS X" de Aaron Hillegass : incontournable.

avatar jdiogon | 

Sans vouloir troller (non, vraiment), je préfère mille fois coder en C# qu'en Objective C.

avatar Un Vrai Type | 

@ jdiogon :C'est que tu n'as pas appris à coder en objet quand tu as commencé.
Chacun son langage, son parcours etc...

Perso (avec mon parcours etc...), je préfère coder en Eiffel (puis Obj-C), pour moi le C, C++, C# et java sont pleins d'incohérences et j'ai toujours du mal à comprendre pourquoi on mélange les types de méthodes etc... selon ses petites envies dans des bibliothèques de base. L'exemple frappant est que passer une sting en int en java utilise une technique différente que passer un int en string...

(Et puisque tu as envie de troller, je vais te conseiller une méthode plus efficace, tu aurais dû affirmer ceci :

"Les développeurs digne de ce nom préfèrent coder dans de vrais langages comme le C# plutôt que jouer aux guignols avec objective-C" )

Attention, ceci n'est pas au premier degré...

avatar jdiogon | 

:-)

Nonon, vraiment, l'idée n'était pas de troller, chacun ses préférences comme tu dis.
Par contre je ne vois pas comment tu affirmes que je n'ai pas commencé par apprendre à coder en objet (ce qui est faux).

Non ce qui me dérange le plus en Objective-C c'est la syntaxe que je trouve très très pénible. Mais c'est sans doute une question d'habitude aussi.

avatar YenoIwesa | 

Je suis d'accord avec jdiogon, je trouve la syntaxe d'Objective-C assez désagréable et trop verbeuse. Par ailleurs, ne pas pouvoir utiliser Eclipse est pour moi rédhibitoire (malgré ses nombreuses qualités, Xcode ne possède pas le dixième des fonctionnalités d'Eclipse, ne serait-ce que via les possibilités qu'offrent les plugins).

avatar SuMyDi | 

Bonjour à tous,

comme dit plus haut, le bouquin de Aaron Hillegass est un incontournable pour apprendre les bases de Cocoa.
Pour les programmeurs C++ voulant apprendre l'Objective-C, il y a ce document très bien fait et en français : http://ktd.club.fr/programmation/objective-c.php.

Je suis un grand utilisateur du C++ et j'adore ce language. Pourtant, je ne le considère pas du tout comme un véritable langage objet. Le Java et le C# ne peuvent pas non plus être considérés comme orientés objet.
Par curiosité j'ai jeté un coup d'oeil à l'Objective-C. Alors, oui, la syntaxe fait mal à la rétine au début, mais on comprend mieux ensuite pourquoi elle a été choisie ainsi. De plus, ce langage est vraiment orienté objet et implémente des mécanismes assez sympas (système de messages et non pas de fonctions, facilité d'implémentation des Delegate, ...). Il n'est pas parfait mais je trouve que le mixe Object-C & C++ est redoutable d'efficacité (performances + souplesse).

Quand au C#... ben disons que je n'en vois pas l'utilité. Je trouve qu'il n'apporte rien de bien nouveau sous le soleil : ce n'est pas un mauvais langage, mais bon, il n'existerai pas, on ne verrai pas trop de différence.

avatar SolMJ | 

[quote]PHP monte aussi : hourra ![/quote]

J'aimerais bien pour ma part avoir des stats de l'utilisation de PHP en entreprise, car à mon avis il doit y avoir bcp d'étudiants parmi ces acheteurs.

[quote]C'est très surprenant aussi que les ventes de Javascript aient chutées... Avec Ajax et tous les Frameworks qu'ils sortent par dessus, je pensais que Javascript connaissait sa nouvelle heure de gloire. [/quote]

Pour moi c'est pas si surprenant, justement quand on regarde les nouveaux frameworks c'est tellement simplifié et user-friendly que ça ne ressemble plus du tout à du JS ;) C'est un apprentissage moins académique et en général les ressources se trouvent sur le web (je pense notamment à JQuery et ses innombrables plugins qui fleurissent continuellement).

avatar oomu | 

voulant troller (oui, vraiment mais avec sincérité), je préfère mille fois coder en Objective C qu'en C#

pourquoi ? runtime dynamique, syntaxe et utilisation de interface builder. Il y a des concepts au coeur de objective C qui sont passionnants. et c'est un langage flexible, basé message, et totalement objet.

-
python est un langage de niche (que je vous recommande) et typiquement appris par des documentations sur le net (des livres ?pfouaah !) , normal qu'il y ait peu de livres vendus.

C#, évidemment que c'est populaire, vu que c'est incrusté dans windows maintenant. .NET/C# est 1000 fois plus moderne que MFC/C++ et cela passionne les jeuuuuunes. Bref, son usage se répand. Après tout, tout est mieux que visual basic ou MFC/c++ ou pire win32/c.

avatar jdiogon | 

Mais en quoi le fait que tel ou tel langage soit plus ou moins objet qu'un autre c'est une qualité ?
C'est celui qui a la plus grosse ? Celui qui sera le plus plus objet que le voisin d'à côté ?

avatar 6ix | 

@jdiogon

Ce n'est pas que ce soit "orienté objet pure" ou pas qui fait d'un langage qu'il est bien ou pas. Ni son système de typage, ni autre chose… J'ai toujours trouvé un peu con (désolé) d'affirmer que « mon langage que j'aime le mieux c'est le meilleur! », ça démontre plutôt une méconnaissance des autres langages.

Un langage sera plus ou moins bon selon ce que l'on souhaite faire, et il faut savoir peser le pour et le contre, d'après l'environnement utilisé.

Après, bien sûr que chacun a ses préférences, c'est normal, mais cela ne rend pas un langage mieux ou moins bien.

Pour mettre tout le monde d'accord, allez faire un tour du côté de Scala ! =)

avatar oomu | 

la syntaxe "verbeuse" (mais d'une grande clarté sans les abominations c++ ) est une force quand vous travaillez sur de gros projet ou que vous vous relisez 6 mois plus tard...

avatar Aozera | 

@Axelvak

Merci pour ton aide :).

avatar Dr_cube | 

Pour moi le plus gros défaut d'Objective-C ce sont les getters et les setters. Combien de temps on perd à écrire ces putains de property et de synthesize ?? Ca fait écrire deux fois le type et trois fois le nom de l'attribut. C'est insupportable dès lors qu'on veut changer le nom ou le type..
A part ça je trouve que l'Objective-C a de nombreuses qualité, dont la compatibilité totale avec le C ANSI. Même si ça revient presque au même, j'ai parfois un peu de mal à créer un objet "Point" en Java lorsqu'une simple structure C suffit. Pourquoi allouer dynamiquement des dizaines de Points alors qu'on peut le faire statiquement (dans certains cas) ? Bref, j'ai une préférence pour les choix techniques et technologiques de l'Objective-C. Mais c'est évident que le choix du langage dépend d'autres facteurs que des préférences du programmeur ^^.

Il y a vraiment des gens qui on commencé directement avec la POO ?
Moi à l'école j'ai commencé par des langages impératifs (C, Ada), puis fonctionnels (Objective Caml), puis logiques (Prolog), puis enfin objets (Java). J'ai toujours pensé que commencer par la POO n'était pas très logique. Et je dis ça alors que j'ai écris mes premières lignes de code en JavaScript (POO) puis en PHP (impératif à l'époque) quand j'avais 15 ans.

Si je devais choisir le langage le plus élégant et le plus agréable, ce serait sans hésitation OCaml. C'est une torture pour programmer, mais c'est vraiment jouissif une fois qu'on a réussis. On a vraiment l'impression que c'est notre cerveau qui a programmé. Des programmes de 100 lignes en C peuvent être écrits en 10 lignes de Caml. On se sent terriblement puissant quand on programme dans ce langage.

avatar 6ix | 

@Dr_cube

J'ai commencé par le Java, avant de voir par exemple le C ou (comme je disais avant) un langage fonctionnel (multi-paradigme en fait) qui est Scala.

Ca peut paraître peut-être plus complexe que de commencer par un langage impératif, mais une fois que le « saut » vers le côté orienté objet est compris, c'est aussi une façon de baigner très rapidement dedans.

Tu parles de OCaml, je dirais pareil de Scala; les langages fonctionnels permettent de coder très élégamment, même si effectivement il faut parfois du temps avant de poser une ligne pour comprendre le truc !

Ce qui est d'ailleurs toujours assez stressant lors d'examens: il faut écrire peu, très peu même, mais précis ! ;-)

avatar DrFatalis | 

"On se sent terriblement puissant quand on programme dans ce langage."
Oui, c'est cela... Restez donc allongé sur mon divan, cher collègue, et parlez moi davantage de cette volonté de puissance Nietzschéenne...

avatar Dr_cube | 

Mon cher confrère, quand on peut rédiger un programme qui résout n'importe quel Sudoku en 10 lignes de Prolog, on se sent puissant. En C, cette sensation de puissance est diluée dans un grand nombre de lignes et de bidouilles. Avant chaque compilation, on est assiégé par le doute. On se dit qu'une fois encore, la machine va gagner et va nous afficher des erreurs et des warnings à n'en plus finir. On se sent faible et bête.
J'ai parfois écrit des gros programmes en Caml, que ce soit en fonctionnel ou en impératif (les deux sont permis par le langage). Et bien je n'ai jamais eu l'impression de pisser du code. Alors qu'en C j'ai l'impression de mouliner pendant deux heures sans avancer. Et pourtant j'adore programmer en C, mais pour d'autres raisons.

@6ix : oui je suis d'accord avoir toi. Mais quand même, les examens de prog fonctionnelle m'ont toujours parus plus agréables que les autres ^^. En POO la difficulté c'est de bien comprendre les paradigmes (polymorphisme, héritage etc.) alors qu'en prog fonctionnelle la difficulté c'est de résoudre le problème (si possible de la plus belle des manières). Sérieusement, réussir à écrire un programme récursif terminal provoque la même joie que lorsqu'on vient de sortir une crotte tellement grosse et douloureuse qu'on n'était pas certain d'y arriver un jour.

avatar Philactere | 

@Dr_cube

Je n'ai pas tout suivi de ces explications n'étant pas programmeur, il m'est donc difficile d'avoir un avis sur la question.
Par contre pour la conclusion, là c'est clair ! N'importe quel néophyte saisit immédiatement la joie que peut apporter la programmation.

avatar eilon | 

C'est sympa les graphiques, mais c'est mieux un graphique qui indique une unité sur l'axe des ordonneés :-)

avatar Damtux | 

@jdiogon: Mais la syntaxe de l'objective-c c'est toute sa beauté, une meilleur lisibilité qu'en C/C++, on reconnait rapidement les objets grace au "[]".
Il y aussi pleins de règle logique bien réfléchie. Quand j'ai appris l'Objective-c (en 4h comme l'a dit Dr_cube), j'y ai facilement pris goût et pu voir tout les défauts du C/C++.

avatar Dr_cube | 

[quote]on se fiche de la compatibilité cross-browser.[/quote]
Je pense que tu te trompes. Grâce à CSS (et accessoirement XSLT et JS) il est possible de faire un site plastique, c'est à dire qui s'adapte à la plateforme (et peut-être aussi à l'environnement et à l'utilisateur). Le même site (i.e. la même page HTML) pourra alors s'afficher différemment selon que l'utilisateur l'ouvre sur iPhone, ou l'ouvre dans une grande fenêtre, dans une petite fenêtre, etc. Et dans ce cas, le code JS peut très bien être partagé par toutes les versions, tout comme une partie du CSS;

avatar Dr_cube | 

Autant pour moi, je n'avais pas compris ta phrase dans ce sens ^^. Pourtant maintenant que je la relis ça me paraît évident..

CONNEXION UTILISATEUR