La popularité de l'Objective-C s'affirme

Florian Innocente |
L'Objective-C continue son ascension dans le classement des langages de programmation les plus populaires selon TIOBE. Ce tableau est établi non pas en fonction du nombre de lignes de code écrites dans tel ou tel langage, mais en fonction de la popularité de tel ou tel langage dans Google, Google Blogs, MSN, Yahoo!, Wikipedia et YouTube, mais aussi du nombre de développeurs, et de conférences et formations.

TIOBESoftwareindex


En juin dernier, l'Objective-C, utilisé pour le développement des applications Mac OS et iOS, pointait à la 10e place, il a encore grimpé de deux places ce mois-ci, à la huitièle. Il semble se diriger vers celui qui aura affiché la plus forte progression sur l'année 2010.

Ce qui ne veut pas dire qu'il détrônera des anciens comme le C ou Java, - on en est loin - et ils sont largement plus utilisés, mais c'est un reflet de la popularité des plateformes Mac mais plus sûrement iOS qui en utilisent les réalisations.

TIOBESoftwaretrend


Sur le même sujet :
- L'Objective-C dans le top 10 des langages les plus populaires
avatar Bocan | 
avatar USB09 | 
Bravo Steve ! Continu comme ça.
avatar Seccotine | 
[quote]Ce qui ne veut pas dire qu'il détrônera des anciens comme le C ou Java[/quote] Java est plus jeune que l'Objective-C
avatar itralala | 
Pour m'être mis à l'Objective-C depuis quelques mois (seulement), je trouve que c'est un langage assez clair (une fois la syntaxe maîtrisée). Par contre, l'éditeur est préhistorique par rapport aux autres IDE. J'illustre mon exemple : I. Création d'un bouton bTOTO qui affiche un message box "Saluuuu". Il faut créer un Outlet et taper 3 lignes y faisant référence (je parle des IBOutlet, @property et @synthetize). Il faut créer une méthode CliquerBouton (un coup dans le .h et .m). Il faut ensuite jouer du designer et faire les liens. Il faut appeler un protocole UIAlertViewDelegate. Il faut implémenter manuellement -(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex et autres fonctions - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex Tout ça pour ça. Alors qu'un petit clic droit sur un objet de Interface Builder -> gérer évènement pourrait faire déjà pas mal de chose. Chose qui existait déjà en VB4 en 1996. Donc oui, je peux comparer et je trouve XCode puissant.... mais préhistorique.
avatar cedcrow | 
@itralala : la nouvelle version d'XCode ne doit pas justement améliorer ce point ?
avatar itralala | 
@ cedcrow : améliorer.... Rien que ce mot me laisse songeur..... Si si, ça serait un bon objectif. Et les puristes les plus intégristes diraient "Alors, vous voyez, Steve a inventé ça pour vous simplifier la vie !". Pour l'instant, Objective-C est quand même ce que j'ai vu de plus compliqué. Je comprends du coup facilement ceux qui recherchent des solutions alternatives sous Mac / iOS.
avatar ichp | 
La propulsion d'Objective-C suit clairement le succès de iOS. Ce genre de langage, trop cloisonné, reste en général qu'une mode qui peut dégringoler aussi rapidement qu'il progresse. Par contre je trouve le maintient du C toujours aussi impressionnant, c'est vraiment incroyable. Quant à Java cela reste le langage incontournable que tout développeur se doit de connaître.
avatar kubernan | 
@itralala : En même temps, ce que tu décris, prends 5 minutes chrono à faire. Moi qui n'ai jamais fait du VB, ça ne me gène pas outre mesure. Question d'habitude. @ichp : En quoi est-ce incroyable ce maintient du C ?
avatar marc_os | 
Le maintien du C est totalement logique, C++ et Objective C étant basés sur le C ! Pour pouvoir programmer en C++ et (sérieusement) en Objective C, il faut connaître les subtilités du C, en particulier les pointeurs.
avatar itralala | 
@kubernan : alors que ça pourrait prendre 10 secondes montre en main. Je sais bien qu'à force d'habitude je trouverai ça transparent. Mais il faut quand même avouer que c'est pas forcément simple et que ça gagnerait à être amélioré non ? J'ai regardé la version XCode 4 DP3 (4A153) parce que je suis un méchant curieux et j'ai pas l'impression qu'ils aient fait une avancée en ce sens.
avatar thefolken | 
@ itralala: Si justement, tu dois juste écrire le @property maintenant, l'ivar et le @synthetize sont "cadeaux". Pour ton exemple, tu as effectivement besoin du bouton dans IB avec l'action (ou en une ligne de code), pour l'alertview, c'est aussi 3 lignes: UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"UIAlertView" message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; [alert release]; Pas besoin d'implementer le UIAlertViewDelegate dans ce cas.
avatar itralala | 
@ thefolken : ok parce que je ne continue pas sur le bouton OK.
avatar bompi | 
J'aime bien la montée fulgurante de Transact-SQL (que de flèches rouges !!) SInon, on peut noter la présence de Go.
avatar liocec | 
@ kubernan : L'interface IDE est "préhistorique" et toi tu réponds, c'est pas grave, c'est quand même faisable... Bin oui, les égyptiens ont aussi fait des pyramides, mais en 2010, c'est une honte de devoir prendre 5 minutes pour créer un bouton, alors que, par exemple, Delphi 1.0 (années 1995) permettait de jeter un bouton sur une feuille : 2 secondes !
avatar NicolasO | 
Pas tres important la popularite des langages. Du moment qu'on laisse aux gens le choix des outils qui leur semblent les meilleurs. Sinon, LISP c'est Common Lisp dans le classement ou ca recouvre tous les lanages de la famille?
avatar liocec | 
Concernant le % de développeurs C (j'en fait malheureusement parti) il n'est certainement plus lié à la qualité du langage, totalement révolu et existant pour rappel, depuis 1970. Le C existe de par le fait qu'il est matériellement et financièrement impossible de réécrire les milliards de milliards de lignes de code; donc on préfère patcher le langage plutôt que de switcher sur un autre. Il faudra bien en 2050 arrêter de créer les boutons "à la main"...
avatar kubernan | 
@ liocec : Je ne considère pas l'IDE comme "préhistorique". Donc non, du coup rien n'est grave, surtout en regard de ce qu'on peut developper avec.
avatar kubernan | 
@ liocec : Avec le C on acquiert une certaine technicité (récursivité par exemple, pointeurs..) ce qui en fait encore un excellent langage.
avatar itralala | 
@ kubernan : je dirais que la récursivité n'est pas franchement propre à C ! J'en faisais en VB4 et en Windev...
avatar ssssteffff | 
Il est balaise le Go, il est à 0.626% en subissant une progression de 0.63 points :D
avatar marc_os | 
@ liocec : Tu imagines programmer en Objective C ou C++ sans connaître le C ??? Tu me diras pourquoi pas. J'ai bien croisé récemment un "développeur iPhone" qui venait du Flash/AS après avoir fait des études d'Espagnol. J'ai fait des yeux ronds quand il m'a demandé ce que c'était ce symbole & qu'il voyait parfois devant des noms de variables...
avatar oxof | 
Je programme sur iPhone en Objective-C et je ne connais pas le C. Je programme aussi en Flash/AS3 et c'est plus facile. Objective-C est verbeux et assez difficile d'accès. Mais il oblige à une démarche un peu plus conceptuelle comparé à AS3 et au final le code est un peu plus robuste je trouve. Ce qui est galère c'est la gestion manuelle de la mémoire mais je suppose qu'à un certain niveau c'est obligatoire. C'est peut-être une question d'habitude. Bref. Développeurs Flash, si vous voulez changer un peu d'univers, l'Objective-C peut s'apprendre en 2 ou 3 mois de pratique. Après, si on veut atteindre un très bon niveau il faut quelques années c'est sûr.
avatar Eurylaime | 
@oxof : tu fais du C à l'insu de ton plein gré.
avatar naas | 
Et hop encore un super article ! macgé est de mieux en mieux :)
avatar norman | 
@sssstefff Tu devrais te mettre aux maths ;-)
avatar BeePotato | 
D'accord avec kubernan : Xcode et Interface Builder n'ont rien de préhistorique (si ce n'est leur date de naissance) ! Ce qui n'empêche bien sûr pas que des améliorations soient possibles, surtout pour la programmation iOS (pour Mac, c'est déjà bien plus mature et agréable à utiliser)…
avatar Psylo | 
oxof "Je programme sur iPhone en Objective-C et je ne connais pas le C" Et franchement t'es fier ? Parceque c'est pas un peu comme : "je fait de la moto, mais je suis incapable de tenir sur un vélo sans roulette"
avatar jujuv71 | 
@ oxof : Toi, tu as tout compris à la vie... J'écris en C pour programmer des DSP et des MCU. Je m'interesse de plus en plus à l'objective-C par curiosité et culture personnel... Je peux te dire que si je ne connaissais pas le C et surtout, surtout, comment fonctionnent les pointeurs, j'aurai vite abandonné en me disant que ce langage est indigeste...
avatar liocec | 
@ Psylo : Combien connaissent tous les rouages du C ? Très peu. Pour développer sous Windows (par exemple) il n'est pas nécessaire de connaitre toutes les sous-couches jusqu'au Bios. Si on les connait tant mieux, mais ce n'est pas obligatoire. Il est bien de connaitre le Pascal ou le C, etc...pour développer, mais alors pourquoi utiliser des IDE si ça ne servait à rien, autant travailler en assembleur hexa ! Pour revenir au sujet, le C était un très bon langage, mais si pour écrire une même application on met 3 fois plus de temps qu'avec un autre langage et si les erreurs sont 3 fois plus facile à faire, alors le C ne devrait plus être utilisé. Petit concours n.1: combien d'instructions pour envoyer dans un fichier jpeg une copie de l'écran en cours ? Si vous mettez plus de 10 lignes, vous devriez changer de langage ! Petit concours n.2: combien de clicks/touches pour créer une application avec un bouton qui la ferme quand on clique dessus... Et on peut en faire autant qu'on veux comme ça...le C est révolu (en dehors de la programmation des firmwares où il n'y a presque que lui de dispo). Du coup on travaille obligatoirement en C++, visual C, C# et objective C.
avatar jujuv71 | 
Cool !!! Moi qui pensait que programmer en C était préhistorique... Je suis rassuré maintenant.... Bon. A quand des DSP et MCU programmables en objective C ??? :p
avatar jujuv71 | 
@ liocec : Pas bête…… Je le vois autour de moi : les programmeurs qui créent des interfaces et/ou des programmes pour Windobe utilisent tous à 90% Visual C…… Mais, le C reste la base de toute façon… Et on en aura toujours besoin pour des choses simples… Pas besoin d'une usine à gaz pour créer des fonctions simples… Après, si l'usine à gaz permet de créer la même chose que le C en un click à la place de 20 lignes de code, alors oui, je prends… Et puis à mon goût, je trouve le C rassurant et sécuritaire… Mais dans mon domaine, le C est roi… Après, je pense que tout ces langages sont adaptés pour une application spécifique. On doit juste choisir celui qui nous convient le mieux et qui le plus adapté à nos besoins et nos finalités…
avatar oxof | 
@ Eurylaime : t'as raison j'me suis fait avoir je crois ;-) @ Psylo : t'as raison aussi du coup, j'ai pit'être dis une connerie. Mais je vais en dire une plus grosse encore. Ça fait douze ans que je fais des sites Web et je ne connais pas le HTML. Je le jure ! (je fais du Flash - honte à moi). A ma décharge, je crois qu'il n'y a pas plus bordelique que le HTML / CSS / Javascript. Pour moi c'est inhumain :-)
avatar antonin.portelli | 
Bonsoir à tous ! Je programme en physique autour d'une simulation en physique des particules (QCD sur réseau) destinée à tourner sur des supercalculateurs. Tout le code est en C et je ne suis pas d'accord quand je lis que c'est un langage dépassé qui ne persiste que à cause des milliards de lignes de codes déjà tapées. Le C est le seule langage "lisible" qui permet de faire du très bas niveau sans mettre les mains dans l'ASM. En C on contrôle tout manuellement et rien n'est implicite. Je comprends que pour faire du haut niveau avec des API, des interfaces ect... ce langage semble douloureux à utiliser. Mais pour un développement qui vise les performances brutes et les optimisations, je trouve que c'est un très bon langage qui a encore de beaux jours devant lui !
avatar jujuv71 | 
@ antonin.portelli : +1000 C'est la principale raison de la forte utilisation du C dans les sciences et techniques : lisibilité, rapidité d'execution et facilité de compréhension, structure d'un programme très simple...
avatar antonin.portelli | 
D'autant plus que la norme C99 qui devient progressivement le standard met un sérieux coup de neuf au langage.
avatar liocec | 
@ antonin.portelli : Le C n'est pas l'unique langage qui est lisible et permet d'attaquer le bas niveau (juste pour exemple le Pascal l'est aussi). Il ne faut pas oublier la guerre entre les différents langages et leur leader (ex: Borland.Pascal Microsoft.C) et les millions de dollars qui ont été utilisés pour étouffer l'adversaire, guerre de brevets, etc... Plusieurs langages nettement plus efficaces et plus simples que le C ont vu le jour et sont mort ainsi, sans vraiment être connus par le monde des développeurs. L'objective-C n'a survécu que par le bon vouloir d'Apple: si la programmation iPad, iPhone pouvait être faite dans un autre langage (en passe de l'être), nettement moins de développeurs utiliseraient Objective-C.
avatar BeePotato | 
@ liocec : Notons tout de même que l’Objective C a survécu longtemps sans iPhone ou iPad — la programmation en Cocoa sur Mac suffit pour qu’il survive et progresse, et ce malgré la possibilité d’utiliser d’autres langages et frameworks pour développer pour Mac. Je pense donc qu’il survivra tout autant à l’arrivée de langages concurrents sur iOS — et ça vaudrait mieux, sinon c’est iOS lui-même qui ne survivra pas (si la majorité des développeurs se met à utiliser des langages et frameworks autres qu’Objective C et CocoaTouch).
avatar liocec | 
@ BeePotato : Tout à fait d'accord, mais les App iPhone et iPad dopent les pourcentages.
avatar BeePotato | 
@ liocec : Oui, ça a en effet fait exploser le nombre de développeurs Objective C en très peu de temps. Le résultat étant d’ailleurs que nombre d’entre eux galèrent encore un peu pour s’habituer à l’environnement de développemeny, comme itralala. @ itralala : Ton exemple est inutilement compliqué. Pas besoin d’une outlet pour pointer vers ton bouton si tu ne comptes pas lui envoyer de messages — donc on économise les lignes correspondantes. Tout ce qu’il reste à faire : ajouter le bouton dans IB, puis, toujours dans IB, ajouter une action à la classe du contrôleur — Interface Builder se charge alors d’ajouter le code correspondant dans le fichier en-tête et dans le fichier source, donc la encore il n’y a rien à taper. Il reste ensuite juste à ajouter deux lignes dans la méthode nouvellement créée : pour initialiser l’objet UIAlertView (sans oublier un petit autorelease), puis pour lui envoyer le message « show ». Donc au total, juste deux lignes de code — pas si énorme que ça.
avatar Lemmings | 
Enfin quelques personnes qui pointent les défauts (criants !) de l'Objective C et de Xcode...
avatar marc_os | 
@ BeePotato et d'autres : Objective C ne survit pas, ou n'a pas survécu, il vit tout simplement depuis sa création au début des années 80 et son adoption par NeXT en 1988 pour son OS NeXTSETP, racheté par Apple pour finalement servir de base à Mac OS X.
avatar Nicky Larson | 
@Lemmings Enfin des gens qui démontrent surtout leur ignorance ...
avatar Terenn | 
J'avais décidé de ne pas participer à ce débat. [quote=oxof]A ma décharge, je crois qu'il n'y a pas plus bordelique que le HTML / CSS / Javascript.[/quote] Bordélique ? C'est facile de trouver une page web avec un code atroce et illisible, on est d'accord. Mais soyons clairs : ces langages (HTML et CSS, le JS n'est pas comparable) sont basés sur des concepts valorisant au contraire la rigueur syntaxique et sémantique. Tout sauf bordélique donc.

CONNEXION UTILISATEUR