|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
Inscription : mai 2006 Messages : 615 ![]() |
Salut,
Je me pose une question existentielle De nos jours quel sont les raisons qui nous poussent à opter pour développer un projet en C++ plutôt que d'utiliser un langage objet managé ? D'un côté certains soutiennent que les codes managés sont finalement aussi rapide que du C++. D'un autre ces mêmes soutiennent que le time to market est bien meilleur en Java/C# pour ne citer qu'eux. Même l'embarqué à l'instar d'android utilise Java. Donc au final qu'est ce qui justifie encore aujourd'hui le recours à du C++, hors mis pour des développement de niche, comme les jeux vidéos, les machines virtuelles... ? Merci de ne pas considérer cette question comme un "troll". |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : juillet 2008 Messages : 1 580 ![]() |
Ils peuvent soutenir tout ce qu'ils veulent c'est pas le cas.
__________________
"Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() |
Bonsoir,
Le C++ est au moins encore nécessaire pour développer la JVM et le compilateur Java ! Voici la fonction main de la JVM d'openJDK 1.7 : Code :
__________________
www.nudge.org Surveillez vos applications Java et diagnostiquez facilement les problèmes de performance. |
||
|
|
11
|
|
|
#4 | |||
![]() ![]() Inscription : juin 2008 Messages : 7 631 ![]() |
Salut,
En général, on ne trouve pas de réponses à ces questions Citation:
Citation:
Citation:
android si on souhaite le considéré comme embarqué, n'en est qu'une (petite) parcelle. Et là on parle déjà d'embarqué de 'luxe'. Beaucoup de projet embarqué ne peuvent accueillir d'OS riche (linux + jvm ou windows XXX Embeded + .Net) : bye bye java/C#. Dans certains cas, les seuls compilateurs des cibles ... sont exclusivement C, donc aussi bye bye c++ ![]() Logiciel Embarqué : Quels langages pour le développement embarqué ?Ca en sera quand même un
|
|||
|
|
00
|
|
|
#5 | ||
|
Débutant
Inscription : mai 2006 Messages : 615 ![]() |
Citation:
Et donc quand la question de rapidité se pose, je serais plus enclin à opter pour C++, et c'est là que certains conflit apparaissent car d'autres prétendent que c# notamment avec le JIT est tout aussi rapide. Citation:
|
||
|
|
00
|
|
|
#6 |
![]() ![]() |
Salut,
Je crois que chacun voit midi à sa porte... Une équipe réellement expérimentée en C++ fournira très certainement un meilleur résultat (en terme de temps de développement et de taux de bugs) qu'une équipe peu expérimentée en java, tout comme l'inverse sera très certainement vrai aussi. Il est aussi vrai que les langages managés ont l'énorme avantage de "tenir la bride serrée" au développeurs qui n'ont, jamais, qu'une seule manière autorisée pour faire quelque chose, ce qui simplifie énormément les choix architecturaux, et donc, simplifie énormément la recherche de bugs ou le refactoring (la seule question devenant du genre "est que A est la classe de base et B l'interface, ou est-ce plutôt le contraire D'un autre coté, le fait que le choix soit si limité donne (parfois) l'impression d'avoir à choisir "entre la peste et le cholera" car aucune solution ne s'avère réellement pertinante par rapport à un héritage multiple ou à une programmation générique, par exemple. Et, bien sur, les "pro managé" me contrecarreront avec leur sempiternelle "mais C++ est tellement permissif qu'il te permet même de te tirer une balle dans le pied"... Bref, on trouvera toujours du "pour" et du "contre", et la "gueguerre" entre les différents langages est loin d'être finie
__________________
en bas de page
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2004 Messages : 3 673 ![]() |
Il faut être sincère aussi: il y a certain type d'applications que l'on ne peut raisonnablement pas faire en Java ou en C#. Par exemple, un démon qui est sensé tourner 24h/24 pendant 10 ans (sans planter) et qui doit exécuter une analyse en "temps réel" d'un flux Euronext, c'est impensable de le faire en java ou en c#. D'abord pour des raisons de rapidité de traitement (un flux Euronext ce sont des millions de données par minute), pour des raisons de gestion de la mémoire, et accéssoirement pour la gestion des ressources. Car pour ce type d'application qui requier précision et sécurité à l'extrême, on peut avoir besoin d'utiliser des accès à des ressources particuliers (par exemple accès au GPU pour booster certains types de calculs), et pour cela, il faut un accès bas niveau (donc pas de machine virtuelle).
Mais par contre il n'y a pas que le C++ pour ce genre de choses. Après, certains grosses applications, il ne faut pas hésiter à découper en modules et à utiliser les avantages de différents langages à bon escient. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com