Partage
  • Partager sur Facebook
  • Partager sur Twitter

petite remarque

Sujet résolu
    6 mai 2008 à 6:33:22

    bonjours , je ne connais strictement rien en java , par contre je m'y connais en c++ . et en lisant les sujets java je me rend compte que y'a pas beaucoup de difference entre les deux langages , c'est "presque" la meme chose .
    j'ai tord ? :-°
    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2008 à 7:29:47

      Le Java s'inspire beaucoup du C++ avec des notions en moins :
      • pointeurs
      • références
      • surcharge des opérateurs
      • héritage multiple...
      • Partager sur Facebook
      • Partager sur Twitter
        6 mai 2008 à 10:57:35

        Salut,

        Citation : damdams75

        Le Java s'inspire beaucoup du C++ avec des notions en moins :

        * pointeurs
        * références
        * surcharge des opérateurs
        * héritage multiple...



        Eee.... Il y a bien des références en Java non ?
        Le Objets sont gérés par des références. A moins que je me trompe...
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          6 mai 2008 à 13:27:15

          Salut,

          comme souvent ca ne reste qu'une apparence. Dans à peu pres tous les langages un branchement conditionnel c'est un if, une declaration de class, c'est un class, et un array, un [], tout cela vient d'une base commune et admise (créé un langage ou le "if" serait le keyword "strawberry", ce ne serait pas bien malin =p). Mais la comparaison s'arrete la, au dela de la grammaire, ce sont deux langages totalement differents, aussi bien au niveau du design : presence d'interface (sorte de class abstraite enforcée), heritage simple (ca change enormement de chose par rapport au cpp), que du fonctionnel : presence d'un garbage collector (donc plus de gestion explicite de la durée de vie des variables), pas de pointeurs en Java etc ...

          Bref, si on devait comparer Java (et toute la plate-forme qui va avec) à une autre technologie, son plus proche cousin serait .Net (langage managé, gros framework de developpement etc ...)
          • Partager sur Facebook
          • Partager sur Twitter
            6 mai 2008 à 16:13:57

            t'as un manque cruel de templates en java, meme si les generiques sont la pour faire semblant de relever le niveau...

            tu ne peux pas passer une constante a un generique, contrairement aux templates, et c'est tres gennant...
            • Partager sur Facebook
            • Partager sur Twitter
              6 mai 2008 à 18:29:50

              Tu as raison en effet mais en java les références sont cachés, tu n'as pas besoin de les gérer ;).
              • Partager sur Facebook
              • Partager sur Twitter
                6 mai 2008 à 18:33:06

                OK. C'est juste que tu sous entendais que les références n'existaient pas.
                • Partager sur Facebook
                • Partager sur Twitter
                  6 mai 2008 à 22:41:52

                  oui mais le probleme pourquoi creer un langage comme le java ou le C# alors que le C++ est plus complet et plus rapide ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    6 mai 2008 à 22:47:59

                    Disons que la Java est entièrement orienté Objet contrairement au C++.
                    A la base, le but de Sun, si je me souviens bien, était de simplifier le C++.

                    De plus, Java peut être utilisé avec le Web contrairement au C++.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 mai 2008 à 22:53:26

                      je ne vois pas en quoi java est plus OO que Cpp en fait...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        6 mai 2008 à 22:55:26

                        Et bien en C++, tu es libre de programmer de façon impérative ou Objet.
                        En Java tu n'as pas le choix.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          6 mai 2008 à 23:01:31

                          en java, tu peux tout mettre dans la meme classe, et tout en static, utilisant alors la classe comme un namespace. Ca te fait alors de la programmation imperative, de la meme facon qu'en Cpp
                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 mai 2008 à 23:07:55

                            Certes, mais tu est quand mêmes obligé de créer une classe.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 mai 2008 à 23:26:46

                              et ? une classe c'est de l'objet ? ou c'est un conteneur d'objets ?

                              en perl et javascript, t'as pas de classes, mais t'as des objets...
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                6 mai 2008 à 23:27:05

                                Citation : elmcherqui

                                oui mais le probleme pourquoi creer un langage comme le java ou le C# alors que le C++ est plus complet et plus rapide ?



                                Heu, plus complet ? Surement pas, C++ et consorts sont des langages d'une pauvreté extreme en terme de framework standard (pas de thread, pas de GUI integré, pas de lib reseaux, je ne sais meme pas si on peut parser du XML). Par contre, le C++ reste un langage extremement puissant (comme dit au dessus, metaprogrammer en .Net ou en Java, ce n'est pas vraiment possible, vu que les generics ne sont qu'un template ultra-light).

                                Bref, C++ est complet une fois que tu as ajouté Qt, deux trois machins de Boost, un petit SQLite pour faire bien etc ... ca commence à faire niveau dependance. =p

                                Maintenant, un des objectifs du Java ou de la plateforme .Net, c'est de faire du RAD. En gros, si ca compile, ca marchera dans 95% des cas (je ne parle pas de logique applicative, mais ca ne plantera surement pas), en C++, si ca peut compiler mais planter de tous les cotés (overflow, toute la problematique de la gestion de la memoire etc ...). Ces plateformes disposent d'outils, de wizards et autre generateurs de code qui permettent de faire tres rapidement le coloriage (genre le layout d'une ui), les accès BDD.

                                Bref, sans doute que le C++ est un langage tres rapide, mais la encore, est ce que cette rapidité est un argument pertinent quand tu fais du dev d'utilitaires ? L'argument de cette performance ne devient reellement pertinente que lorsqu'on parle d'applis extremement demandeuses (le meilleur exemple les jeux et plus largement tout ce qui touche à l'imagerie).
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  6 mai 2008 à 23:30:57

                                  @coucou747 : Vu comme ça ok. Mais bon c'est vraiment pas fait pour... Et c'est pas dans la philosophie de Java de faire de l'impératif.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    7 mai 2008 à 1:42:07

                                    exusez mon ignorance mais sa veut dire quoi l'imperatif ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      7 mai 2008 à 2:54:16

                                      c'est une logique quand tu programmes, une facon de penser

                                      ton programme doit s'executer suivant un fil, en traitant divers structures en memoire.

                                      cherche sur wikipedia, programmation objet, programmation fonctionelle, logique, declarative et imperative
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      petite remarque

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown