Fermer le menu

Programmation

Toute l'actualité sur Programmation

L'Objective-C plus populaire que le PHP

| 12/05/2012 | 08:00 |  

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.

L'Objective-C bientôt plus populaire que le PHP ?

| 11/10/2011 | 10:03 |  

Malgre les efforts d’Oracle, Java est en perte de vitesse chez les développeurs. Il pourrait d’ailleurs perdre son statut de langage de programmation le plus populaire au détriment du C. C’est en tout cas ce qui ressort du dernier rapport TIOBE publié il y a quelques jours.

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.

Même si l’écart diminue, Java distance donc toujours les langages C et C++. L’autre grand enseignement de ce classement, c’est la poussée de l’Objective-C, qui est désormais le sixième langage le plus populaire, pas très loin derrière PHP et C#.

D’une année sur l’autre, le langage utilisé par Apple gagne deux places. Dans le top 10, c’est lui qui connait la plus forte progression.

Ces dernières années, l’ascension de l’Objective-C est spectaculaire. En mai 2009, à ce même classement, l'Objective-C occupait la 39e place (lire : L'Objective-C dans le top 10 des langages les plus populaires). Depuis, il n’a cessé de gagner des places. Bien entendu, le succès des terminaux iOS n’est pas étranger à cet engouement.

Comment ça marche : la programmation

| 09/09/2011 | 17:43 |  

Pour beaucoup, la programmation peut sembler assez intimidante : des signes cabalistiques abscons, des formules mathématiques rébarbatives, un jargon technique incompréhensible, et le mythe du petit génie de l'informatique, ont beaucoup fait pour effrayer le commun des mortels : ces diableries ne seraient pas pour eux. Pourtant, malgré les apparences, avec un petit bagage technique la chose n'a vraiment rien de sorcier, moins encore aujourd'hui où Mac OS X facilite tellement la vie des développeurs.

Fondamentalement, un programme, réduit à sa plus simple expression, repose sur un algorithme : il s'agit des différentes étapes permettant la résolution d'un problème par le calcul. Ces étapes se résument essentiellement à des tests de conditions, et à des actions. À l'aide de ces briques, il est possible de résoudre toute sorte de problème, du plus simple au plus complexe.

Nous mettons tous au point des algorithmes au quotidien, sans nous en rendre compte. Ceux-ci sont plus ou moins efficaces, mais ils n'en fonctionnent pas moins, pour la plupart. Que ce soit pour le tri de vos papiers, le chemin le plus court entre deux points, ou toute systématisation d'une tâche répétitive, nous sommes donc tous des programmeurs en puissance, le tout étant d'apprendre à formaliser ces algorithmes, et à les découper en petites briques essentielles.

algo
L'algorithme d'un lecteur de MacG


Typiquement, un programme sera exécuté instruction après instruction, ligne par ligne. Cependant, tous les langages de programmation permettent de jouer les aiguilleurs : on demandera l'exécution ou non de telle ou telle ligne, la répétition d'une commande jusqu'à ce que des conditions soient remplies, ou le lancement d'une fonction spécifique.

On appelle ces aiguillages des structures de contrôle, puisqu'elles vont modifier la manière dont le code sera exécuté. D'autre part, le développeur peut demander à ce que certaines instructions soient exécutées à l'intervention d'un événement : un clic de souris sur un endroit donné, la frappe d'une touche du clavier, le déplacement d'une fenêtre, etc. Une autre pierre angulaire de la programmation est la variable, en fait un espace de la mémoire associé à un nom, dans lequel le développeur pourra stocker différentes valeurs. Pour faire simple, c'est comme un tiroir, sur lequel on met une étiquette, et à l'intérieur duquel on peut mettre des éléments susceptibles d'évoluer, comme le score dans un jeu vidéo.

Lorsqu'un programme sera susceptible de faire appel à un même groupe d'instructions à plusieurs reprises, plutôt que de les recopier à chaque endroit nécessaire, il vaudra mieux créer une fonction unique, qui sera appelée depuis divers endroits du code.

Ainsi, lorsque des modifications sont nécessaires sur cette fonction, il suffira de les effectuer sur un seul endroit du code plutôt qu'à chaque endroit où ces instructions sont nécessaires. La fonction peut recevoir un ou plusieurs paramètres, exactement comme en mathématiques, par exemple : f(x) = x+1, donc f(1) = 2, f(2)=3, etc. On peut donc facilement créer une fonction qui calculera la TVA, qu'on pourrait définir en pseudo-code comme suit:

CalculeTVA(PrixHorsTaxe, MontantTVA) {
PrixTTC = PrixHorsTaxe * ( 1 + (MontantTVA / 100))
Renvoie PrixTTC
}

Lors de l'exécution du programme, chaque appel à la fonction CalculeTVA, avec les paramètres associés, par exemple CalculeTVA(29,99, 19,6), sera remplacé par son résultat effectif.

Les programmes peuvent effectuer les tâches les plus simples comme les plus complexes, et naturellement tous les développeurs ne se valent pas, mais le mérite ou l'intérêt d'un logiciel ne se mesure pas nécessairement à la virtuosité de son code. D'autant que tout le sel de la chose consiste parfois à tirer le meilleur parti des ressources matérielles, grâce à un algorithme élégant, c'est à dire qui donnera naissance au plus petit programme possible pour effectuer une tâche donnée.

Un code qui sera exécuté étape par étape, ou en appelant des fonctions, relève de la programmation dite procédurale, mais Objective-C, le langage de programmation de Mac OS X, permet de faire de la programmation orientée objet. Derrière ce nom énigmatique s'abrite un concept très puissant qui permet de grandement simplifier la vie des développeurs.

L'objet est une sorte de programme dans le programme, une entité propre, avec ses propriétés et ses comportements. Par exemple, le procédé permet de définir un objet Voiture, qui aura des propriétés marque, nombreDePortes, année, etc. Ainsi, à partir d'une seule définition de l'objet voiture, le développeur pourra en créer en mémoire différentes instances, c'est à dire des émanations suivant le même gabarit mais dont les propriétés pourront être différentes.

De plus, les objets pourront interagir entre eux spontanément sans que le programme général n'ait à s'occuper d'eux, puisqu'ils disposent de leurs propres comportements. Mieux encore, les objets eux-mêmes peuvent instancier d'autres objets, créant des relations parent-enfant et transmettant leurs propriétés en héritage. Cette approche permet de rendre le code plus autonome et de ne pas avoir à faire de la micro-gestion à s'en donner des maux de tête : les problèmes complexes en deviennent autrement plus simples à résoudre, grâce à cette approche organique.

skitched

Et de fait, nombre des éléments clé-en-main fournis dans Mac OS X pour les développeurs sont eux-mêmes des objets, ce qui a permis de les intégrer dans Interface Builder, un logiciel qui permettait de créer l'interface d'une application entièrement à la souris, en liant simplement les éléments aux actions et valeurs intégrées dans le code, et qui a depuis été intégré directement dans Xcode.

Pour la petite histoire, il s'agit là directement d'un héritage de NeXT, lui-même inspiré par les travaux du Xerox Parc sur Smalltalk, comme en témoignait Steve Jobs lui-même dans le documentaire de Robert X Cringely, Triumph of the Nerds, en 1996.

Quoi qu'il en soit, Apple a toujours porté beaucoup d'attention au travail des développeurs tiers. La force du Macintosh des premières heures a été la cohésion de son interface, alors que sur Windows une tâche similaire dans deux logiciels donnés pouvait avoir des raccourcis claviers différents, par exemple. On doit beaucoup de cette cohésion à la "bible" qu'Apple fournit aux développeurs : un épais livre (à l'époque du moins) appelé Macintosh Human Interface Guidelines.

Apple ne s'est pas arrêtée en si bon chemin, puisqu'elle a intégré à chaque nouvelle version de Mac OS X de nouvelles fonctions permettant de simplifier la vie aux développeurs, et donc de créer des applications plus fiables, plus puissantes, et plus élégantes. A tel point qu'aujourd'hui, Cocoa peut pratiquement être abordé comme un langage de haut niveau, de type script. Typiquement, les langages scripts sont des langages plus faciles d'accès, car ils se vouent à commander un moteur d'exécution qui se situe au-dessus du système d'exploitation, sans avoir besoin d'une compilation. Et de fait, la création d'interfaces à la souris, et les commandes relativement simples s'apparentent beaucoup à des environnements de développement comme Flash, par exemple.

La syntaxe même en Objective-C permet d'éviter les erreurs (par exemple, les paramètres d'une fonction sont appelés nommément pour éviter les confusions), mais mieux encore, Mac OS X est livré avec une kyrielle de fonctions qu'il fallait autrefois mettre au point soi-même : ainsi, le framework Core Image dispose de tous les effets visuels dignes d'un Photoshop, qu'une seule commande permet d'activer. Core Animation gère les interpolations et variations de vitesse permettant de beaux effets dynamiques, autrefois hors de portée des développeurs les moins aguerris.

Naturellement, il est possible de plonger plus en profondeur dans les strates du système, afin, si nécessaire, de personnaliser le comportement par défaut de ces fonctions. C'est là que l'analogie aux langages scripts s'arrête, puisque c'est leur limite. Cependant cette approche haut niveau présente nombre d'avantages : offrir les clés de la programmation à un plus grand nombre de personnes, éviter le "mauvais code" susceptible de poser des problèmes, et offrir une interface cohérente, plaisante et dynamique aux utilisateurs finaux, que les développeurs des applications soient chevronnés ou non.

DragonFireSDK : pour développer des applications iPhone sur Windows

| 21/05/2010 | 13:21 |  

Zimusoft commercialise un environnement de développement complet offrant la possibilité de concevoir des applications pour iPhone en C/C++ à partir de Windows. DragonFireSDK comprend tout ce qu'il faut pour concevoir un logiciel pour iPhone, y compris un simulateur. Le tout pour 99,95 $.

L’éditeur de cette solution annonce clairement son ambition, réussir là où Adobe a failli : proposer un produit permettant de développer sur l'iPhone sans maîtriser l'Objective-C et sans avoir un Mac.

La société estime être en règle avec le contrat développeur iPhone. Les langages de programmation qu'elle supporte sont acceptés par Apple. Toujours pour être en accord avec les règles imposées par la firme de Cupertino, la compilation finale est assurée par un Mac. Vous déposez votre archive sur le DragonFireSDK Build Center, lequel se charge de créer un exécutable depuis un ordinateur Apple.

Cocoa : nouveau Bootcamp en Allemagne

| 02/10/2009 | 14:08 |  

Du 9 au 13 novembre, Big Nerd Ranch Europe organise en Allemagne un séminaire de formation sur Cocoa . Cocoa II Bootcamp s'adresse aux personnes qui maitrisent déjà Cocoa et qui désirent renforcer leurs connaissances.

Durant ces quelques jours, les participants apprendront entre autres à intégrer du C++ dans une application Cocoa, à utiliser le framework Sparkle, à maîtriser Core Graphics, Core Image, et Core Animation, à appréhender au mieux LLVM/CLANG ou encore à se servir de Package Maker.

Prix de la formation : 2800 € HT. Une réduction de 200 € est accordée à tous ceux qui s'inscriront avant le 9 octobre.

Big Nerd Ranch : un nouveau séminaire Cocoa en octobre

| 20/08/2009 | 16:55 |  

Big Nerd Ranch Europe organise du 17 au 23 octobre en Allemagne un séminaire de formation sur Cocoa. Les cours auront lieu près de Francfort. Pendant les deux premiers jours, les étudiants apprendront toutes les subtilités du langage Objective-C. Cette première partie de la formation doit permettre aux participants de maitriser le langage de programmation plébiscité par Apple. Le reste de la formation est consacré à l'apprentissage de Cocoa ainsi qu'aux outils de développement Apple.

Prix de la formation : 3400 € HT. Une réduction de 200 € est accordée à tous ceux qui s'inscriront avant le 12 septembre.

Des cours en français pour programmer l'iPhone

| 29/12/2008 | 17:08 |  

Si les cours de programmation dont nous parlions vendredi (lire "Des cours de programmation en février") étaient dispensés en Allemagne, mais en anglais, cette fois c'est en Suisse, à Lausanne, que Sente invite à un cours de trois jours, dispensé en français, ceux qui veulent apprendre à programmer pour l'iPhone. Deux sessions sont organisées, du 28 au 30 janvier et du 18 au 20 mars. Au programme : le langage Objective-C, la gestion de la mémoire, l'environnement Cocoa et la programmation spécifique à la plate-forme mobile d'Apple. Le prix de la session est de 2 250 CHF. Pour la première des deux sessions, il faut faire vite (il ne reste qu'une place). Tous les détails sont sur cette page.

Des cours de programmation en février

| 26/12/2008 | 14:14 |  

Big Nerd Ranch organisera en février prochain trois séminaires près de Francfort pour permettre aux développeurs de se familiariser avec les technologies d'Apple :

- Cocoa Bootcamp aura lieu du 2 au 6 février. Seul prérequis pour assister à ses cours : être familier avec les langages orientés objet. À la fin de la session, les participants seront à l'aise avec Objective-C et les outils de développements Apple et seront capables de concevoir des applications complexes pour Mac OS X. Attention, il ne reste plus que 5 places.

- iPhone Bootcamp, comme son nom l'indique, est un événement similaire, mais consacré à la programmation iPhone. Ce stage se déroulera du 9 au 13 février. Au menu : Objective-C, les API propres à l'iPhone, les outils de développement…

- Advanced Mac OS X Bootcamp est destiné pour sa part aux développeurs qui sont déjà familiers avec les concepts de Mac OS X et qui souhaitent aller plus loin. Ce séminaire aura lieu du 23 au 27 février.

Prix du ticket pour chaque "Bootcamp" : 2800 €. Une réduction de 200 € sera consentie si vous vous inscrivez cinq semaines avant le début de la formation.

Il est à noter que la conférence Cocoa Bootcamp sera animée par Aaron Hillegass, à qui l'on doit le livre "Cocoa Programming for Mac OS X" lequel vient d'être réédité en version française récemment sous le titre "Programmation Cocoa sous Mac OS X".

Sur le même sujet :
- Un livre en français pour se mettre à Cocoa

Coda supporte désormais les plug-ins

| 12/11/2008 | 08:05 |  

Le tout-en-un destiné aux développeurs Web, le logiciel qui fait à la fois du FTP, de l'édition de code et de feuilles de style, de la gestion de sites, Coda, pour ne pas le nommer, arrive dans une nouvelle version. Au programme : le support des plug-ins. Désormais donc, les possibilités du logiciel vont pouvoir être étendues dans diverses directions. Par ailleurs, la révision ajoute le support de la syntaxe de "Cappuccino" (Objective-J) et sait surveiller l'orthographe. Diverses améliorations, dont la liste est donnée ici, sont également de la partie [1.6 - 20,7 Mo - Mac OS X 10.4 - US - 99 $].

coda15

 

Vers la fusion des barres dans Firefox

| 19/05/2008 | 12:12 |  

Dans le cadre d'une prochaine version de Firefox, ses développeurs songent à supprimer le champ de recherche et de le fusionner avec la barre d'adresses. Objectif, simplifier la vie des utilisateurs en réduisant le nombre de points d'entrées pour saisir, qui une adresse, qui un mot clef.

Depuis la version 3 de Firefox, cette barre d'adresses est devenue plus sophistiquée. Elle ne se contente plus de lister les adresses de sites déjà visités (laissant à l'utilisateur le soin d'identifier celui qu'il cherche) elle les présente avec le titre de leur page. Et ces titres pouvant contenir des termes absents de l'URL, ce sont autant d'informations utilisables comme mots-clefs lorsqu'on cherche ces anciennes pages vues.

barredadressesfirefox

Dans ce contexte, la barre d'adresses vient empiéter sur les platebandes de la barre de recherche vers Google. Pour retrouver un vieil article, on pourra préférer la nouvelle barre d'adresses plutôt que celle de recherche.

Ce qui n'est pas sans de possibles conséquences, car chaque fois que Firefox envoie un utilisateur vers Google, la Fondation Mozilla perçoit une dime en échange (Apple procèderait de même avec son champ Google dans Safari).

Les développeurs de Firefox ne voient guère de risques de côté là, en revanche il faudra trouver un moyen, en terme d'interface, pour fédérer en un seul endroit les résultats des recherches provenant de l'historique du navigateur de celles renvoyées par Google (ou de tout autre moteur de recherche).