Annonce

Réduire
Aucune annonce.

Pourquoi le JAVA est à la mode ?

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Pourquoi le JAVA est à la mode ?

    Bonsoir tout les hackademiciens !

    Voilà ayant commencer mes études en Informatique et ayant des informations sur les autres formations possibles je me demande pourquoi le JAVA est autant à la mode dans les apprentissages, quelqu'un pourrais donner son avis ?

    Merci d'avance

    Cordialement Wkz

  • #2
    Un seul mot: la portabilité

    Je m'y met aussi, juste pour ma culture...

    Commentaire


    • #3
      Je suis comme toi je fais une licence informatique et mathématiques et évidemment le 1er langage qu'on a étudier c'est le... JAVA! C'est censé nous donner de solides bases en programmation pour continuer par la suite vers d'autres horizons

      Commentaire


      • #4
        Perso, j'ai plutôt eu l'habitude de voir le langage C ou C++ en apprentissage. Enfin bon je ne suis pas rendu là, mais il me semble que le JAVA n'a pas du tout la même syntaxe que le C et le C++. Après, je ne me suis peut-être pas renseigné sur les bonnes formations.
        Mess with the best, Die like the rest

        Commentaire


        • #5
          Je dirais en effet que Java est populaire grâce à sa portabilité.

          Je trouve cela dommage. D'après moi, Java est lent et bourré de failles de sécurité.
          D'autres langages (plus performants et moins troués) comme le python par exemple ont également beaucoup de choses à apprendre aux programmeurs.

          Dans l'exemple de Python, je la trouve plus proche des pseudo langage algorithmiques.
          Il me semble donc plus clair pour faire de bon algorithme.

          Maintenant ce n'est que mon avis.

          Commentaire


          • #6
            C'est vrai que java est au top de sa forme ces derniers temps.Je pense pas que C+ soit laisser pour autant mais il y a un réél phénoméne de mode autour d'internet et de ses applications.Java en fait partie ,il est jeune et moderne,en proposant une librairie multimedia qui grandis chaque année et ses possibilités interressent beaucoup de programmeurs pour la création de site et autre etc...

            Commentaire


            • #7
              Ce qui m'as le plus choqué c'est que le changement du C au Java a était brutal d'une année à l'autre tout le monde (Etudiants) s'est mit au JAVA

              Commentaire


              • #8
                Je trouve cela dommage. D'après moi, Java est lent et bourré de failles de sécurité.
                D'autres langages (plus performants et moins troués) comme le python par exemple ont également beaucoup de choses à apprendre aux programmeurs.
                Java est lent et bourré de failles de sécurité ????? Pas franchement non...

                Le fait même que Java soit compilé et s'éxécute dans une machine virtuelle qui cloisonne efficacement les accès aux ressources matérielles, assure naturellement un niveau de sécurité par défaut bien plus élevé qu'un script python.

                Je préciserai que la réputation de lenteur associée à Java date des premières versions du langage. Ce n'est plus du tout vrai aujourd'hui.

                Quand à comparer Python à Java, c'est un peu comme comparer un vélo à une voiture.

                Tu ne vas pas faire sortir ta voiture pour faire 50 mètres, pas plus que tu ne vas sortir ton vélo pour faire 2500 km.

                Les deux langages n'ont pas les mêmes objectifs.

                Python, c'est bien pour les petits projets. Ca n'a aucun sens de développer un programme Java pour parser quelques fichiers, our récupérer quelques ressources en ligne, Python fera le boulot beaucoup plus facilement.

                A l'inverse, dans le cas de gros projets, Python montre clairement ses limites. Aujourd'hui, pour faire marcher des gros SI, il n'y a que deux possibilités, Java ou .NET. L'utilisation de Java n'est donc pas une question de mode, c'est juste que le langage est le seul à pouvoir faire tourner de gros SI (Avec son concurrent de MS).

                Par exemple, 100% des SI des opérateurs et autres FAI marchent sous .NET ou Java.

                Il faut bien réaliser que l'industrie à besoin de systèmes robustes et extrèmement complexes, qui sont largement hors de portée d'un langage comme Python (Je pense en particulier à des middlewares comme la SOA suite ou Oracle AIA).

                Pourquoi le changement du mode d'apprentissage du C vers Java ?

                Parceque Java est très employé du fait de ses gros avantages (robuste, sécurisé, virtualisé, distribué, portable, haute performances, dynamique, idéal dans le cas d'une architecture orientée services, modulaire (merci OSGI !), etc etc), de l'embarqué aux programmes de calcul distribué, java est partout.

                Qui plus est, la mode actuelle est plus d'aller vers la facilité en utilisant des langages qui disposent d'une solide couche d'abstraction au dessus de la plate forme matérielle.

                Et c'est précisément là que la plupart des enseignats se plantent.

                Java est un langage facile à apprendre, mais infiniement difficile à maîtriser. C'est facile de concevoir ou de coder en java. C'est TRES difficile de BIEN concevoir où coder en Java.
                Java n'est clairement pas un langage pour débuter.

                En colcusion, et en carricaturant un peu, Java c'est idéal pour faire du gros projet. Python, c'est bien pour faire de petits projets.

                Tortue 974.
                Dernière modification par TorTukiTu, 14 décembre 2013, 14h36.
                OxyGen Software
                Sécurité, développement, formations, informatique biomédicale
                [email protected]

                Commentaire


                • #9
                  Pourquoi le JAVA est à la mode ?

                  Merci beaucoup.
                  Ton message m'a apprit bien des choses. Je ne pensais pas que Java était à ce point performant.

                  Je reviens tout de même sur l'un des points dont tu as parlé qui est la sécurité.
                  Java n'a t'il pas beaucoup de failles dans sa machine virtuelle ?

                  Commentaire


                  • #10
                    Java n'a t'il pas beaucoup de failles dans sa machine virtuelle ?
                    Ca dépend de l'implémentation. Pour info, voici une liste non exhaustive des principales implémentations (Wikipedia).

                    Free and open source implementations

                    AegisVM (inactive since 2004).
                    Apache Harmony — supports several architectures and systems. Discontinued November 2011. Apache License 2.0.
                    Avian — A small, easily embeddable Java VM and classpath using just-in-time compilation.
                    Azul Zulu — is an OpenJDK build supported by Azul Systems. It is open source and free to download. The initial release runs on Windows Server 2008 R2 and 2012 on the Windows Azure Cloud.
                    Bck2Brwsr — small JVM capable to boot fast and run in 100% of modern browsers including those that have no special support for Java. Last release in September, 2013.
                    CACAO — uses GNU Classpath, supports multiple architectures. GPL. 1.6.0 released September 4, 2012.
                    Dalvik used in Google Android
                    GCJ the GCC Java compiler, that compiles either to bytecode or to native machine code. The product is currently in maintenance mode.
                    HaikuVM, for Atmel AVRs (Arduino) and other micros using the leJOS runtime.
                    HotSpot, the primary reference Java VM implementation.
                    IcedTea — has the only working free software Java Web browser plugin. GPL+linking exception.
                    IKVM.NET — Java for Mono and the Microsoft .NET Framework. Uses OpenJDK. Zlib License.
                    Jamiga — for the Amiga platform. Depends on GNU Classpath. GPL.
                    JamVM — Developed to be an extremely small virtual machine compared to others. Designed to use GNU Classpath. Supports several architectures. GPL.
                    Jaos — Java on Active Object System. Uses GNU Classpath as a standard library. Unmaintained.
                    Jato VM — uses GNU Classpath. GPL.
                    JC — Converts class files from byte-code into C. Uses Soot and GNU Classpath. GNU Library or LGPL licenses.
                    Jelatine JVM
                    JESSICA (Java-Enabled Single-System-Image Computing Architecture).
                    Jikes RVM (Jikes Research Virtual Machine) — Research project. PPC and IA-32. Supports Apache Harmony and GNU Classpath libraries. Eclipse Public License.
                    JNode — operating system. Version 0.2.8 released on January 29, 2009. LGPL.
                    JOP — Hardware implementation of the JVM. GPL 3.
                    Juice — JavaME experimental JVM developed to run on the NUXI operating system.
                    Jupiter — Uses Boehm garbage collector and GNU Classpath. GPL. Unmaintained.
                    JwiK Open Source Java VM for 8bit micro for wireless applications.
                    JX (operating system) — GPL. Version 0.1.1 released on October 10, 2007.
                    Kaffe — Uses GNU Classpath. GPL. 1.1.9 released on February 26, 2008.
                    leDos real-mode x86 JVM running on MS-DOS. MPL.
                    leJOS — Robotics suite, a firmware replacement for Lego Mindstorms programmable bricks, provides a Java programming environment for the Lego Mindstorms RCX and NXT robots.
                    MateVM — An experimental JIT implemented in Haskell. GPL.
                    Maxine — meta-circular open source research VM from Oracle Labs.
                    Mika VM — intended for use in embedded devices. Cross-platform. BSD-style licence.
                    miniMV (from UABC-Tij for embedded systems and Wireless Sensor network devices)[citation needed].
                    Mysaifu (Windows CE/Windows Mobile) — the only open source Java SE-compatible JVM still in development for PocketPC devices. GPL 2.
                    NanoVM — developed to run on the Atmel AVR ATmega8 used in the Asuro Robot, can be ported to other AVR-based systems.
                    RoboVM — AOT compiler and runtime which targets iOS, Mac OS X and Linux. Largely based on Android's runtime.
                    SableVM — First free software JVM to support JVDMI and JDWP. Makes use of GNU Classpath. LGPL. Version 1.13 released on March 30, 2007.
                    Squawk virtual machine — A Java ME VM for embedded systems and small devices. Cross-Platform. GPL.
                    SuperWaba — Java-like virtual machine for portable devices. GPL. Discontinued, succeeded by TotalCross.
                    TakaTuka — for wireless sensor network devices. GPL.
                    TinyVM.
                    VM02 a Java-compatible environment for the Apple II series of computers.
                    VMkit of Low Level Virtual Machine.
                    Wonka VM — Developed to run on Acunia's ARM-based hardware. Some code drawn from GNU Classpath. BSD-style licence. No longer under active development, superseded by Mika VM.

                    Proprietary implementations

                    Azul Zing JVM a fully compliant Java Virtual Machine based on HotSpot that uses the Azul C4 (Continuously Concurrent Compacting Collector) garbage collector. Supports memory heaps of 100s of GB without GC pauses and is able to grow and shrink the heap based on load.
                    CEE-J is a clean room implementation of Sun's Java technology, Skelmir is not a licensee of Oracle.
                    Excelsior JET is a licensed Java SE implementation with AOT compiler
                    Hewlett-Packard, Java for HP-UX, OpenVMS, Tru64 and Reliant (Tandem) UNIX platforms
                    J9 (IBM), for Windows, AIX, Linux (x86 and PPC), MVS, OS/400, Pocket PC, z/OS
                    "Classic JVM" for IBM OS/400 (superseded by J9)
                    Imsys AB provides their SNAP (Simple Network Application Platform) JVM running on their proprietary IM1000 and IM3000 microprocessors that feature microcode execution of Java byte codes.
                    Apogee provides embedded Java using IBM J9 and Apache Harmony Class Library for X86, ARM, MIPS, PowerPC running on Linux, LynxOS, WinCE.
                    JBed, (Esmertec) is an embedded Java with multimedia capabilities
                    JamaicaVM, (aicas) is a hard real-time Java VM for embedded systems
                    JBlend, (Aplix) is a Java ME implementation
                    Jinitiator, developed by Oracle before they purchased Sun. Designed to improve support for Oracle Forms in web sites.
                    JRockit (originally from Appeal Virtual Machines) acquired by Oracle for Linux, Windows and Solaris
                    Mac OS Runtime for Java (MRJ)
                    MicroJvm (IS2T - Industrial Smart Software Technology) Wide range of virtual machines dedicated to embedded systems (including hard real-time constrained systems), ARM7, ARM9, AVR, AVR32, PPC, MIPS, ...
                    Microsoft Java Virtual Machine (discontinued in 2001)
                    OJVM (also known as "JServer") from Oracle Corporation
                    PERC (Aonix/Atego) is a real time Java for embedded. Aonix is not a licensee of Oracle.
                    SAPJVM (SAP) is a licensed and modified SUN JVM ported to all supported platforms of SAP NetWeaver, started as Java 5, in the meantime Java 6 compatible (Windows i386, x64, IA-64; Linux x86, IA-64, PowerPC; AIX PowerPC; HP-UX SPARC IA-64; Solaris SPARC x86-64; i5/OS PowerPC)
                    Waratek CloudVM for Java A multitenant JVM that allows per-tenant isolation, metering and resource control

                    Lesser-known proprietary Java virtual machines

                    Blackdown Java was a licensed port to Linux of the reference SunSoft implementation. It was discontinued in 2007, after OpenJDK became available.
                    C virtual machine (CVM, from Sun), supports C
                    Gemstone - modified for Java EE features (application DBMS)
                    Golden Code Development (EComStation and OS/2 port of Java RTE and SDK for Java SE v1.4.1_07)
                    HP ChaiVM and MicrochaiVM
                    Intent (Tao Group)
                    Novell, India.
                    NSIcom CrE-ME
                    PreonVM (Virtenio) A VM for embedded systems and small devices.
                    Comme tu peux le voir, le domaine est vaste...

                    Tortue 974.
                    OxyGen Software
                    Sécurité, développement, formations, informatique biomédicale
                    [email protected]

                    Commentaire


                    • #11
                      Bonsoir,

                      Ça me dépasse encore de voir ce vieux truc "python langage de script"...

                      Il faut arrêter avec ça, c'est lassant! Surtout que c'est pas vrai et la justification fausse.

                      Python a fait de grand projet avec la NASA et ça commençait déjà il y a 20 ans, on y peut rien si sur des forums, des idiots (on peut pas dire mieux) ne peuvent s'empêcher d'écrire des choses aussi débiles.À force de répéter ces mensonges, les gens y croient, et le répètent, donc arrêtez!

                      Python est un langage ne pouvant s'exprimer dès lors où l'on a besoin de performance en terme de vitesse d'exécution. Pour palier à ce problème on peut interfacer python avec du C/C++/java, cython pour le C/C++ et jython avec java (sachant que pour ce dernier cas, c'est inutile sauf pour des spécificités java).

                      Python par contre a des avantages et pas des moindres.
                      • Rapidité de codage
                      • Maintenabilité du code
                      • Documentations bien fournies
                      • Simplicité



                      Il permet dès lors où la rapidité d'exécution n'est pas une demande spécifique de faire tout aussi bien de très gros projets, cela avec une facilité déconcertante et très rapidement.

                      Quand je programme c'est pas compliqué
                      • Python pour ce qui demande pas de vitesse de calculs
                      • C pour les calculs, voir C++

                      Un petit mélange de tout ça, avec cython
                      • Programme fait rapidement
                      • Programme efficace
                      • Programme en peu de lignes

                      Commentaire


                      • #12
                        Rapidité de codage
                        Maintenabilité du code
                        Documentations bien fournies
                        Simplicité
                        Comme je l'ai dit, Python n'as pas les mêmes objectifs que Java. On remarquera aussi que Python sera toujours légèrement plus lent que Java (à cause, entre autre, du typage dymanique). Ce qui le rends inadapté dans les cas où la vitesse de traitement requise est importante, ou lorsque des quantités importantes de données sont manipulées. Java ne souffre pas de ce problème.
                        En revanche, le coût de développement et de maintenabilité d'un programme Java est plus important.

                        D'une facon plus générale, python a été pensé comme une sorte de colle entre les composants du SI, mais le gros du dev, restera dans des langages style Java.

                        de faire tout aussi bien de très gros projets, cela avec une facilité déconcertante et très rapidement
                        Tout dépends de l'architecture voulue.

                        Si tu fais un peu de Java, tu verras que le support RPC (et WS) est vraiment puissant. Dans le cadre d'une AOS (ce que devrait être tout SI qui se respecte), Java est clairement le choix numéro 1. On peut par contre imaginer un peu de Python pour faire du post traitement des données renvoyées par ces services.

                        Le fait que Python soit rapide à écrire en fait le meilleur choix pour des composants intermédiaires ayant une durée de vie plus faible, amenés à être réecris régulièrement, et ayant peu de données à traiter.

                        Tortue 974.
                        Dernière modification par TorTukiTu, 14 décembre 2013, 20h48.
                        OxyGen Software
                        Sécurité, développement, formations, informatique biomédicale
                        [email protected]

                        Commentaire


                        • #13
                          On remarquera aussi que Python sera toujours légèrement plus lent que Java (à cause, entre autre, du typage dymanique). Ce qui le rends inadapté dans les cas où la vitesse de traitement requise est importante, ou lorsque des quantités importantes de données sont manipulées. Jav ane souffre pas de ce problème.
                          Mais non... python n'utilise pas du python, mais s'interface avec des langages comme le C ou le C++, ses librairies sont souvent bindées avec du C++, voir du C.

                          Bref c'est pas vrai, et si on prend le python pur, alors oui, mais le temps que la jvm se mette en route...
                          Cependant grâce à JIT, il y a un petit avantage. Cependant je ne connais pas encore tout cela dans les détails, je débute en java.

                          D'une facon plus générale, python a été pensé comme une sorte de colle entre les composants du SI, mais le gros du dev, restera dans des langages style Java.
                          Oui style langage de script, c'est ça...

                          Le fait que Python soit rapide à écrire en fait le meilleur choix pour des composants intermédiaires ayant une durée de vie plus faible, amenés à être réecris régulièrement, et ayant peu de données à traiter.
                          Faux...

                          Le seul avantage que je vois à Java par rapport à Python, est sur le fait que java est à la base sur pratiquement toutes les machines, alors que python n'est que sur les systèmes Unix.

                          Commentaire


                          • #14
                            python n'utilise pas du python, mais s'interface avec des langages comme le C ou le C++, ses librairies sont souvent bindées avec du C++, voir du C.
                            Oui, mais là ca n'est plus du python, Java aussi fait ca, comme 99% des langages modernes. Ca reviens à ce que je t'ait dit, tu te sers de python pour faire de la colle entre tes composants.

                            Bref c'est pas vrai, et si on prend le python pur, alors oui, mais le temps que la jvm se mette en route...
                            En réalité, dans l'industrie tu bosses toujours en utilisant des gros serveurs d'application, JONAS typiquement. Du coup, la JVM est up 24/24 et les composants sont branchés / débranchés à chaud.

                            Le fait que Python soit rapide à écrire en fait le meilleur choix pour des composants intermédiaires ayant une durée de vie plus faible, amenés à être réecris régulièrement, et ayant peu de données à traiter.
                            Faux...

                            Le seul avantage que je vois à Java par rapport à Python, est sur le fait que java est à la base sur pratiquement toutes les machines, alors que python n'est que sur les systèmes Unix.
                            Pour info, (étant donné que je n'ai plus fait de python depuis pas mal d'années) je me suis renseigné pour pas dire trop de conneries, et ce que je t'ai dit est issus de python.org....

                            http://www.python.org/doc/essays/comparisons.html

                            For these reasons, Python is much better suited as a "glue" language, while Java is better characterized as a low-level implementation language [...] Python can also be used to prototype components until their design can be "hardened" in a Java implementation [...]
                            Pour terminer, j'ajouterai que Java peut être utilisé via Groovy. Ce qui apporte une productivité et une maintenabilité à peu près équivalente à Python. (Apparement, il y a même un projet d'implémentation python en java !) Donc plus d'excuses pour ne pas utiliser de JVM =) !

                            Enfin, tu n'as pas d'équivalent (à ma connaissance, tu vas peut être me contredire) des gros serveurs d'application Tomcat / Jetty / Jonas ou des environements OSGi en Python. Du coup c'est moins facile pour l'hébergement, le contrôle, et les déploiements de tes applications.

                            Tortue 974.

                            PS: J'ai passé sous silence les éditions mobile et java Card (hxxps://en.wikipedia.org/wiki/Java_Card). Aujourd'hui, ta carte bancaire tourne sous Java. Je ne pense pas que tu aies en équivalent en Python.
                            Dernière modification par TorTukiTu, 14 décembre 2013, 21h23.
                            OxyGen Software
                            Sécurité, développement, formations, informatique biomédicale
                            [email protected]

                            Commentaire


                            • #15
                              http://www.python.org/doc/essays/comparisons.html

                              Si tu savais quel âge à ce lien, il y a prescription, mais ça tu pouvais pas le savoir...

                              Oui, mais là ca n'est plus du python, Java aussi fait ca, comme 99% des langages modernes.
                              Non, non, se sont des modules python purs (librairie standard), bindés à partir de différents langages (C/C++). C'est pourquoi python est très intéressant et qu'il permet de faire de la 3D par exemple.
                              Tous les calculs étant basés sur les capacités de la carte graphique, donc en bas level, se sont des modules bindés, l'utilisation du programmeur ne s'occupant que du côté CPU, la puissance de calcul n'est donc pas importante et peut être géré facilement par python.

                              Bref on rentre dans du complexe, mais pour en conclure, je ne vois pas de limite à python, si tu me donnes un exemple concret où python est dépassé, je veux bien te croire

                              Un exemple de module implémenté en C -> cpickle
                              Dernière modification par fred, 14 décembre 2013, 21h33.

                              Commentaire

                              Chargement...
                              X