Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/07/2013, à 09:55

GangsterAutorisé

java vs c++

Bonjour,

Je bricole sur plusieurs langages pour des petits programmes. J'ai du mal à me faire une idée pour les grands programmes. J'envisage parfois d'apprendre sérieusement un langage POO. En ce moment j'hésite entre java et c++. Je remarque que les parts de marché pour java représentent encore le double du c++. Même s'il faut relativiser ses stats, y aurait-il une raison d'après vous ? Les bibliothèques sont plus pertinentes, plus évolutives ? Le code est plus facilement maintenable ?
D'autre part il me semble que les salaires proposés aux devs java sont supérieurs à ceux proposés aux devs c++ ? Est ce que je me trompe ? Sinon pourquoi ?

Un autre point m'interpelle, il me semble que les logiciels RH sont souvent écrit en java avec oracle en sgbd. Pourquoi pas en c++ ? Pourquoi pas avec un autre sgbd ? Encore une fois, y aurait-il une bib en java plus pertinente qu'en c++ (par exemple pour historiser tout le contexte d'une carrière au jour près ) ? Pourquoi les grands programmes n'utiliseraient pas postgre par exemple ?

Ces quelques questions pour lancer un peu le débat, mais ce qui m'intéresse surtout c'est les différences entre java et c++.

Dernière modification par GangsterAutorisé (Le 19/07/2013, à 09:56)


Quel con a dit y a rien qui se passe ?

Chanson d'Alain Leprest

Hors ligne

#2 Le 19/07/2013, à 11:08

pierrecastor

Re : java vs c++

Salut

Pour les salaires, je pense que c'est android qui joue beaucoup.

Sinon, les deux langages n'ont pas du tout la même vocation, les mêmes avantages et inconvénient, vu qu'il faut une machine virtuel pour java.

Pour le sgbd, il me semble qu'oracle offre des performances bien supérieure aux solutions comme mysql ou postgre.

Donc je dirait que pour choisir java ou c++, ça dépend du projet que tu veut faire.


Oui c'est bien plus ouf et c'est bien bandant
Courir nu la bite à l'air, courir nue la fouffe au vent
Ludwig von 88 - Fracas

Hors ligne

#3 Le 19/07/2013, à 12:28

GangsterAutorisé

Re : java vs c++

Oui ok merci pierrecastor.

Je crois qu'historiquement java a pris de l'avance parcequ'il était pensé pour le web. Avec la jvm, installée sur le poste client, les problèmes d'interopérabilité sont résolus. C'est la jvm qui fait l'interface entre le code serveur et l'OS ou le navigateur.

Le c++ n'a pas été pensé spécifiquement pour le web, c'est sûrement pour ça qu'il a du retard puisque le mode full web est à la mode pour les applis de gestion en tout cas.

Ceci dit, je vois qu'une bibliothèque comme hadoop (qui permet de faire du calcul distribué et développée par apache) existe en java mais je ne trouve pas d'équivalent en c++.
Il y a peut-être aussi le fait qu'il y a plus de framework (orienté web, ou orienté sgbd comme toplink), pour java que pour c++ ? Ce serait donc plus facile de construire un prog complexe en java qu'en c++ ? (toplink serait meilleur qu'un connecteur c++ ?)

Mais bon ce n'est que l'avis , plutôt des questionnements, d'un programmeur du dimanche.

Dernière modification par GangsterAutorisé (Le 19/07/2013, à 12:32)


Quel con a dit y a rien qui se passe ?

Chanson d'Alain Leprest

Hors ligne

#4 Le 19/07/2013, à 18:35

Aspirine6

Re : java vs c++

Je pense que java à la côte au près des étudiants en particulier parce qu’il propose un système de gestion de la mémoire différents de c++, système qui ne comporte pas de pointeurs, j'ai récemment fait un stage à la fac d'info de Lille et beaucoup des étudiants avoué choisir java juste pour éviter d'avoir à manipuler des pointeurs, et ce sont ces mêmes étudiants qui se retrouvent ensuite développeurs, les pointeurs sont entourés par une sorte de mythe qui dit qu'ils sont à éviter à tous prix et sont un vrai cauchemar ^^

Voilà ma petite contribution à ce débat !

@+

Hors ligne

#5 Le 19/07/2013, à 21:20

Haleth

Re : java vs c++

Troll, troll, TROLLLL !


Alors, comme répondre ..

Même s'il faut relativiser ses stats, y aurait-il une raison d'après vous ?

Coder de la merde rapidement à la côte auprès de certaines boites. C'est rapide, et le client revient ensuite pour améliorer le truc.

Les bibliothèques sont plus pertinentes, plus évolutives ?

Oh que non;

Le code est plus facilement maintenable ?

OH que non ! Enfin, n'importe quel programme écrit dans un langage, par un goret, sera difficile à lire.
La différence est que java = IDE qui écrivent comme des gorets, donc ça aide pas lol

Un autre point m'interpelle, il me semble que les logiciels RH sont souvent écrit en java avec oracle en sgbd. Pourquoi pas en c++ ?

Même raison que si dessus: rapide et d'une qualité médiocre
Pour oracle en SGBD: parcque c'est payant, donc forcément mieux

Pourquoi les grands programmes n'utiliseraient pas postgre par exemple ?

Y'a beaucoup de programmes qui utilise ce soft

D'autre part il me semble que les salaires proposés aux devs java sont supérieurs à ceux proposés aux devs c++ ? Est ce que je me trompe ? Sinon pourquoi ?

Si ton but est de faire de l'argent rapidement et sans scrupule, alors fait du java

Ceci dit, je vois qu'une bibliothèque comme hadoop (qui permet de faire du calcul distribué et développée par apache) existe en java mais je ne trouve pas d'équivalent en c++.

C'est une lib, ou un soft ? Faire du calcul parallèle en C++, c'est deux lignes de codes.
Après, pour reprendre ton exemple, je doute que google implémente googlefs en java smile

Ce serait donc plus facile de construire un prog complexe en java qu'en c++ ?

Ouais, c'est plus facile (enfin, non, m'enfin, faut faire croire que ..)
Enfin, c'est le choix entre la facilité ou la qualité ..

Je pense que java à la côte au près des étudiants en particulier parce qu’il propose un système de gestion de la mémoire différents de c++, système qui ne comporte pas de pointeurs,

C'est l'une des raisons: en java, tu peux coder comme un porc, tu sais que de toute facon, ton programme ne sera pas de qualité
En C et C++, le dev a besoin de talents. Dans certains milieu, on n'aime pas les gens qui ont (ou ont besoin) de talents.
Dans les milieux étudiants, y'a aussi un bourrage de crâne, qui prend forme avec les points suivants:
- cette techno est incroyable et possède des qualités dingues et unique (ici: java est multi-plateforme alors que C++ non, java compile vite alors que C++ non, en C++ faut tout recompiler à chaque fois alors qu'en java non ...)
- mépris pour les autres techno (ici: le C++ ? Pouah, faut vivre avec ton temps, c'est old-school; le C++, c'était cool avant, mais maintenant on a java; Nah mais java, c'est mieux, regarde c'est fait par une boite comme ORACLE alors que C++ c'est fait par des gueux dans un garage !)

Le problème, et c'est ce qui me fait peur, c'est que beaucoup d'étudiants (en master par exemple) boivent ces conneries comme du petit lait. Il seront chefs de projets dans moins de 10ans, et imposeront ce genre de conneries massivement (ie: encore plus qu'aujourd'hui). De la corruption de l'éducation vient la corruption de la société ..

les pointeurs sont entourés par une sorte de mythe qui dit qu'ils sont à éviter à tous prix et sont un vrai cauchemar ^^

Dans un monde utopique, les gens apprendront à utiliser C et C++ sans pointeur smile

Bref, pour répondre à ta question et pour résumer:
- Si ton but est de faire de la merde rapidement, et de la vendre cher: java
- Si tu aimes le travail bien fait, même si ça prend plus de temps (et comme tu aimes ce que tu fait, c'est pas grave): C++
- Si t'es fan d'android et que ton rêve est de mettre un jeu à base de chien ou de mouton sur le google store: java
- Si ton boulot te fait déjà chier et que tu veux surtout pas te prendre la tête pour savoir et comprendre ce que tu fait (si ton rêve est de pisser du code 7H par jours): java
- ..


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#6 Le 19/07/2013, à 22:29

dfiad77pro

Re : java vs c++

Oui mais en c++ tu peux aussi faire de la merde et faire un programme qui marche .... mais aussi lentement qu'en java.

C'est vrai que pour faire un petit logiciel rapidement Java va bien , mais dès que tu veut aller loin dans l'interface graphique, tu perds du temps.
De ce coter la Microsoft  est supérieur actuellement ( si on doit comparer 2 langage managés, .NET..). *

Perso je n'aime pas à devoir réfléchir techniquement pour faire une IHM moderne ( thread d'animation etc...), alors Java SWING adieu.
Par contre QT, WPF, voir GTK dans le pire des cas ça me branche beaucoups plus

De plus c/c++ deviens très vite indispensable pour tout se qui touche l'audio temps réel, 3D etc...
Si le logiciel est en java il faut faire le moteur en c.


Pour oracle vs mysql, il me semble que free arrive a faire tenir ses bases sur du mysql donc la techno doit être correcte niveau perf

Dernière modification par dfiad77pro (Le 19/07/2013, à 22:33)

Hors ligne

#7 Le 19/07/2013, à 22:38

Haleth

Re : java vs c++

Évidement, tu peux le faire
Mais concrétement, combien de gros projet java sont démentiellement efficaces ?

Des projets en C/C++ qui sont hypnotique, j'en ai plein.
Genre ca: http://www.kevinbeason.com/smallpt/


Voila un projet minuscule, sans lib, qui fait des trucs incroyables.
Des projets en java qui sont des grosses bousses, y'a le choix smile T'façon spa compliquer, suffit de lancer le soft pour te dire "tien, c'est fait en java ca, non ? habawé en effet"

Bref


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#8 Le 19/07/2013, à 22:50

Korak

Re : java vs c++

Bonjour,

Aspirine6 a écrit :

un système de gestion de la mémoire différents de c++, système qui ne comporte pas de pointeurs

J'ai toujours eu un stress avec les pointeurs. Que ce soit en Pascal ou en C/C++.

Aspirine6 a écrit :

beaucoup des étudiants avoué choisir java juste pour éviter d'avoir à manipuler des pointeurs, et ce sont ces mêmes étudiants qui se retrouvent ensuite développeurs, les pointeurs sont entourés par une sorte de mythe qui dit qu'ils sont à éviter à tous prix et sont un vrai cauchemar ^^

Mais les pointeurs, en C ou n'importe quel autre langage de programmation, t'apportent un certains plus.

Et maîtriser les pointeurs t'apporte un meilleur code et une meilleure exécution de de ton code.

Enfin, je dis ça, je ne dis rien..... (ça fait quinze ans que je ne programme plus et les choses ont bien changés).


OS: Ubuntu 22.04 64 bits + Windows 11 64 bits en dualboot (BIOS UEFI, Secure Boot activé et table de partitions GPT)
PC portable HP 17-CP0308NF   Processeur: AMD Ryzen 7 5700U avec carte graphique AMD Lucienne intégrée au processeur.   Mémoire vive: 16 Go RAM
Quand vous ne trouvez pas la solution à un problème, cherchez des pistes menant à la solution !

Hors ligne

#9 Le 20/07/2013, à 09:20

telliam

Re : java vs c++

Korak : +1 : moi de toute façon un ingénieur débutant qui arrive et qu'il me dit qu'il n'aime pas les pointeurs, il passe meme pas la porte du bureau smile
et puis dire qu'il n'y a pas de pointeur en java, c'est un non sens, il y a des pointeurs mais leur utilisation est plus simple et il y a le garbage collector qui fait le nettoyage, donc ça simplifie,
le pb du java c'est qu'on a tendance a utiliser une lib juste pour 2-3 fonctions, donc du coup ca fait des gros programmes...
sans parler de la lenteur due a la JVM.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#10 Le 20/07/2013, à 10:39

GangsterAutorisé

Re : java vs c++

Ok merci pour vos avis.

@haleth
Je t'assure je ne trollais pas, c'est une vraie question que je me pose en voyant les langages utilisés dans toutes les applis de gestion que je vois passer, et en voyant les annonces d'embauche.
Pour hadoop tu as raison ce n'est pas une bib, c'est un framework java, utilisé par googlefs et facebook par contre.
Merci pour l'exemple en c++ de 100 lignes de code, c'est parlant quand même pour quelqu'un qui voit ce langage d'un peu loin.

Donc je comprends un peu mieux la situation quant à ces deux langages.
Il y a la rapidité de dév en java qui a ses inconvénients on est bien d'accord, mais les décideurs sont-ils à mm de les voir ? Ne vont-ils pas préférer des dev moins pointus avec des durées de vie courtes et des nouvelles versions majeures fréquentes ?
Un point négatif pour java pourrait être la sécurité de tout le SI. Je m'explique, un dsi expert judiciaire sur la sécurité, m'a dit qu'il bannit tout appli en java dans sa structure (trop de failles, trop d'erreur de prog ? moins de maitrise dans la gestion de la mémoire ?).La sécurité ce peut être un point négatif pour java à l'avenir, ou c'est pas clair d'après vous ?
Un point négatif important pour l'avenir c'est la dépendance à oracle. Au fait, y a-t-il des structures qui financent le dev du c++ en tant que langage ?

Je retiens que le c++, dites moi si je me plante, est utilisé généralement (je parle des choix qui sont faits actuellement pas des choix qui devraient être faits. wink  )pour le calcul scientifique, pour les jeux vidéos, pour les OS, pour l'audio et la vidéo. Voyez vous d'autres types de prog ? edit : peut-être la prog industrielle d'optimisation des surfaces par exemple. Qu'en est-il pour les SIG ? edit2 : qgis c++

Java serait utilisé pour les apllis de gestion full web, ou les applis compliquées orientées web (calcul distribué par exemple, au fait haleth tu es d'accord que le calcul distribué c'est un peu différent du calcul parallèle qui peut être lui sur une seule machine ?). edit : et aussi les applis sur mobiles puisque orientée web, le gros du code étant stocké sur serveur en java

J'ai un peu du mal à me représenter les différents type de grand programme. Par exemple en IA, le langage utilisé serait plutôt le c++ je suppose.

Dernière modification par GangsterAutorisé (Le 20/07/2013, à 15:34)


Quel con a dit y a rien qui se passe ?

Chanson d'Alain Leprest

Hors ligne

#11 Le 20/07/2013, à 10:52

Haleth

Re : java vs c++

Tu as bien compris, je pense cool

La java implique l'utilisation d'un soft que tu ne maîtrises pas, chaque client possède sa propre version
Difficile de garantir quoi que ce soit avec un tel modèle

Quant à des boites qui financerait le C++, je n'en connais pas
Ne pas oublier que le C++ est un langage, le java est une bibliothèque
La dernière mise à jour du C++, en 2011, remplace le C++ de 1999

Java serait utilisé pour les apllis de gestion full web, ou les applis compliquées orientées web (calcul distribué par exemple, au fait haleth tu es d'accord que le calcul distribué c'est un peu différent du calcul parallèle qui peut être lui sur une seule machine ?) .

Côté client, faut pas utiliser de java, le JS & CSS est (beaucoup) mieux, malgré les lacunes des deux outils
Côté serveur, tu fait ce que tu veux, en java, en php, en C, en shell, en python .. qu'importe ? Ca ne change que la taille de la machine qui fait tourner l'application

NB: oui, distribué n'est pas parallèle, mais c'est bien proche
Les deux lignes ne sont qu'un exemple pour venir briser le mythe du "en C/C++, faut 500 lignes pour faire le moindre truc"


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#12 Le 20/07/2013, à 14:39

telliam

Re : java vs c++

Java une bibliotheque??? tu as fumé?? smile
non c'est un langage  et un environnement d'execution avant tout, ensuite une des forces vient de ses libs.

pour choisir le langage a utiliser, il faut d'abord regarder les contraintes que tu as, (multiplateforme ou non, possibilité d'install de client ou pas ...), regarder l'ensemble des libs existants sur pour les langages. Et ensuite tu fais ton choix.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#13 Le 20/07/2013, à 15:44

GangsterAutorisé

Re : java vs c++

@telliam

ok merci telliam.
C'est pas toujours simple de regarder l'ensemble des libs d'un langage, mais je comprend l'idée. Si comme tu le dis les libs en java sont plus puissantes c'est un point positif pour java. (tu as des exemples de libs que tu estimes performantes en java ?)  On ne va pas dev en asm parceque ce serait ça la vraie prog, donc je reste partagé même si je comprends mieux pourquoi on dit toujours de choisir son langage en fonction du prog.
Un prog vite fait avec une durée de vie courte peut parfois correspondre au besoin. Et en mm temps la course à la productivité ça peut dériver très vite.


Quel con a dit y a rien qui se passe ?

Chanson d'Alain Leprest

Hors ligne

#14 Le 20/07/2013, à 15:46

Haleth

Re : java vs c++

Java 7, 75% des changements, ajouts, améliorations et suppressions concernent la lib
C++11, 95% concernent le langage

C'est ce que je veux dire en écrivant "java est une lib"


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#15 Le 20/07/2013, à 23:32

Aspirine6

Re : java vs c++

C'est l'une des raisons: en java, tu peux coder comme un porc, tu sais que de toute facon, ton programme ne sera pas de qualité
En C et C++, le dev a besoin de talents. Dans certains milieu, on n'aime pas les gens qui ont (ou ont besoin) de talents.
Dans les milieux étudiants, y'a aussi un bourrage de crâne, qui prend forme avec les points suivants:
- cette techno est incroyable et possède des qualités dingues et unique (ici: java est multi-plateforme alors que C++ non, java compile vite alors que C++ non, en C++ faut tout recompiler à chaque fois alors qu'en java non ...)
- mépris pour les autres techno (ici: le C++ ? Pouah, faut vivre avec ton temps, c'est old-school; le C++, c'était cool avant, mais maintenant on a java; Nah mais java, c'est mieux, regarde c'est fait par une boite comme ORACLE alors que C++ c'est fait par des gueux dans un garage !)

Le problème, et c'est ce qui me fait peur, c'est que beaucoup d'étudiants (en master par exemple) boivent ces conneries comme du petit lait. Il seront chefs de projets dans moins de 10ans, et imposeront ce genre de conneries massivement (ie: encore plus qu'aujourd'hui). De la corruption de l'éducation vient la corruption de la société ..

Tout à fait d'accord !
Des gueux dans un garage lol

Des projets en C/C++ qui sont hypnotique, j'en ai plein.
Genre ca: http://www.kevinbeason.com/smallpt/

Voila un projet minuscule, sans lib, qui fait des trucs incroyables.

Ouah alors là je suis bluffé !!!
Si tu en as d'autres des comme ça je veux bien voir oui !
J'en reviens toujours pas yikes

Mais les pointeurs, en C ou n'importe quel autre langage de programmation, t'apportent un certains plus.

Et maîtriser les pointeurs t'apporte un meilleur code et une meilleure exécution de de ton code.

Mais je suis d'accord mais les étudiants avaient tous tendance à me dire "oh oui tu sais avec les machines de maintenant c'est pas pour quelques octets que te feront gagné les pointeurs qu'on va s’embêter" --> je cautionne pas moi, je m'y connais pas assez pour dire si c'est vrai ou pas !

Très instructif ce débat big_smile

Hors ligne

#16 Le 21/07/2013, à 09:06

telliam

Re : java vs c++

Haleth a écrit :

Java 7, 75% des changements, ajouts, améliorations et suppressions concernent la lib
C++11, 95% concernent le langage

C'est ce que je veux dire en écrivant "java est une lib"

Oui mais la tu compares des choux et des carottes, tu compares 2 évolutions de 2 langages différents sans tenir compte de la roadmap des langages: c'est pas parce que sur cette évolution ils se sont concentrés sur un aspect que sur l'évolution suivante ils vont pas s'attaquer a autre chose. En plus c++11 correspond à une évolution de normes pas une livraison d'un binaire.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#17 Le 21/07/2013, à 09:37

Haleth

Re : java vs c++

Tien, en vla un autre:
- Le programme
- Donnée 1
- Donnée 2

Pour compiler:

gcc -ansi -o main banks.c -DIT=XK_Page_Up -DDT=XK_Page_Down -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right -DCS=XK_Return -Ddt=0.02 -lm -lX11

Pour executer:

cat pyramids.sc river.sc | ./main

Et hop, un simulateur de vol en 60 lignes de C

En plus c++11 correspond à une évolution de normes pas une livraison d'un binaire.

Bawé, c'est bien sque j'dit:
C++ = on change le langage
java = j'tenvoye le nouveau .so
Un peu simpliste m'enfin

(mais oui, java est un langage évidement, même si il n'est rien sans la lib qui va avec)

Dernière modification par Haleth (Le 21/07/2013, à 09:39)


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#18 Le 21/07/2013, à 14:37

GangsterAutorisé

Re : java vs c++

Bon je reviens avec des stats sur le nb de progs libres par langage (source sourceforge) :

java aurait 25% d'avance sur c++, tout type de prog confondus. Java surpasse de 60% (plus du double) C++ pour les logiciels de dev. Il n'y a qu'un domaine où c++ est meilleur c'est la vidéo et l'audio, la 3d. Même dans la prog scientifique java est devant. A noter que pour la sécurité et l'administration système c'est le C qui est devant.

Oui mais Oracle, donc voilà quoi.

Dernière modification par GangsterAutorisé (Le 21/07/2013, à 14:39)


Quel con a dit y a rien qui se passe ?

Chanson d'Alain Leprest

Hors ligne

#19 Le 21/07/2013, à 14:50

Korak

Re : java vs c++

Korak a écrit :

(ça fait quinze ans que je ne programme plus et les choses ont bien changés).

Mais il me semble qu'il y a une chose qui n'a pas changé: choisi le langage de programmation en fonction de ce que tu veux faire et en fonction des performances de ce langage.


OS: Ubuntu 22.04 64 bits + Windows 11 64 bits en dualboot (BIOS UEFI, Secure Boot activé et table de partitions GPT)
PC portable HP 17-CP0308NF   Processeur: AMD Ryzen 7 5700U avec carte graphique AMD Lucienne intégrée au processeur.   Mémoire vive: 16 Go RAM
Quand vous ne trouvez pas la solution à un problème, cherchez des pistes menant à la solution !

Hors ligne

#20 Le 21/07/2013, à 22:24

Aspirine6

Re : java vs c++

Ah oui pas mal le simulateur de vol !!!
Comme quoi avec pas grand chose ... même si le code est un peu illisible ^^
Pour moi en tout cas ....
Merci du tuyaux, big_smile

Hors ligne

#21 Le 22/07/2013, à 00:54

telliam

Re : java vs c++

Sauf que le simulateur c'est du c pas du c++


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#22 Le 24/07/2013, à 13:17

Luc Hermitte

Re : java vs c++

GangsterAutorisé a écrit :

Bon je reviens avec des stats sur le nb de progs libres par langage (source sourceforge) :
java aurait 25% d'avance sur c++, tout type de prog confondus. Java surpasse de 60% (plus du double) C++ pour les logiciels de dev. Il n'y a qu'un domaine où c++ est meilleur c'est la vidéo et l'audio, la 3d. Même dans la prog scientifique java est devant. A noter que pour la sécurité et l'administration système c'est le C qui est devant.

Les sources des sondages & cie ... Tiens il y a ohloh aussi -> https://www.ohloh.net/languages/compare … mit=Update
Je ne vois pas 25% d'écart. Je ne sais pas qu'elles autres forges SF a intégré dans ses calculs. Tandis que ohloh/Black Duck vit du référencement de projets libres toute forge confondue. Je les soupçonne un chouilla plus proches de la réalité des projets ouverts.

Sinon, dans un de ses premiers posts Haleth a dit un truc que je soupçonne être passé à la trappe chez la majorité: dans un bon code C++ (i.e., maintenable, robuste, et qui fasse son taf'), les pointeurs (nus/bruts), on les évite comme la peste. La gestion manuelle des ressources, ça ne scale pas du tout en C++ (à cause des exceptions). Et tant que les préjugés: "C++ ? Donc on gère la mémoire à la main et on a peur des pointeurs" perdureront, on ne sera pas sortis de l'auberge. Quelques liens:
- http://lazarenko.me/2013/03/03/automati … anagement/
- http://alexandre-laurent.developpez.com … xceptions/ (à la fin, deux codes: celui correct en C sur la gauche et le correct (qui fait la même chose) en C++ sur la gauche ; notez l'absence de pointeurs nus et autres delete, et pourtant ce code est juste et robuste)

Sur un autre sujet, celui des parts de marché et des applications, cela fait plusieurs fois que je vois passer des posts de gens qui conseillent le C++ pour le développement sur mobiles (car ca serait plus facilement portable que le Java, pour une fois...).
- http://www.framehawk.com/the-return-of-c/
- http://blog.algolia.com/need-performanc … use-c-cpp/

Dernière modification par Luc Hermitte (Le 24/07/2013, à 15:23)

Hors ligne

#23 Le 24/07/2013, à 13:52

pires57

Re : java vs c++

Pour moi c'est simple:
C / C++ tu es libre, c'est transparent.
Java / C# tu n'as aucune transparence.

Si tu veut une comparaison, java et C# c'est une boite noir, tu ne vois pas ce qu'il y a derrière alors que C/C++ c'est une boite en verre dans laquelle tu peut voir tout ce qu'il y a.


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#24 Le 02/08/2013, à 12:25

kboo

Re : java vs c++

pires57:
Ce n'est pas complètement vrai, à l'origine les compilateurs C/C++ étaient des boîtes noires avant les compilateurs libres, ensuite en C/C++ on peut être amené à utiliser des librairies compilées (sans code source) ... comme en Java.... donc Java ou C++ c'est un peu pareil de ce point de vue là. En revanche après avoir lancé le même algo (calcul de nombres premiers), je vous laisse faire le test mais un programme en C++ reste plus rapide.

C++
grande rapidité (pas autant que le c et asm) et proche système ( le code peut être plus délicat à coder, donc ce n'est pas un lagage pour débutant complet ), Libre (merci G++ !)

Java
rapidité correcte, et grande communauté (beaucoup de doc... aide..), dépendance en vers Oracle (OpenJDK est loin d'être aussi performant que celui d'Oracle: essayer de lancer eclipse
avec..)

Moralité:
Tu as besoin de
Beaucoup de performance code en C,
Bonne performance et programmation objet, code en C++
Performance correcte et programmation objet en n'ayant pas peur de tout perdre (cf openoffice), code en Java

Hors ligne

#25 Le 05/08/2013, à 09:21

Luc Hermitte

Re : java vs c++

kboo a écrit :

C++
grande rapidité (pas autant que le c et asm)

C'est faux. Le C++ est au moins aussi performant que le C.
Si un truc propre au C est plus rapide que l'équivalent C++ (ex typique les flux VS stdio), il suffit de l'utiliser. Quand une chose propre au C++ est plus rapide  (p.ex. std::sort vs qsort ; ou propagation (correcte) des problèmes en situation nominale via exception VS un if toute les deux lignes), on l'utilise.
Les compilos C d'aujourd'hui sont des compilos C++. Ce ne sont pas des choses différentes.

Hors ligne