IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

[Débat] C++ vs Java


Sujet :

Débats sur le développement - Le Best Of

  1. #1881
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    Citation Envoyé par Lolilolight Voir le message
    Contrairement au c++, VB.NET et JAVA permettent de faire du développement internet.
    Rien empêche de faire du développement Web ou internet, avec du C++ ou avec n'importe quel autre langage d'ailleurs...
    Si votre application utilise la majeure partie des services de JavaEE ce n'est peut-être pas une bonne idée de se lancer dans un portage en C++, mais le développement Web est aussi utilisé pour réaliser des interfaces homme-machine pour des routeurs par exemple.

    Citation Envoyé par adiGuba Voir le message
    Oui c'est tout récent (Java 8).
    Mouais enfin c'est un peu tiré par les cheveux quand même. Ces deux langages sont quand même très éloigné.
    A la rigueur tu m'aurais dit C# qui a une approche assez similaire (même si là encore il y a également beaucoup de différence)
    C# et VB.NET sont aussi différent l'un de l'autre qu'une panthère l'est d'un jaguar... Mêmes paradigmes, même bibliothèque de classes, même machine virtuelle...

  2. #1882
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 060
    Points
    32 060
    Par défaut
    Citation Envoyé par ptah35 Voir le message
    (.../...)C# et VB.NET sont aussi différent l'un de l'autre qu'une panthère l'est d'un jaguar... Mêmes paradigmes, même bibliothèque de classes, même machine virtuelle...
    oui et non

    oui à 100% sur l'aspect technique. Ce sont des langages équivalents en termes de capacilité technique.

    non, clairement, sur le style et la syntaxe. Chacun a sa préférence, mais il y a des gens pour qui l'un est insupportable, et l'autre absolument génial. Certains qui vont trouver l'un inqualifiable, et l'autre parfait. En fait, c'est juste une question d'habitude. Mais quand les habitudes sont bien ancrées, difficille de passer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Blabla Then
        Blibli
    End If
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(Blabla){
        Blibli
    }
    C'est une autre manière d'écrire, mais surtout de lire. Notre cerveau est branché cognitivement sur une manière spécifique de coder(moi sur la première, la plupart des gens qui ont fait des études d'info sur la seconde), et a beaucoup de mal à lire correctement l'autre.

    Alors que, techniquement, tu as raison, c'est 100% équivalent.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  3. #1883
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    sur le style et la syntaxe. Chacun a sa préférence, mais il y a des gens pour qui l'un est insupportable, et l'autre absolument génial. Certains qui vont trouver l'un inqualifiable, et l'autre parfait. En fait, c'est juste une question d'habitude. Mais quand les habitudes sont bien ancrées, difficille de passer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Blabla Then
        Blibli
    End If
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(Blabla){
        Blibli
    }
    Je me souviens que lorsque j'étais étudiant, je détestais PASCAL pour la même raison, je ne jurais que par le C . Mais après une vingtaine d'années à travailler avec différents langages non seulement impératifs, mais également fonctionnels, je ne me soucie plus de ce genre de détails... un bloc est un bloc qu'il s'écrive entre accolades ou entre un begin et un end ou même par la simple indentation...

  4. #1884
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 432
    Points : 593
    Points
    593
    Par défaut
    L'un est à typage dynamique l'autre statique, ça fait un grosse différence de paradigme.

  5. #1885
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    Citation Envoyé par Ubiquité Voir le message
    L'un est à typage dynamique l'autre statique, ça fait un grosse différence de paradigme.
    J'ai oublié ce qu'il en était pour Visual Basic avant la version 3, mais depuis cette version VB n'a jamais été ni strictement à typage statique ni strictement à typage dynamique (mais assurément faiblement typé). Avant VB.NET, il y avait un type "Variant" qui était le type par défaut d'une variable et qui pouvait contenir une valeur de n'import quel type, ainsi qu'un type "Object" qui représentait une référence à un objet de n'importe quel type (en réalité, il s'agissait d'une référence à un objet COM qui implémente l'interface IDispatch). Avec VB.NET, le langage changé, le type Variant n'avait plus de sens et a été abandonné. Le type Object a été conservé et représente une référence vers n'importe quel type de valeur (type simple via le boxing ou référence à un objet).

    Via le type Variant et Object avec VB jusqu'à la version 6 et via le type Object en VB.NET, Visual Basic supporte effectivement une forme de typage dynamique, mais .NET est avant tout statiquement typé. Depuis la version 4.0, C# supporte également le typage dynamique avec le mot clé "dynamic" de manière à permettre l'interopérabilité avec COM et le Dynamic Langage Runtime.

    Donc outre le fait que je ne pense pas que typage dynamique ou statique soit une grosse différence de paradigme en général, depuis 2010, cette différence n'existe plus entre VB.NET et C#.

  6. #1886
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur telecom
    Inscrit en
    Juillet 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur telecom
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 1
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par aliasjcdenton Voir le message
    Quels sont les avantages et les inconvénients respectifs majeurs des langages de programmation C++ et Java l'un vis-à-vis de l'autre ?

    Java plus utilisé qu C++

  7. #1887
    Membre éclairé Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Points : 703
    Points
    703
    Par défaut
    Citation Envoyé par aektiareti Voir le message
    Java plus utilisé qu C++
    C'est quoi cet argument bidon ? ...
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

  8. #1888
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    Hormis l'aspect purement utilisateur, ne faut-il pas aussi penser aux méthodes d'analyse ? je pense à Hood, Strood, Grady Booch ?
    Le "implement" de java n'est-il pas un contournement de classes abstraites que l'on pourrait hériter si on accepte l'héritage multiple ?
    L'héritage multiple, par ailleurs, n'est-il pas une vision plus réelle du monde ?

  9. #1889
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par aristide_b Voir le message
    Hormis l'aspect purement utilisateur, ne faut-il pas aussi penser aux méthodes d'analyse ? je pense à Hood, Strood, Grady Booch ?
    Le "implement" de java n'est-il pas un contournement de classes abstraites que l'on pourrait hériter si on accepte l'héritage multiple ?
    L'héritage multiple, par ailleurs, n'est-il pas une vision plus réelle du monde ?
    Je ne suis pas très fan de la dichotomie implement/inherit et préfère importe du code/sous-type pour être substituable à que Java rend mal à mon goût.

    Cependant, je ne suis pas d'accord quand tu dis que l'héritage multiple serait une vision plus réelle du monde. Quand on commence à vouloir dire que pingouins et manchots sont des oiseaux, mais que les manchots ne volent pas, etc. On voit très vite les limites de l'approche OO. Même avec héritage multiple. Ce n'est pas pour rien que l'on a vu l'émergence d'approches basées sur des traits. Un des représentants qui a le vent en poupe en ce moment est l'Entity - Component - System.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #1890
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par aristide_b Voir le message
    Hormis l'aspect purement utilisateur, ne faut-il pas aussi penser aux méthodes d'analyse ? je pense à Hood, Strood, Grady Booch ?
    Quel rapport avec C++ et Java ?

    Citation Envoyé par aristide_b Voir le message
    Le "implement" de java n'est-il pas un contournement de classes abstraites que l'on pourrait hériter si on accepte l'héritage multiple ?
    L'absence d'héritage multiple évite tout problème lié à la recherche de l'implémentation d'une méthode. Elle est soit présente sur la classe elle-même, soit sur la classe mère. Aucun conflit possible.
    C'est un choix de beaucoup de langage. Idem pour la surcharge, elle est supportée par Java, mais beaucoup d'autres langages ne l'a supporte pas car cela amène souvent beaucoup de problèmes.

    Citation Envoyé par aristide_b Voir le message
    L'héritage multiple, par ailleurs, n'est-il pas une vision plus réelle du monde ?
    Premièrement, le principe de l'informatique c'est la modélisation, c'est-à-dire l'abstraction du monde réel. On abstrait déjà au niveau conceptuel alors dans le code, c'est encore différent.

    Deuxièmement, qu'est-ce que l'héritage de l'objet dans le monde réel ? La définition la plus communément admise est "est un". Hors le principe des interface (virtuelle pure en C++) respecte ce principe. Donc l'héritage multiple de classes (non-virtuellement pur) n'est pas plus proche du monde réel.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  11. #1891
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Citation Envoyé par Logan Mauzaize Voir le message
    Deuxièmement, qu'est-ce que l'héritage de l'objet dans le monde réel ? La définition la plus communément admise est "est un". Hors le principe des interface (virtuelle pure en C++) respecte ce principe. Donc l'héritage multiple de classes (non-virtuellement pur) n'est pas plus proche du monde réel.
    Je crois en fait que cette définition est surtout un abus de langage, un raccourci un peu trop vite utilisé.

    Car, si on modifiait cette définition afin de respecter l'esprit du LSP (qui est le principe de base de l'héritage publique), pour qu'elle corresponde à "est substituable à un" voir à "peut être utilisé comme un" (ce sera moins ambigu que terme substituable), on se rend compte que, dans la vie de tous les jours, une voiture peut -- effectivement -- être utilisée comme un véhicule et qu'un manchot ne peut pas être considéré comme un oiseau (bien qu'étant un ovipare ) car il lui manque une caractéristique essentielle pour être réellement un oiseau : la capacité de voler
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  12. #1892
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Je crois en fait que cette définition est surtout un abus de langage, un raccourci un peu trop vite utilisé.

    Car, si on modifiait cette définition afin de respecter l'esprit du LSP (qui est le principe de base de l'héritage publique), pour qu'elle corresponde à "est substituable à un" voir à "peut être utilisé comme un" (ce sera moins ambigu que terme substituable), on se rend compte que, dans la vie de tous les jours, une voiture peut -- effectivement -- être utilisée comme un véhicule et qu'un manchot ne peut pas être considéré comme un oiseau (bien qu'étant un ovipare ) car il lui manque une caractéristique essentielle pour être réellement un oiseau : la capacité de voler
    A mon avis, l'abus c'est surtout de faire trop de parallèle entre le monde réel et un système informatique.

    Le manchot (type), comme la poule et d'autres, sont deux oiseaux n'ayant pas la capacité de voler, quelque soit l'individu (instance). La capacité de voler (méthode / trait) n'est donc pas une caractéristique des oiseaux (membre). En revanche, "avoir la capacité de voler" (booléen) en est une mais c'est aussi le cas de tout le règne animale.
    Par ailleurs tout animal ayant la capacité de voler peut la perdre temporairement ou définitivement. Il convient donc surtout de bien abstraire et borner le monde réel pour modéliser le système étudié.

    Il est donc inutile de trop philosopher. Cette vue de l'esprit est aussi bien implémentée en Java qu'en C++. Je me souviens d'ailleurs très bien d'une excellente remarque d'un de mes enseignants de l'IUT : "en C++, on confond toujours composition et héritage à cause de l'héritage multiple". Les traits ont cet avantage d'apporter la composition tel qu'on l'utilise par héritage.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  13. #1893
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 359
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 359
    Points : 20 374
    Points
    20 374
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    non, clairement, sur le style et la syntaxe. Chacun a sa préférence, mais il y a des gens pour qui l'un est insupportable, et l'autre absolument génial. Certains qui vont trouver l'un inqualifiable, et l'autre parfait. En fait, c'est juste une question d'habitude. Mais quand les habitudes sont bien ancrées, difficille de passer de [CODE]If Blabla Then
    ok d'accord tu as raison mais la syntaxe d'un langage de programmation c'est pas ça qui fait la réussite d'un projet informatique, pas d'accord ?
    La réussite d'un projet informatique c'est un projet qui tourne sans bugs et bien construit...

  14. #1894
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 060
    Points
    32 060
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    ok d'accord tu as raison mais la syntaxe d'un langage de programmation c'est pas ça qui fait la réussite d'un projet informatique, pas d'accord ?
    La réussite d'un projet informatique c'est un projet qui tourne sans bugs et bien construit...
    Oui. Mais c'est une œuvre de l'esprit. Et pas qu'au sens légal. Les process cognitifs humains sont souvent ancrés profondément, et tu peux avoir un différentiel de productivité colossal pour des bêtises de ce genre. Quand quelqu'un qui a toujours fait, dans sa vie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (compteur = 0; compteur < 50; compteur++)
    {
        Console.WriteLine("Bonjour C# " + compteur);
    }
    et qu'il doit faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For compteur = 0 to 49 Step 1
        Console.WriteLine("Bonjour VB.NET " & compteur)
    Next compteur
    il sera déstabilisé, et moins productif, et fera plus d'erreurs. Si on va plus loin et qu'on essaye de lui infliger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PERFORM VARYING COMPTEUR FROM 0 BY 1 UNTIL COMPTEUR > 49
        MOVE COMPTEUR TO COMPTEUR-FORMAT-DISPLAY
        DISPLAY "Bonjour COBOL " COMPTEUR-FORMAT-DISPLAY
    END-PERFORM
    il va hurler, se débattre, crier à la torture, que COBOL c'est pas un langage civilisé, qu'écrire "1{" au lieu de "10" si on ne passe pas par une variable intermédiaire, c'est de la débilité, etc..... Et il ne va pas être productif. Alors que quand on le connait bien, COBOL est un langage très productif(dans sa niche, et seulement dans sa niche, dont il ne sort quasiment plus, et c'est une bonne chose). Mais l'informaticien diplômé, baigné de C#, de JAVA, voire de langages fonctionnels, va se révolter contre ce langage archaïque qui n'a rien de ses jouets modernes. C'est pour ça qu'on continue de former des non-informaticiens au COBOL, alors que pas mal de diplômés en informatique sont au chômage. Et que ça requiert pourtant les mêmes qualités.


    En bref, pour revenir à ta question, les deux sont liés. Ce qui compte, c'est bien que le projet marche bien, sans bug, avec des performances acceptables, soit maintenable, etc... Mais la syntaxe a un effet important sur tout ça, en fonction des gens qu'on a a disposition. Certains sont plus malléables(j'arrive à m'en sortir avec l'objet, même si je n'aimerais jamais ça), mais passer d'un système à un autre identique, mais avec une syntaxe différente, ça n'a rien d'anodin.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  15. #1895
    En attente de confirmation mail
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 24
    Points : 40
    Points
    40
    Par défaut
    Java a été tiré du langage C/C++ non ? Donc c'est une façon de dire que C++ est l’ancêtre de Java...

    Bref a mon avis Java et C++ sont tout les deux utiles, chaque un pour une tache spécifique

  16. #1896
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2015
    Messages : 26
    Points : 35
    Points
    35
    Par défaut
    Pour ma part, ce qui me manque le plus en Java, c'est les sémantiques de valeurs (multiplier des matrices à destination d'OpenGL en Java, c'est monstrueusement lourd, par rapport au C++ où n'importe quelle bibli implémente une surcharge d'opérateurs) et, à l'inverse, le passage de primitive par référence. Devoir écrire en java "int[] VBO = new int[1];" pour simuler un pointeur C a été pour moi une insulte au bon sens, je ne m'en suis pas encore remis
    Sinon, j'ai peut-être pas assez été en profondeur avec Java, mais depuis C++11/14, je trouve que la manipulation de fonctions (std::function, lambdas, etc) est un vrai régal à utiliser.

    Je dirais que les seules choses que j'apprécie en Java, ce sont les IDEs d'excellente qualité (en C++ je travaille principalement avec Vim + make, donc accéder à la doc d'une fonction en un clic c'est pas aussi rapide qu'avec IntelliJ ou Eclipse ^^), encore que j'ai pas testé en profondeur VC et QtCreator, qui m'ont l'air d'être presque aussi bien en termes de refactoring.
    Enfin, en Java, j'apprécie le style "homogène" du langage (quand je vois les trucs "complexes" du C++ comme les rvalues reference, je me dis que le Java est beaucoup plus facile à appréhender... même si l'absence de ces concepts est pour moi une preuve que le Java est moins efficace) et la librairie standard cohérente et polyvalente.

  17. #1897
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burundi

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 6
    Points
    6
    Par défaut Un jugement influencé
    J'ai intitulé ' Un jugement influencé' du fait de la formatio acquise dans le milieu où je vis , en l’occurrence en RDCongo un pays souvent manquant dans la liste des pays de beaucoup de programmes et applications quand il s'agit de sélectionner un pays. A vrai dire la formation suivie relègue le C++ à un langage sans finalité quelconque, et dans certains parcours informatiques le C++ ne se limite qu'à la POO du C et en l'introduction de la bibliothèque canio, en revanche Java est un langage apprécié par les professeurs et enseignants ce qui fait à ce que dans mon environnement le C++ est un langage comparable à l'assembleur.
    Heureusement, grace à l'outil internet, un luxe chez nous, j'ai pu apprendre par moi-meme que le C++ est un langage très utilisé dans le monde de la programmation, d'où l'idée de trouver un moyen non appris à la fac pour aboutir à des programmes non séquentiels et ne faisant pas que des opérations basiques. C'est là où je fis connaissance de Qt qui est pour moi une porte qui m'a permis à voir au delà de java.
    En somme, le C++ est un langage peu vulgarisé chez nous que le java, mais il très puissant que ce dernier.

  18. #1898
    Membre à l'essai Avatar de JPRIVES
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 10
    Points
    10
    Par défaut Qu'est ce qui est important ?
    J'ai développé dans beaucoup de langages ( C, C++, JAVA, COBOL, VB, Delphi, Windev ...) et je suis arrivé à une seule conclusion.
    L'important c'est ce qui fonctionne avec un minimum de temps de programmation en permettant de faire gagner du temps aux personnes qui utilisent vos logiciels quel que soit le langage et la méthode programmation.

  19. #1899
    Inactif  
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2017
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Décembre 2017
    Messages : 155
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par goethe Voir le message
    C++ beaucoup plus rapide que java.
    Les paramètres tableaux en Java sont plus optimizables sur que les pointeurs en C++.

    Si une fonction prend en référence deux tableaux x et y (deux pointeurs sur les éléments en C ou en C++) :

    en Java

    deux références de tableaux comme paramètres d'une fonction sont soit
    - deux références sur le même tableau
    - deux références sur deux tableaux disjoints : tout élément d'un tableau ne peut pas être un élément de l'autre

    Comme en géométrie euclidienne deux droites parallèles sont
    - la même droite
    - ou disjointes

    Attention : les éléments différents peuvent recevoir des valeurs égales. Un tableau de références peut avoir tous les éléments contenant une référence égale; donc tous les éléments se référent à un même objet. Même changer la valeur d'un élément (la référence, pas le référant) n'affecte pas la valeur d'un autre.

    Donc un compilateur peut insérer un test x!=y et ensuite supposer que les accès aux tableaux sont indépendants : une modification de x[i] ne peut pas affecter un accès à y[j] quels que soient les valeurs de i et j (il faut aussi gérer le cas x==y évidemment)

    Sans le test x!=y, le compilateur sait que x[i] et y[i+1] ne se réfèrent pas au même élément.

    en C++

    Deux pointeurs à l'intérieurs de tableaux x,y peuvent
    - être égaux : x==y

    - être différents d'une certaine valeur d :
    y-x == d et x+d == y

    - être différents sans aucune relation entre eux (pointant dans deux tableaux disjoints)

    Vérifier x!=y n'implique pas que les tableaux sont disjoints.

    x[i] et y[i+1] peuvent se référer au même objet.

  20. #1900
    Inactif  
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2017
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Décembre 2017
    Messages : 155
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par iolco51 Voir le message
    - JAva ne permet pas l'héritage multiple, en revanche son système d'interfaces est très souple.
    Les "interfaces" de Java sont des classes abstraites arbitrairement limitées.

    C'est un système qui est tout sauf souple.

Discussions similaires

  1. [Débat] Technologie .NET vs JAVA
    Par neo.51 dans le forum Débats sur le développement - Le Best Of
    Réponses: 1047
    Dernier message: 14/01/2019, 16h15
  2. [Débat] .NET vs JAVA/J2EE
    Par tssi555 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/12/2008, 07h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo