L'Objective-C plus populaire que le PHP

Christophe Laporte |
Alors que l'Objective-C fêtera ses 30 ans l'année prochaine, il connait un succès sur le tard grâce au succès des terminaux iOS. En effet, c'est désormais le quatrième langage de programmation le plus populaire selon le dernier rapport TIOBE. Par rapport à l'édition 2011 de ce classement, Objective-C gagne deux places et dépasse le PHP et C#. Il est maintenant à portée de fusil du C++. Comme le montre le tableau, il lui faudra par contre sans doute beaucoup plus de temps avant de rattraper les langages C et Java.



Pour mesurer la popularité d’un langage de programmation, les auteurs de ce “rapport” ne se basent pas sur le nombre de lignes de code écrites dans tel ou tel langage, mais sur 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.
avatar elamapi | 

J'adore les stats.

Il faut préciser que ces stats ne sont valable que, et UNIQUEMENT, au sein d'une communauté de dev PRO.

C'est donc une résultat logique, au sein de cette communauté.

Maintenant, quand on prend les même stats de manière "globale" (en prenant en compte les "non" pro) alors l'ordre change.

Sauf pour C et Java indétronable).

Se trouve en 3eme et 4eme position le PhP et le JS.

La raison est simple. Il y a des millions de devs non pro qui "bidouillent" un site web, et qui ne connaisse que ça, facile à prendre en main.

Ensuite, comparer un langage interprété destiné, globalement, au rendu de page web (php) avec un langage compilé destiné (globalement) à la création d'pi ou d'appli assez bas lvl (le C) m'a toujours paru ridicule.

Un peut comme si on disait que les cerises sont plus populaire que les cannes a peche ....

avatar hozuki | 

Et il permet de faire quoi le c ?

avatar Un Vrai Type | 

Oui,oui...
Et puis c'est vrai que php.net n'est jamais utilisé sans passer par Google...

Je me demande comment font ces sites d'arnaque intellectuelle pour vendre de la désinformation... ( comme les classement des hommes les plus riches, basé sur des estimations etc. )

avatar momo-fr | 

Mon principal langage de programmation reste le Français… pas présent dans le tableau… dommage… :-)

avatar jackWhite92 | 

Pourtant Java est très évolué et très riches en framework et Api tiers... On aime ou on aime pas, moi j'aime :-)

avatar DCMaxxx | 

POO:
C# > Objective C > C++ > Java

Scripting :
Ruby > Python > Perl > PHP

Programmation fonctionnelle :
Ocaml

Pour faire un truc propre et optimisé :
C, C, et toujours C.

Je ne parle bien évidemment que des langages que je maîtrise.

avatar Mabeille | 

@jackwhite92 t'es un pervers non?

avatar DJBZ | 

J'ai toujours trouvé le php amorphe. Je ne suis pas forcément plus pour l'objective C que pour le php, mais cela ne me déplairais pas de voir le php disparaître!

avatar elamapi | 

Le meilleurs langage de programmation de tous, c'est celui adapté au projets que vous devez faire, que vous maitrisez et sur lequel vous savez coder proprement.

Il n'y à pas de "meilleur" langage "officiel".

Un dev porcasse fera un code de merde impossible a maintenir en C la ou quelqu'un de carré et conciencieux fera des merveille en perl.

avatar bugman | 

Le Logo (qu'est ce qu'il fout là lui ?) au dessus du Pascal ? Etonnant !

avatar SolMJ | 

Je n'ai jamais compris cette guerre des langages et la trouve complètement stérile.

PHP est un langage mature et est parfaitement adapté à ce pour quoi il est destiné : des sites et applications web....

Pour le reste : machin bidule, c'est de la branlette de développeurs... Car être "in" ça fait du bien à l'ego mais quand il s'agit de gagner son pain, est-ce que Ruby est objectivement plus efficace et efficient que PHP ? J'en doute fort. Et apprendre un nouveau langage est un investissement en temps considérable, au final si c'est pour faire la même chose avec l'un ou l'autre...

Pour la petite histoire j'ai déjà vu un développeur migrer de PHP vers Ruby en pensant que l'herbe était plus verte ailleurs et au final revenir vers PHP. Au final comme le dit elamapi : le meilleur langage est celui que l'on maîtrise.

Quant à la popularité de l'objective-C n'est qu'une conséquence de celle d'iOS... Facile d'être le premier quand on a pas de concurrence ;)

avatar Manu | 

Moi ce que j'aime dans objective-c c'est son élégance. En fait c'est un langage qui sied parfaitement à la philosophie Apple.

Il faut aussi savoir qu'il a inspiré le livre "Design Patterns: Elements of Reusable Object-Oriented Software" de la bande des 4 (Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides) qui est la référence dans le monde de la POO.
Il a également inspiré les créateurs de Java qui avaient justement participé au portage de l'environnement de dev OpenSTEP (future cocoa) sur SUN.

Enfin il faut souligner sa parenté directe à smalltalk langage genèse de la POO.

avatar ErGo_404 | 

[quote]@SolMJ [12/05/2012 09:44] via MacG Mobile

Je n'ai jamais compris cette guerre des langages et la trouve complètement stérile.

PHP est un langage mature et est parfaitement adapté à ce pour quoi il est destiné : des sites et applications web....

Pour le reste : machin bidule, c'est de la branlette de développeurs... Car être "in" ça fait du bien à l'ego mais quand il s'agit de gagner son pain, est-ce que Ruby est objectivement plus efficace et efficient que PHP ? J'en doute fort. Et apprendre un nouveau langage est un investissement en temps considérable, au final si c'est pour faire la même chose avec l'un ou l'autre...

Pour la petite histoire j'ai déjà vu un développeur migrer de PHP vers Ruby en pensant que l'herbe était plus verte ailleurs et au final revenir vers PHP. Au final comme le dit elamapi : le meilleur langage est celui que l'on maîtrise.

Quant à la popularité de l'objective-C n'est qu'une conséquence de celle d'iOS... Facile d'être le premier quand on a pas de concurrence ;)[/quote]
Il y a des langages plus adaptés à un projet ou à un autre. Si le gain sur un projet donné compense la perte de temps pour apprendre le nouveau langage, ça vaut le coup. Mais dire qu'un langage est foncièrement meilleur qu'un autre, c'est être vraiment ignorant.

avatar SolMJ | 

ErGo_404

Maîtriser les subtilités d'un langage demande du temps et de l'expérience, il ne suffit pas d'apprendre un langage, d'en maîtriser les bases syntaxiques, pour être efficient.

Apprendre un langage pour un projet spécifique en cours de route ? Je n'ai jamais vu ce cas... dans les très grandes entreprises peut-être ou les projets à gros budgets...

avatar makidoko | 

Le seul avantage de Java c'est sa position multi-plateformes. En dehors de ça, c'est un langage imbitable comme la plupart des langages orientés objet, Objective-C en tête : je ne sais pas où se trouve l'élégance citée par Manu dans Objective-C. Rien que la base des encapsulations interminables de crochets qui nécessitent une gymnastique occulaire et cérébrale pour comprendre la moindre ligne de code, est si loin de ce que j'appelle, moi-même, l'élégance.

Mais ces stats telles qu'elles sont présentées n'ont aucun sens, et ne sont pas significatives de l'utilisation d'un langage. Même le C, source de quasiment tous les langages modernes, n'est certainement pas le langage le plus utilisé aujourd'hui. Il n'en demeure pas moins le langage le plus universel et puissant de la liste. Et pour peu que l'on maîtrise ses quelques opérateurs cabalistiques (mais moins que les langages objets) il a, pour le coup, la classe et l'élégance de la puissance dans la simplicité.

avatar Manu | 

L'élégance je la trouve dans la syntaxe des methodes du style
tracerLigneAllantDupoint:Aupoint: qui est plus parlant que tracerLigne(p1,p2) Pour ce qui est des crochets c'est la façon de présenter les imbrications qui donne une meilleure lisibilité du code.

En fait ce qui fait l'élégance c'est pas le langage en lui même mais le framework cocoa avec ses paradigmes. En tout cas il a été à mon avis l'environnement de dev le plus rapidement adopté depuis l'arrivée de l'iOS.

avatar denmakesmusic | 

Objective-C était assez cohérent à une époque. Depuis que Apple l'a repris, je trouve que ça devient n'importe quoi (property, block, ARC) uniquement pour satisfaire des effets de mode. Pourtant quand on voit la popularité de C on sait que la mode n'apporte pas grand chose.
Par ailleurs une application emblématique faite en Objective-C (+GC) : XCode est une horreur de lenteur et de consommation mémoire. Alors ou est le progrès ?
Autant faire du Java qui est nettement plus simple.
L'avantage de Java est sa VM qui peut supporter d'autres langages (Groovy, Scala...).

avatar Ganzolo | 

@makidoko

Les crochet il faut savoir les indenter... Il ne faut pas tout mettre dans la meme ligne!!

[self envoyerMessage:[NSSTring stringWithString:@"messagecontent"]
a:"contact1"
accuseDeReception:[obj hasAccuse]]

Beacoup plus lisible que this.envoyerMessageDestinataireAccuse(String("messageContent"),"contact",obj.hasAccuse());

denmakesmusic

Certes, Je suis en partie d'accord avec toi. Xcode fait beaucoup plus de chose derriere que l'on ne voit pas

avatar SolMJ | 

Concernant Xcode je vois de plus en plus de développeurs OSX/iOS autour de moi qui se plaignent de cet IDE, notamment de ses planages récurrents... (depuis la fameuse refonte de la version 4 notamment).

avatar Ricky McLane | 

C'est amusant, la lecture de certains commentaires donne une idée assez précise du (non)-talent de certains développeurs. Si je devais recruter pour ma boîte, je vois déjà qui semble "intéressant" et qui fait partie des profils à fuir absolument !
Ce qui est navrant c'est de constater l'incompétence vaguement assumée de certains (ou alors ils ne sont même pas conscients de leur médiocrité professionnelle)
...
POO. properties, blocks etc. effet de mode ou bénéfices fumeux ?! Rooo vraiment ??
Retournez réviser vite les cours que vous n'avez manifestement jamais eus, ou suivis (ou compris) y compris en programmation fonctionnelle sur le lambda calcul, les closures & co...

Une vague de désespoir m'envahit ;) c'est, hélas, sûrement pas en France que va naître le prochain Google/Apple/Facebook/Salesforce/Twitter/Evernote/37signals/etc. etc...

Désolé chuis tjs un peu agacé par ce genre de réflexions partisanes stériles et incongrues sur les langages. L'essentiel c'est d'abord et avant tout le développeur...

avatar albedo83 | 

@SolMJ

D'une stabilité très moyenne, je confirme, j'ai en moyenne un plantage tous les 2 jours, avec un os sous Lion "propre" , on est encore loin de BC++ voire VS
Bon après ça reste très vivable comparé à Eclipse.

avatar revol | 

@CleverF0x

Le C# est plus proche du Java que du C.
C'est un langage managé (qui tourne en gros sur une VM).
C'est la syntaxe qui ressemble au C, Java et autres...la comparaison avec le C s'arrête là.

le C# est fait pour vivre autour du framework .NET ce n'est qu'un moyen.
Ce qui est important, c'est le framework... Pareil pour Objective C, ce n'est qu'une syntaxe.

Connaitre un langage, c'est l'affaire de quelques jours.
Connaitre un framework en revanche...

Et ObjectiveC n'est populaire que pour UNE SEULE raison, il n'y a pas le choix pour faire des applications iBidules et que les iBidules sont populaires.

Crois bien que si le choix était plus vaste, ça serait bien différent, exactement comme sous Windows ou des dizaines de langages se côtoient et cohabitent très bien.

avatar Un Vrai Type | 

Un jour, les gens vont découvrir Eiffel...

Sinon, je MAINTIENS que ce classement est un foutage de gueule.
Objective-C monte parce que des types qui bricolaient* sur javascript font une recherche google pour ne rien y comprendre et en se notant "Il faudra que je m'y mette un jour".

Bref. Je ne vois vraiment pas comment vous pouvez donner un peu de crédibilité à ce site...

*On copie colle des choses jusqu'à ce que ça ne fonctionne plus, là on va se plaindre sur un forum...

avatar Gueven | 

@DCMaxxx

Ton classement ne prend pas en compte la cible, donc ton classement n'a aucun sens.

Aimer un langage c'est bien, mais il y a aussi d'autres contraintes existantes (cpu/ram/taille flash/disque/ROM de la cible).

Dans l'absolue aucun langage n'est bon, et aucun n'est mauvais.
C'est ce qui fait que choisir un langage n'est pas simple.
Souvent c'est le côté humain qui prévôt (connaissance et méconnaissance), mais ça n'a rien de rationnel.

avatar Gueven | 

@denmakesmusic

Le problème de Java est aussi sa JVM.
Une JVM sur une cible embarquée est un non sens.
Bref, la bataille des langages n'a aucun sans, c'est comme les guerres de religion.

avatar Gueven | 

@Ricky McLane

Parfaitement d'accord avec toi.

avatar albedo83 | 

@gueven

Le probleme de java c'est ce nombre de librairies incroyable, je suis entouré de dev java, c'est un bordel sans nom, honnetement pour ça, ios et dot net sont carrement plus rentables, ya des api pas des milliers !

avatar albedo83 | 

@gueven

Il fut une epoque ou certains langages etaient reellement plus efficients, compare forth au basic, meme dans le principe le logo est plus interressant que le C, peut être pas aussi performant, mais le principe d'enrichissement du vocabulaire du langage est quasi génial.

avatar kissscoool | 

En faisant de l'Objc, on faut presque inévitablement du C à un moment dans le projet vu qu'Objc en est un superset. Donc c'est sur que C va rester longtemps premier. Pareil pour C++ qui peut facilement être utilisé dans un projet iOS/OSX.

Sinon pour revenir à une autre remarque, Objc n'est pas fait pour être le plus performant mais plutôt pour être propre et facile à maintenir. Quand la performance devient primordiale, on commence à appeler du C ou C++ et le problème est réglé.

avatar albedo83 | 

@kissscoool

+1, on y touche et n'oublions pas que l'on ne fonctionne pas dans une VM, et que les erreurs de codage, ne sont pas pardonnées grâce â un beau ramasse miettes, qui fait la joie des devs java, dot net, as3, l'Os va peut etre pardonner

avatar Karat | 

Au risque de passer pour un inculte le HTML5 dans tous sa

avatar makidoko | 

Ricky McLane,
Personellement, je n'ai que très rarement connu de bons développeurs, les pires étant ceux ayant suivi les cours dont tu parle. Ils sont pour la plupart cantonnés à ce qu'ils ont appris, mais n'ont aucune aptitude à aller au-delà. Leurs applicatifs sont souvent des perles de redondance, codifiant en 50 lignes dans les règles d'un art qu'ils n'ont pas compris (on ne leur a pas demandé de comprendre, mais uniquement d'apprendre) ce qui peut l'être en même pas 10.
Sans parler de ceux qui ont retenu qu'il faut commenter leur programme et nous pissent des exemples comme :
[i]// ajouter B à A pour changer sa valeur
a+=b[/i]
Les autres, sont les bidouilleurs qui ont, comme dit plus haut, appris à copier/coller sans discrimination ni compréhension (toujours le même talon d'Achille), jusqu'à la perte totale de maîtrise de la structure générale de l'applicatif.

Karat,
HTML5 n'est pas un langage de programmation mais de balisage et de structuration des données issu du XML. Aucune appli ne peut être développée avec.

avatar eTeks | 

@ksrat
HTML5 n'est pas dans la liste parce que ce n'est pas un langage de programmation, avec des instructions qui permettent de dire à l'ordinateur [i]fait ceci si telle condition est vérifiée[/i], [i]calcul cela pour chaque élément d'un ensemble[/i]...
Le L de HTML5 veut bien dire [i]Language[/i], mais langage de description, car il ne sert qu'à exprimer comment doit être mis en page un texte ou des images, avec des textes spéciaux notés entre pour dire [i]affiche ça en gras[/i], [i]cela est un lien vers tel document[/i]...
En espérant que c'est un tout petit plus clair pour toi !

A beaucoup d'autres, ne voyez dans la publication de ce rapport qu'un élément parmi d'autres qui exprime l'augmentation ou la diminution de la popularité des langages de programmation les uns par rapport aux autres. Juste dommage qu'il faille si souvent que beaucoup de fanboys s'en mêlent avec des arguments qui trahissent leur méconnaissance du développement !

avatar Ricky McLane | 

@makidoko :
en fait on se rejoint.
Malheureusement, les développeurs que tu décris sont légions. Comme dans la plupart des métiers, les talentueux sont rares - tu en as donc forcément peu croisé, moi non plus hélas.
Pourtant, ils existent si si !. David Vincent les a vu ! ;)

De toute façon, ils se barrent presque tous aux US (ou ailleurs) et ils ont bien raison. Là-bas on apprécie et on s'arrache les talents.

En France, on a majoritairement des entreprises à la culture "SSII" où s'agitent des "petits-chefs-managers" (souvent des informaticiens ratés) qui considèrent qu' 1 dev. X = 1 dev. Y (vas leur faire comprendre que le dev. est une activité d'ingénierie noble et délicate et non pas une basse besogne de "pisseur de code" comme ils en sont convaincus)

Mais je m'égare. je m'égare... y'a du vécu, j'avoue ;)

avatar Un Vrai Type | 

@Ricky McLane :
Pour ma part, j'ai cessé de travailler avec des SS2I lorsque l'une d'elle m'a demandé de faire plus de bugs puisque le contrat de maintenance était automatiquement augmenté au delà d'un nombre de demande !

Je pense (j'espère) que ce n'est pas le mange pain de toutes les SS2I, mais ça les caricatures assez bien :
"Tu travailles pour nous, ta mission est de faire en sorte que note client continue à avoir besoin de toi".
Mais à un moment, un travail défini, maitrisé et documenté n'a pas vocation à ne jamais finir...

PS : J'ai fait mes armes comme débuggueur sur de gros projets.
J'ai été époustouflé par l'amateurisme des codes que j'ai pu lire.

PS2 : Je confirme que bien coder n'est pas reconnu en France -merci les SS2I-, j'ai donc naturellement changé de métier...

PS3 : Bizarrement, les indépendants ont en moyenne plus de talent que les ingénieurs en SS2I, maintenant je ne passe que par des indé. Bizarrement les entreprises sont plus frileuses vis à vis des indépendants...

avatar SolMJ | 

[quote]PS3 : Bizarrement, les indépendants ont en moyenne plus de talent que les ingénieurs en SS2I, maintenant je ne passe que par des indé. Bizarrement les entreprises sont plus frileuses vis à vis des indépendants...[/quote]

Ce n'est pas bizarre. Les indépendants (en développement informatique du moins) sont des passionnés qui ont eu envie de vivre leur passion à fond. Car comme l'a dit Ricky McLane, rares sont les entreprises qui donnent à leurs salariés développeurs la considération qu'ils devraient avoir. Dans ce cas, soit tu te résignes, tu penses à ton salaire en fin de mois et tu acceptes de devenir un pisseur de code, soit tu prends ton courage à deux mains et tu te mets à voler de tes propres ailes ;-)

avatar Gueven | 

@albedo83

Je n'ai rien dit de contradictoire à tes propos.
Pour moi la lutte des langages n'a pas de sens.

Aux delà des aspects de la grammaire (OO, lisibilité, efficience, ...), il y a d'autres points à prendre en compte :
- empreinte mémoire,
- API fournie,
- Performance au runtime (mémoire, cpu, ...),
- ...

Bref, le choix d'un langage est forcément réfléchi et sort des guerres de religions.
L'informatique est une science ...

avatar Jimmy_ | 

La percée d'Obejctive-C n'est qu'une conséquence mécanique des ventes de produits Apple. Sans cela il serait au fin fond de la cave comme durant des années. Sa percée n'est dont
pas dû à ses propres qualités.

avatar Seccotine | 

@ makidoko

Mon code a rarement plus de trois [] encapsulés. Et ceux-ci sont rares. Il suffit de bien écrire les choses. On peut rendre n'importe quel code foutoiresque dans n'impote quel langage ;)

avatar albedo83 | 

comparer un langage compilé et executé sur une machine cliente avec un langage interpreté sur un serveur me parait n'ayant que peu de sens.
Maintenant comparer objective c et c++ pourquoi pas, que serait devenu le c++ sans Microsoft ?

avatar albedo83 | 

Et ceux qui ont gouté aux joies des MFC, une abomination qu'heureusement Borland a pu nous faire contourner à une époque. Personnellement je regrette BC mais XCode m'apporte a peu pres autant de satisfaction :)

CONNEXION UTILISATEUR