Le meilleur langage pour le développement cross-platform est-il le C++ ?

Les rubriques (actu, forums, tutos) de Développez
Tags
C++
Réseaux sociaux


 Discussion forum

Retrouvez le dossier complet de la rédaction
Sur le même sujet
Le , par Hinault Romaric, Responsable Actualités
Lorsqu’il s’agit de développement mobile, les langages mis en avant pour la création d’applications multiplateformes sont couramment HTML et JavaScript.

Pour le développement natif, en fonction des écosystèmes, les développeurs s’orientent le plus souvent vers objective-c ou Java.

Pourtant, ceux qui cherchent à créer des applications cross-platform tout en bénéficiant d’une approche efficace pour la réduction des couts peuvent trouver leur bonheur au sein du C++.

C’est en tout cas ce que pense John Thomas, directeur de gestion des produits chez Embarcadero Technologies, qui a présenté les atouts du langage pour le développement mobile lors d’une session intitulée « le regain du C++ pour le développement d’app mobile » pendant la conférence DevCon5 de San Francisco.

C++ peut être utilisé pour développer des applications natives pour Android, iOS, Windows Phone, Windows RT et Blackberry 10, selon John Thomas, qui estime que « les développeurs commencent à réaliser que l’utilisation d’outils natifs pour chacun de ces écosystèmes est trop chère, et ceux-ci sont à la recherche d’une solution ».

En effet, le compilateur LLVM d’Apple pour son outil de développement Xcode prend entièrement en charge C++. Android offre le NDK pour la création d’applications C++. Windows Phone 8 introduit également la prise en charge en natif du C++ et le SDK pour BlackBerry 10 dispose d’un Framework permettant le développement d’interface utilisateur en C++.

En dehors du domaine des jeux où le langage excelle, John Thomas trouve que C++ est également en parfaite adéquation avec la création d’applications d’entreprise.

Dans sa feuille de route pour 2013, Embarcadero envisage d’intégrer dans ses outils de développement la prise en charge de la création d’applications pour Android et iOS en C++.

Source : Embarcadero

Et vous ?

Que pensez-vous du langage C++ dans le mobile ? Meilleur choix pour le développement multiplateforme ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de octal octal
http://www.developpez.com
Membre chevronné
le 11/12/2012 14:51
Franchement, en le combinant avec un framework aussi bien fait que Qt, ça marche très bien.
Après, il est clair que si l'on ne rivalisera jamais avec la vitesse de développement et le confort obtenue avec un langage genre C# qui gère les allocations/désallocations dynamiquement et décharge grandement le développeurs de pleins de points noir en débug (même si le C++ a comblé partiellement son retard avec les smart pointers offer par boost ou autre).
Avatar de Enerian Enerian
http://www.developpez.com
Membre émérite
le 11/12/2012 14:58
Houla ! J'entends les trolls rappliquer à grands pas x)

Non, plus sérieusement, je pense effectivement que le C++ peut-être une bonne solution pour des applications cross plateforme sur mobile. Surtout si on veut profiter des avantages du natif sans avoir le budget pour développer une appli pour chaque OS. Cependant, il manque peut-être des outils pour ça. Comme l'a dit Octal, Qt pourrait être une bonne solution s'ils approfondissaient leur support des différents OS et s'ils intégraient des simulateurs dans leur IDE.

Ce qui me fait peur par contre, c'est que beaucoup de développeurs fraichement formés ne sont plus sensibilisés aux problématiques "bas niveau" (tout est relatif). Je pense notamment à la gestion manuelle de la mémoire. Venant moi-même de recevoir mon diplôme d'ingénieur, je sais que sans ma passion pour la programmation qui m'a poussé à être curieux et a approfondir des notions que l'on a juste effleuré, j'aurais pu obtenir ce diplôme sans savoir ce qu'est un pointeur ou un destructeur.
Donc, j'ai peur qu'on mette sur du C++ des développeurs habitués à programmer à plus haut niveau et qu'on obtienne des résultats catastrophiques.
Avatar de JavaBean JavaBean
http://www.developpez.com
Membre du Club
le 11/12/2012 15:20
C++??
Avatar de Bousk Bousk
http://www.developpez.com
Modérateur
le 11/12/2012 15:25
Citation Envoyé par octal  Voir le message
Après, il est clair que si l'on ne rivalisera jamais avec la vitesse de développement et le confort obtenue avec un langage genre C# qui gère les allocations/désallocations dynamiquement et décharge grandement le développeurs de pleins de points noir en débug (même si le C++ a comblé partiellement son retard avec les smart pointers offer par boost ou autre).

Je suis d'accord pour la "vitesse de développement" que peut offrir C#. Encore que, c'est plus une question d'habitude que du langage en lui-même.
Autant vouloir s'affranchir totalement de la gestion mémoire, je n'y vois aucune évolution réelle. Oui le C++ permet de gérer la mémoire aux petits oignons, mais je n'apelle pas ça un retard, pas plus que l'utilisation des smart pointer n'est une obligation. Je suis beaucoup plus géné par le Garbage Collector "qui passe un peu quand il veut" (bien qu'on peut le forcer il me semble) que par maîtriser la responsabilité et la durée de vie de mes objets et pouvoir les supprimer (et tout ce que ça implique - fermer un fichier etc) quand je le souhaite.

Citation Envoyé par Enerian  Voir le message
Ce qui me fait peur par contre, c'est que beaucoup de développeurs fraichement formés ne sont plus sensibilisés aux problématiques "bas niveau" (tout est relatif). Je pense notamment à la gestion manuelle de la mémoire. Venant moi-même de recevoir mon diplôme d'ingénieur, je sais que sans ma passion pour la programmation qui m'a poussé à être curieux et a approfondir des notions que l'on a juste effleuré, j'aurais pu obtenir ce diplôme sans savoir ce qu'est un pointeur ou un destructeur.
Donc, j'ai peur qu'on mette sur du C++ des développeurs habitués à programmer à plus haut niveau et qu'on obtienne des résultats catastrophiques.

S'il fallait attendre les futurs jeunes développeurs pour pondre du code imbuvable ce serait le paradis !
Malheureusement tu retrouveras souvent en entreprise dans des équipes des canards boiteux, parfois là depuis des années.
Avatar de zackel zackel
http://www.developpez.com
Invité régulier
le 11/12/2012 15:27
le compilateur LLVM d’Apple

Dis comme ça j'ai eu vraiment l'impression que LLVM était la propriété d'Apple
Or LLVM c'est un compilateur libre utilisé par Apple.
Avatar de Vinorcola Vinorcola
http://www.developpez.com
Membre du Club
le 11/12/2012 15:34
De là à dire que C++ sera omniprésent, je ne sais pas, notamment par rapport à la facilité de développer des langages plus haut niveau. Par contre, une chose qui est sûre, c'est que le C++ ne disparaîtra jamais (en tout cas, je le penses très fortement).

Moi je préfère développer en C++ plutôt qu'en Java, je penses que c'est surtout une histoire d'habitude. J'aime bien pouvoir contrôler si je passe une copie ou une référence en paramètres.

Et le framework Qt est en très bonne voie, notamment avec la refonte du système d'affichage dans sa version 5. Cela permettra de le porter sur une nouvelle plateforme très facilement.
Avatar de r0d r0d
http://www.developpez.com
Expert Confirmé Sénior
le 11/12/2012 15:48
La récente multiplication des plateformes a donné un coup de fouet au langage, c'est un fait. De plus, l'évolution constante de c++ en fait un langage "dans l'air du temps", pour ainsi dire; et "être dans l'air du temps" ne signifie pas seulement "être à la mode", cela signifie aussi "utiliser des idiomes et paradigmes récents", et donc gagner en efficacité sur plusieurs fronts à la fois.

Je ne sais pas quel est l'avenir de c++, mais nous avons tous remarqué qu'il a le vent en poupe en ce moment. Le rouleau-compresseur c# a écrasé java, puis a été lui-même stoppé net par la multiplication des plateformes. Certains "jeunes" langages ont des arguments - je pense par exemple à Haskell - mais ils peinent à s'imposer.
Avatar de olivier.pitton olivier.pitton
http://www.developpez.com
Expert Confirmé
le 11/12/2012 15:51
Je ne pense pas que le C++ arrivera à s'imposer dans l'univers du mobile. Attention, je ne dis pas que l'on ne peut pas développer de bonnes applications en C++, mais je pars simplement du principe que la quasi totalité des sociétés développant dans le mobile ne le font pas en C++, donc que son adoption sera difficile.

A voir dans quelques temps.
Avatar de air-dex air-dex
http://www.developpez.com
Membre Expert
le 11/12/2012 15:52
Au niveau performances, le C++ est loin devant les applis HTML 5 et Java et c'est toujours bon à prendre sur les terminaux mobiles.

Après il reste le problème de la portabilité. Embarcadero fait ici sa promo ("le C++ revient fort dans le dev mobile et comme par enchantement, on en fera en 2013 !") mais ce n'est pas eux qui résolveront le problème. Qt est plus que jamais là pour ça. La stratégie de Qt a évolué depuis son départ de Nokia et ne se cantonne plus aux OS morts (Symbian, Maemo, MeeGo) ou jamais annoncés (Meltemi) de ce dernier. Qt va maintenant sur iOS, Android, BlackBerry et Sailfish OS et cela peut en effet relancer le C++ dans le developpement mobile. Qt permettra d'avoir des applications pouvant marcher plus rapidement sur plusieurs grosses plateformes avec plus de qualités que le HTML5 et pour moins cher. En effet, le développement d'une appli Qt coûtera sûrement moins cher que le développement de 1°) Une appli Objective-C pour iPhone et iPad et 2°) Une appli Java pour Android et 3°) Plus si affinités. Il coutera peut-être aussi cher qu'une application HTML5 et son adaptation aux différentes plateformes mais la qualité des appli Qt sera plus élevée que celle des applis HTML5.
Avatar de Freem Freem
http://www.developpez.com
Expert Confirmé
le 11/12/2012 15:53
Je pense que la faiblesse de C++ par rapport aux autres langages, c'est l'absence de support d'IHM, que ce soit pour une interface type HTML ou une interface plus lourde.
Il y a également quelques autres manques dans le standard, mais l'on peut grandement résoudre ce problème grâce à boost.

Par contre, dire que l'on développe plus vite en C#, par exemple, me semble un peu... erroné. Bon, je suis habitué au C++, donc je suis parti pris, naturellement.

Mais je suis actuellement sur un programme ou une multimap m'aiderait bien. Il semble que C# n'offre pas ce genre d'outil, contrairement au C++.

Ensuite, la gestion mémoire, c'est vrai, elle est contraignante en C, mais en C++ ne n'est pas aussi vrai. Le seul point noir restant qui contraint à user des pointeurs, c'est les collections et le polymorphisme, vu que les associations peuvent très bien se faire via des références (bien que cela empêche les associations nulles, chose que l'on peut avoir avec les pointeurs).
En plus je trouve qu'il est plus simple de savoir si l'on fait une copie en C++ plutôt qu'un partage de référence.

Je pense que la RAII du C++ est un avantage de taille, comparé aux langages à la mode qui promeuvent les garbage collectors.

C++ à aussi l'inconvénient d'être un "tantinet" (d'aucuns auraient dit nettement) plus complexe à maîtriser que les autres, de pars son côté de liberté de paradigme, et le côté "on ne paye que ce que l'on utilise" qui implique de choisir ce que l'on va utiliser.

Malheureusement, ces points sont des points techniques. Le problème, ce sont les décideurs...
Offres d'emploi IT
Lead dev. symfony2
CDI
INTEAM - Ile de France - Paris (75000)
Parue le 27/10/2014
Opportunité d’ingénieur étude et développeur back end node js
CDI
HUMAN PROFIL - Languedoc Roussillon - Montpellier (34000)
Parue le 08/10/2014
Ingénieur Développeur Java JEE / Expert Technique (H/F)
CDI
Linkeo.com - Ile de France - Paris (75008)
Parue le 23/10/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula