Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Sur ce plan-là, moi j'ajouterais juste une petite note.
Il n'y a pas si longtemps (vers le début des années 2000), en gros la situation était :
- sur les systèmes unixoides, la plupart des applications étaient en C ou Fortran, la plupart des GUI basés sur X (OpenGL, Motif, etc.).
- sur les systèmes M$, après avoir eu VB (Basic), puis Delphi (Pascal), tout le monde se tournait vers VC++.
Mais Linux commençait à bien rentrer dans le marché du PC, et donc les services scientifiques ou moins administratis voyaient moins d'intérêts à avoir des systèmes différents des services administratifs (qui eux tournaient bien entendu sous Win) : machines plus chères, plus d'informaticiens pour gérer le parc. Du coup, la réflexion était pas mal entamée sur "vers quoi aller qui unifierait un peu les développements", en particulier d'applications à fort GUI.
Sur les systèmes unixoides les gens se sont "naturellement" orientés vers Java (d'abord c'est avant tout un langage de GUI, d'autre part c'était fait par SUN, qui donc équipait pas mal de labos et autres centres , et principalement unixoides). En effet, cela semblait le moyen le plus simple pour, sans tout re-développer, faire tourner de grosses applis à gros GUI de unixoides vers Windows.
Parallèllement, sur Win, les développeurs découvraient un langage, C++, qui, compte-tenu de l'environnement sur lequel ils étaient (beuacoup moins ouvert et programmable que les autres), leur permettaient enfin de faire des choses plus fines, tant en progammation qu'en système ou en graphique.
L'équipement des industries s'amplifiant en PCs grâce à l'emérgence de Linux, de plus en plus de développeurs venant du monde Win se retrouvent soit à cheval sur les 2, soit sur unixoides. Comme ils sont habitués aux RAD, et via les RAD à C++ (Visual Studio ou Visual C++), ils ont largement répandu C++ sur les systèmes unixoides.
Pour moi en gros c'est ça. Et comme de plus les "décideurs" pour la plupart n'y connaissent pas grand'chose, et que c'est du coup "in", ça fait jeune, d'avoir C++, voili voilà...
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
L'histoire que tu raccontes est vraissemblablement celle de ton milieu, mais le monde est beaucoup moins homogène que cela.
Le C++ n'est certainement pas lié aux GUI (ni les GUI particulièrement liés au C++).
Le C++ a une présence forte sous Unix depuis longtemps (après tout Kernighan, Ritchie, Stroustrup ont été des collègues pendant longtemps). g++ date de 1987.
Java a eu du succès parce qu'il a été présenté comme une solution aux problèmes (vrais et supposés) du C++.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
C'est un peu plus compliqué. Et je suppose que tu le sais d'ailleurs. Java a eu du succès commerciale parce que : il a repris la syntaxe de C++ pour ne pas perdre les développeurs; il a eu l'appui d'une grosse boîte; il a eu une forte publicité dans les revues spécialisées; il a eu des bonnes bibliothèques de bases; il a eu la chance de se voir associé au Web dans les mentalités à un moment où l'Internet explosait; on lui a fait un lot de certification avec cours plus ou moins réel dans des collèges (au sens américain), écoles pour professionnels ou écoles privées.
Une fois la popularité acquise il s'est tourné vers Smalltalk dont il prouve maintenant être un successeur autoproclamé, bien plus que le C++ qui n'a pas grand chose de la philosophie Smalltalk. -_-
Attention, je ne cherche pas à démontrer que Java est mauvais... juste que la popularité ne montre rien... d'ailleurs C++ montre bien qu'un langage médiocre peut être extrêmement populaire.
Mais tu ne prétends pas connaître tous les outils actuellement disponible si ?
Ça serait prétentieux. Ce peut-il que certaines choses soient disponibles et que tu ne les connaissent pas ?
Les optimisations sont bien sûr propres à un domaine. Mais cela existe.
Un As d'un domaine avec un langage qu'il maîtrise à la perfection sera probablement plus efficace que tout outil... mais soyons sérieux, l'industrie a souvent des logiciels de qualités déplorables à la conception déplorable. Boehm démontre par la compilation des données de recherche, ces résultats. Les professionnels ont souvent eu une mauvaise formation où le génie logiciel (qui influe bien plus sur le résultat du projet qu'une simple optimisation de code) a été mis de côté. De nos jours, cela pardonne peu. Dans les meilleurs années de la bulle internet n'importe quel personne sachant faire du HTML était engagé par des entreprises de service, même s'il ne connaissait presque rien de l'informatique en dehors de ça. Ça se sent aujourd'hui.
Pour une entreprise, ce n'est pas forcement un bon choix de faire reposer le développement et la maintenance d'un programme sur une seule personne, d'autant plus si c'est un expert. Cela signifie affecter cet expert sur ce programme at vitam eternam, car on n'a pas le temps de former un autre "as", ni les moyens de n'embaucher que des experts. C'est une des raisons pour laquelle les langages "generalistes" prévalent aujourd'hui sur les langages spécialisés.
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Suffisait de lire le reste de mon post? Je le dis et je le répete, trouve moi un compilateur qui optimise mieux que moi, et je serais le premier a en etre content.
Malheureusement, pour l'instant j'en ai pas vu.
C'est mignon de dire ça, mais prouve le, s'il te plait :/Mais cela existe
Tu generalise trop.Les professionnels ont souvent eu une mauvaise formation où le génie logiciel
Ce forum n'est pas fait pour troller, mais pour argumenter.d'ailleurs C++ montre bien qu'un langage médiocre peut être extrêmement populaire.
Comme il n'existe aucun équivalent en C++ du framework objectweb asm donc Java est bien supérieur a C++ car se framework ouvre des perspectives de création de langage et d'optimisation de code.
Mais si quelqu'un trouve un tel framework en C++ je suis super intérréssé...
Toutes les librairies C ++ sont utilisable en Java via les JNI.
Le framework object web asm ne pas générer des classes C++ .
Dans ce cas, toutes les bibliothèques Java sont utilisables en C++ en définissant simplement un protocole réseau entre tes applications.
Enfin, je suis aussi de l'avis de Kujara, ton argument me semble bidon (présenté tel quel). Si je fais un langage qui ne peut quasiment rien faire, mais qui par contre peut utiliser toutes bibliothèques C++, on pourra pas dire qu'il est franchement évolué...
Je ne répondrai à aucune question technique en privé
Pas besoin de faire un protocole réseau tu peut créer une JVM dans une programme c++ creer des instances récuperer un pointeur et appleler des méthode java via ce pointeur .
Ce dont je parle c'est la génération de classe en mémoire en utilisant le comcept de objectweb asm.
Dans ce cas ce framework est propre a Java
Le but est de générer ou de modifier une classe existante (pour y ajouter des méthodes par exemple ou changer sont comportement ).
Et ca en C++ c'est pas possible.
la génération à la volée de code plus ou moins complexe est possible en C++, mais je ne connais pas forcemment la librairie qui fait tout cela d'un seul coup...
pour infos, il y a des choses en C (qui peuvent être utilisé en C++ bien sûr), qui permettent de jouer avec cela, mais si je ne sais pas exactement ce qui doit être effectué, je ne peux pas te dire laquelle regarder
C'est pas le langage qui fait la qualité du code. Si le code est merdique c'est que le développeur est merdique. Et un bon développeur fera du bon code en java comme en c++
Faut reconnaitre que Sun a un peu "forcé" la chance en proposant un framework web beaucoup plus efficace que ce qui existait à coté à l'époque.
Je veux bien moi
Oui cela s'appelle une classe mutante le concept a déjà été abordé dans le forum C++
Java 1 C++ 0 tu est content ?
C'est peut-être possible en C++ mais au prix de certains bricolages avec des classes faites d'attributs de type variant.
Il est vrai que fondalement tous les types de Java en fait , ce sont des types variant comme en Visual Basic
Si sous Java tu déclares un int ou un double en interne ce n'est ni plus ni moins qu'un variant.
C++ 1 Java 1
J'ai deja indique lightening dans le genre. Et bien sur tu peux prendre n'importe quel engine JIT de n'importe quel interpreteur ou machine virtuelle.
D'ailleurs ton framework n'est pas propre a Java mais plutot a la JVM. Il n'est vraissemblablement pas utilisable avec un compilateur Java natif (gcj par exemple) et utilisable avec n'importe quel langage ciblant la JVM (Scala, Ada et il doit y en avoir d'autres; si on a bien fait un compilateur Ada, rien n'empeche de faire un compilateur C++ ciblant la JVM -- ca m'etonnerait pas que ce soit deja fait d'ailleurs).
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager