Developpez.com

Le Club des Développeurs et IT Pro

Intel publie « C++ Compiler v 13.0 »

Son compilateur optimisé pour le développement d'applications natives Android

Le 2013-08-29 09:08:07, par Cedric Chevalier, Expert éminent sénior
Intel publie son compilateur Intel C++ Compiler v 13.0 compatible Android NDK (Native Developpement Kit), destiné au développement d’applications natives pour la plateforme mobile de Google.

Pour l’instant, seuls les systèmes d’exploitation Ubuntu 10.0.4 et 11.0.4 peuvent être utilisés comme environnements de développement pour le compilateur d’Intel. Les versions pour les autres systèmes (OSX, Windows, et autres) devraient voir le jour à une date ultérieure, s’est contenté d’annoncer Intel sans aucune autre précision.

Intel C++ Compiler v 13.0 produit du code natif pour tous les périphériques mobiles (équipés des puces Intel bien sûr) exécutant les versions d’Android Jelly Bean et Ice Cream Sandwich.

Cependant, la plupart des applications écrites pour Android sont faites en Java. Une minorité seulement utilisent du code natif. De plus, le code natif sous Android n’améliorerait pas les performances des applications autant qu’on pourrait le penser. On peut lire sur le site relatif au développement d’Android : « L’utilisation du code natif n’améliore pas de façon perceptible les performances des applications, cependant elle contribue à augmenter la complexité de ces dernières ».

Autrement dit, il est vivement recommandé aux développeurs d’utiliser les Framework de développement pour l’OS mobile. On peut lire sur la même page du site officiel : « Lorsque vous examinez votre code pour déterminer si vous avez besoin ou non de faire du natif, pensez d’abord à chercher du côté des API des Framework existants, pour savoir si les fonctionnalités que vous recherchez ne sont pas déjà disponibles ».

Une question se pose alors : quelles sont les motivations qui pourraient pousser Intel à s’investir du côté du développement natif pour Android, alors qu’il y a quelque temps, la firme publiait XDK pour le développement d’applications multiplateformes utilisant HTML5 ?

Télécharger Intel C++ Compiler v 13.0 pour Android (il faut s'enregistrer au préalable)

Sources : Intel, Android

Et vous ?

Qu'en pensez vous ?
  Discussion forum
2 commentaires
  • jmnicolas
    Membre éprouvé
    D'une part développer en C++ permet d'avoir du code portable sur toutes les architectures mobiles, alors que paradoxalement Java n'est présent que sur Android.

    Enfin je pense que Google décourage l'utilisation de C++ pour le commun des devs plus pour des questions de "qualité" des applis que pour une histoire de perfs.

    Un dev de base a plus facile de faire une app correcte en Java qu'en C++, mais je reste persuadé que le natif est bien plus performant.

    edit :

    Quantifying the Performance of Garbage Collection vs. Explicit Memory Management

    In particular, when garbage collection has five times as much memory
    as required, its runtime performance matches or slightly exceeds
    that of explicit memory management. However, garbage collec-
    tion’s performance degrades substantially when it must use smaller
    heaps. With three times as much memory, it runs 17% slower on
    average, and with twice as much memory, it runs 70% slower. Gar-
    bage collection also is more susceptible to paging when physical
    memory is scarce. In such conditions, all of the garbage collectors
    we examine here suffer order-of-magnitude performance penalties
    relative to explicit memory management.
  • nicroman
    Expert éminent
    On peut relancer le troll sur la rapidité entre C++ et Java ad vitam aeternam Le fait est que toute application C++ sérieuse à laquelle j'ai pu toucher a toujours surchargé le new/delete pour faire sa propre gestion mémoire (recyclage, debugging, allocations rapides malloc étant une plaie question rapidité, etc...). Mais c'était il y a 6/7 ans, le langage a peut-être été modifié depuis pour intégrer ces trucs.

    L'intérêt du C++ par rapport à Java sur Android, est surtout de pouvoir bénéficier de toutes les ressources du device (la mémoire entre autre), et ainsi faire des applications (jeux?) qui utilisent 800Mo de RAM, chose impossible en Java.
    Par contre on perd l'ensemble du framework UI, et ré-implémenter l'Action-Bar n'est pas une chose facile à mon avis