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

Java Discussion :

Java pourrait être doté d’un interpréteur boucle : lecture - évaluation – impression


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut Java pourrait être doté d’un interpréteur boucle : lecture - évaluation – impression
    Java pourrait être doté d’un interpréteur boucle : lecture - évaluation – impression (REPL)
    le projet Kulla nait sur OpenJDK

    Mise à jour du 02/10/2014 : le projet Kulla approuvé

    Le JDK sera doté dans une version future de fonctionnalités REPL (Read Evaluate Print Loop). Après un vote qui a eu lieu le 15 septembre dernier, le projet Kulla a été adopté par 14 voix pour, contre 0 vote négatif et aucun veto.

    La JEP (JDK Enhancement Proposal) du projet est déjà disponible en ligne. Elle servira de feuille de route pour son développement. Elle décrit notamment les objectifs du projet, les motivations, les alternatives, les risques, etc.

    Dans ce document, on apprend que la rétroaction immédiate qu’apportera ce projet est importante lors de l’apprentissage d’un langage de programmation. En raison de cette omission, de nombreuses écoles se sont éloignées de Java pour adopter des langages comme Python, qui disposent d’un REPL.

    Selon la JEP du projet, ces fonctionnalités feront partie du JDK 9.

    Consulter la JEP du projet

    Maj de Hinault Romaric

    La plateforme Java pourrait dans le futur être dotée de fonctionnalités REPL (Read Evaluate Print Loop) comme pour le langage de programmation LISP.

    Les développeurs d’OpenJDK, la déclinaison open source de Java, étudient la possibilité d’ajouter officiellement l’outil au langage de programmation.

    La discussion est effectuée dans le cadre du projet Kulla, qui a vu le jour le 27 août dernier. La mise en œuvre d’un tel programme permettra une programmation interactive, de telle sorte que tout ce qui entre au clavier est systématiquement évalué.

    Avec ce mode de fonctionnement basé sur une boucle : lecture - évaluation – impression (REPL), l'interpréteur :

    • R : lit une expression ;
    • E : évalue (calcule le résultat de) cette expression ;
    • P : imprime sur la sortie standard le résultat de l'évaluation ;
    • L : recommence en R.



    « Du point de vue du développeur, il est agréable d’être en mesure d’interagir avec le code pendant son exécution en temps réel, sans avoir à recompiler/redéployer », soutient Michael Facemire, analyste chez Forrester.

    REPL est déjà implémenté dans la plupart des langages dynamiques et fonctionnels, y compris Scala et Clojure. Une implémentation pour Java existe même déjà en ligne sur GitHub. Cependant, Martin Odersky, fondateur de Scala, voit des limites à l’utilisation de REPL dans Java.

    « Le problème avec Java est que c’est un langage fondamentalement orienté déclaration. Vous écrivez une déclaration, et c’est lorsqu’elle s’exécute qu’elle a un effet. REPL en revanche est orienté expression. Vous écrivez une expression et REPL montre le résultat, un peu comme une calculatrice », explique Martin Odersky, qui estime que REPL ne sera pas aussi utile avec Java que pour un langage orienté expression.

    Le vote pour le projet va débuter le 10 septembre prochain. S’il est approuvé, le code cloné à partir de JDK9 sera utilisé pour créer l’outil.


    Source : OpenJDK


    Et vous ?

    Que pensez-vous de ce projet ? REPL est-il utile pour le langage Java ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Je n'en vois pas trop l'utilité comme ça... mais peut-être que ça pourra servir à mettre en place des règles métiers de manière dynamique comme Drools ?
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  3. #3
    Membre éclairé
    Avatar de Voyvode
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 476
    Par défaut
    Ce n’est peut-être pas indispensable pour un langage comme Java, mais l’utilité du REPL n’est plus à démontrer.

    Je pense que beaucoup apprécient des langages comme Python parce qu’ils donnent la possibilité de « dialoguer » avec son programme. L’air de rien, cela rend le développement nettement plus concret.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2012
    Messages : 29
    Par défaut
    Pour ma part, en Scala, je n'utilise guère le REPL, mais j'utilise bien les worksheets proposées par le plugin Scala pour Intellij IDEA (il y a la même chose dans le plugin pour Eclipse), qui ont grosso modo la même utilité, mais en plus flexible (on peut modifier les expressions déjà entrées, et écrire des expressions sur plusieurs lignes sans se poser de questions). Si Java se dote d'un REPL, on verra peut-être aussi arriver des worksheets dans les IDE.

    Quand à l'intérêt de ce genre de choses, j'en vois deux (par rapport à faire la même chose dans un main en Java) :
    - on n'a pas besoin d'ajouter des logs ou de débugger pour voir immédiatement la valeur d'une expression
    - l'exécution est immédiate, le cycle compilation/exécution est masqué
    Ça ne parait peut-être pas beaucoup à première vue, mais ça fait gagner un peu de temps quand on expérimente ou test de nouvelles choses, et surtout, ça fait paraitre ce genre d'expérimentation plus "naturelle" (pour moi en tous cas).

  5. #5
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    dans ce cas il faut enlever le "P" et le remplacer par une notion plus abstraite (alimenter un Stream)
    (eh eh ça me rappelle les bons vieux Shells sauf qu'au lieu de mettre simplement du texte on produit des objets - comme en PowerShell?-)

  6. #6
    Membre très actif Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Par défaut
    Il parait que Oracle voit de plus en plus que Java a pris du retard sur les nouveaux langages.
    C'est une bonne nouvelle après l'insertion des expressions lambda.c'est déjà pas j'attend cela avec impatience.

  7. #7
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut
    Bonjour,

    J'ai découvert cette fonction avec python. Un tel mode devrais selons moi premièrement demander si le développeur souhaite enregistrer le code qu'il pape dans un fichier et si oui sous quel non

    Ensuite on devrait pouvoir arrêter l'enregistrement à tout moment et renouveler la procédure pour d'autre fichier. Il pourrait même avoir un mode réservé au développeur ou le code exécuter s'affiche en cour d'exécution.

    Le fait que java ne soit pas un langage orienté expression n'est à mon avis pas une raison valable pour ne pas implémenter cela comme python le fait et cette fonctionnalité me permettrai de mieux profiler un programme dénigre mon code et mieux comprendre pourquoi tel ou tel erreur ou exception survien.
    C'est une des raisons pour lesquelles j'ai hésiter a commencer mon projet en python je suis pari finalement sur java et swing que je connais bien et dont j'ai vu que la réactivité et les thread étaient bien gérer. il y a toutefois des aspect de python que je trouve intéressant comme le typage dynamique, l'héritage multiple voir supprimer des classes ou des propriétés en cours d'exécution.

    Quel serais le bon système ?

    Jython ?

    J'attends vos réaction

    Salutations

  8. #8
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    ne pas confondre soupçonner et sonner la soupe
    on peut avoir des raisons d'utiliser des langages orientés script dans certaines circonstances (j'utilise Groovy)
    mais aussi de bonnes raisons de ne pas les utiliser: je travaille dans le monde scientifique où les pythoneurs et les pythonisses abondent et vraiment les excès de python nuisent grave à la digestion

  9. #9
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut Jython
    Citation Envoyé par professeur shadoko Voir le message
    ne pas confondre soupçonner et sonner la soupe
    on peut avoir des raisons d'utiliser des langages orientés script dans certaines circonstances (j'utilise Groovy)
    mais aussi de bonnes raisons de ne pas les utiliser: je travaille dans le monde scientifique où les pythoneurs et les pythonisses abondent et vraiment les excès de python nuisent grave à la digestion
    Et que pensez-vous de jython ?

    Merci de me répondre

    Salutations

  10. #10
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par Battant Voir le message
    Et que pensez-vous de jython ?
    je ne pense plus ....
    mais sur notre projet jython pose quelques problèmes avec d'autres librairies python ... et j'aimerai qu'on laisse tomber pour faire une interface Py4J (quoique je ne sois pas sûr que ça résolve tout)
    je redoute les querelles de chapelle (mais ça ne m'empêche pas de penser que les tonnes de librairies scientifiques python vont poser de sacrés problèmes à long terme, et ça m'agace de me faire friter par des gens par ailleurs très brillants qui ont des préjugés contre Java.... alors je leur chante une adaptation du "python" de Charles Trenet [http://www.paroles.net/charles-trene...erpent-python])

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Battant Voir le message
    Ensuite on devrait pouvoir arrêter l'enregistrement à tout moment et renouveler la procédure pour d'autre fichier. Il pourrait même avoir un mode réservé au développeur ou le code exécuter s'affiche en cour d'exécution.
    J'ai rien compris à ces deux phrases. Par exemple qui d'autre qu'un développeur va utiliser une invite Python ?

    Citation Envoyé par Battant Voir le message
    Le fait que java ne soit pas un langage orienté expression n'est à mon avis pas une raison valable pour ne pas implémenter cela comme python le fait et cette fonctionnalité me permettrai de mieux profiler un programme dénigre mon code et mieux comprendre pourquoi tel ou tel erreur ou exception survien.
    Pas "valable" ? C'est une raison qui pointe que c'est impossible, par état de fait. Python peut proposer son invite parce qu'il est ce qu'il est, et Java étant fondamentalement différent il ne pourra pas faire de le même manière.
    Ça veut pas dire qu'un genre d'invite Java qui servirait à la même chose, n'est pas concevable, il existe des trucs de ce genre. Mais leur fonctionnement est fatalement différent, sans quoi le langage proposé serait autre chose que du Java.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut Une idée d'implemetation
    Bonjour,

    Non, il faudrait le même invite que python mais pour java.

    Voici un petit algorithme que j'imagine pour son implemetation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Begin.
    Ask : "whould you like to save your next commands in a source java file ? y/n"
     
    if answer == y
     
       show the stop button
        When the user type enter.
           If this command is valid
             Write it in the file
     
     
    When the user click stop button.
     
    if the file hase been saved ?
      show message : "your file has been saved to" + absolutefilepath.
     
    If answer == n
     
    Enter in the normal interactive mode whithout savig commands 
    if the user presss enter
       check the command synthaxe.
        if there is a syntace error.
         println (syntaxe error at : position incorrect word : wrond word.
    else
       Execute command.
     
    End

    J'espère m'être bien fait comprendre

    J'attends vos réactions

    Salutations

    Citation Envoyé par thelvin Voir le message
    J'ai rien compris à ces deux phrases. Par exemple qui d'autre qu'un développeur va utiliser une invite Python ?

    Personne d'autre mais ça peut fortement les aider pour le débugage et c'est dans ce cadre là que j'aurais besoin d'une tel fonction en tant que développeur java.


    Pas "valable" ? C'est une raison qui pointe que c'est impossible, par état de fait. Python peut proposer son invite parce qu'il est ce qu'il est, et Java étant fondamentalement différent il ne pourra pas faire de le même manière.
    Ça veut pas dire qu'un genre d'invite Java qui servirait à la même chose, n'est pas concevable, il existe des trucs de ce genre. Mais leur fonctionnement est fatalement différent, sans quoi le langage proposé serait autre chose que du Java.
    Quel est la raison technique qui fait qu'avec java, une telle fonction est inimaginable et reste du domaine du fantasme ?

    Merci de me répondre

    Salutations

  13. #13
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Battant Voir le message
    Quel est la raison technique qui fait qu'avec java, une telle fonction est inimaginable et reste du domaine du fantasme ?
    Le paragraphe que tu cites dit lui-même que ce n'est pas inimaginable.

    Il dit aussi que ça sera forcément très différent. Pour Java comme pour tout langage par encapsulation de classe, par blocs, et à typage statique. Parce que chacun de ces attributs force des contraintes sur le mécanisme de compilation qui ne peuvent pas être résolues en tapant le code au fur et à mesure. Python n'ayant aucun des trois, il peut.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    si j'ai bien compris il s'agit de faire un truc à la jline

    lancer une jvm et avoir un prompt pour exécuter des commandes est un truc qui existe dans quelques outils

    il y a même SshTerminal qui permet d'exposer une session jline sur ssh

    qui dit prompt et commande dit langage de commande
    il faut donc un interprète

    et là il y a déjà un standard dans les dernières version.
    jjs n'est rien de plus qu'une boucle d'évaluation reposant sur la JVM et utilisant le langage javascript.

    je ne saisi pas bien le but du projet

    A+JYT

  15. #15
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    Java : le projet Kulla approuvé
    il permettra de doter la plateforme d’un interpréteur boucle : lecture - évaluation - impression (REPL)

    Le JDK sera doté dans une version future de fonctionnalités REPL (Read Evaluate Print Loop). Après un vote qui a eu lieu le 15 septembre dernier, le projet Kulla a été adopté par 14 voix pour, contre 0 vote négatif et aucun veto.

    La JEP (JDK Enhancement Proposal) du projet est déjà disponible en ligne. Elle servira de feuille de route pour son développement. Elle décrit notamment les objectifs du projet, les motivations, les alternatives, les risques, etc.

    Dans ce document, on apprend que la rétroaction immédiate qu’apportera ce projet est importante lors de l’apprentissage d’un langage de programmation. En raison de cette omission, de nombreuses écoles se sont éloignées de Java pour adopter des langages comme Python, qui disposent d’un REPL.

    Selon la JEP du projet, ces fonctionnalités feront partie du JDK 9.

    Consulter la JEP du projet

    Et vous ?

    Pensez-vous qu’un module REPL est important pour l’apprentissage d’un langage de programmation ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  16. #16
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut
    Bonjour,

    Je pense que cette fonctionnalité est non seulement importante pour l'apprentissage d'un langage de programmation mais aussi pour le débugage d'un programme par exemple pour appeler les méthodes individuellement afin de les tester.

    Quant à moi, j'ai besoin de cette fonctionnalité pour débloquer un programme que je suis en train de faire.

    J'ai participé au vote et j'ai voté oui.

    Salutations

  17. #17
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Je ne comprends toujours pas

    que fais de plus ce projet qu'on n'a pas déjà dans la JVM en standard

    Aujourd'hui sans ce projet je lance une JVM
    j'ai un prompt
    je tappe une commande
    j'obtient une réponse
    je tape une autre commande
    j'ai une autre réponse
    etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    jjs> var date = Date()
    jjs> "Date and time: ${date}"
    Date and time: Mon Aug 19 2013 19:43:08 GMT+0400 (MSK)
    dans ces commande je peux créer des objets appeler des méthode voir des attributs
    faire des loops des ifs des switchs
    la JSR-223, Scripting for the Java Platform permet de changer de langage

    Qu'apporte de plus ce projet ?

    A+JYT

  18. #18
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    la JSR-223, Scripting for the Java Platform permet de changer de langage
    jjs utilise le moteur Nashorn intégré au JDK, donc cela n'exécute pas du Java mais du JavaScript...

    Donc l'objectif de cette JEP c'est de proposer la même chose en Java...


    a++

  19. #19
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    Java 9 : l’interpréteur boucle : lecture - évaluation - impression (REPL) intégré à la plateforme
    premier aperçu de JShell

    De nombreux index sur le classement des langages s’accordent sur le fait que Java est l’un des langages de programmation les plus utilisés à travers le monde.

    Cependant, de nombreuses universités se détournent du langage Java pour l’initiation à la programmation. Le langage est maintenu dans les programmes essentiellement à cause de sa popularité en entreprise. Mais, pour des universités américaines de référence comme le MIT, l’initiation à Java commence à partir du niveau 1 ou 2.

    Plusieurs universités américaines ont opté pour l’utilisation du langage Python pour l’initiation à la programmation de niveau 0 et niveau 1, selon un sondage qui avait été réalisé par l’ACM il y a un an.

    Les grandes écoles américaines se tournent vers Python à cause de sa simplicité pour l’apprentissage. Une simplicité qu’elle doit en partie à l’implémentation de REPL (Read Evaluate Print Loop), qui permet aux étudiants de rapidement avoir un aperçu de leur code, car les modifications sont exécutées instantanément.

    Pour pallier à cela, les développeurs de Java ont décidé d’intégrer à Java 9 des fonctionnalités REPL, à travers le projet Kulla. Ce projet a donné naissance à JShell qui permet une programmation interactive, de telle sorte que tout ce qui entre au clavier est systématiquement évalué.

    Avec ce mode de fonctionnement basé sur une boucle : lecture - évaluation – impression (REPL), l'interpréteur :

    • R : lit une expression ;
    • E : évalue (calcule le résultat de) cette expression ;
    • P : imprime sur la sortie standard le résultat de l'évaluation ;
    • L : recommence en R.

    JShell est un outil en ligne de commande, qui permet d’exécuter des instructions Java directement. Il offre une API qui permet d’évaluer de manière interactive les déclarations et les expressions du langage Java.


    Pour plus de simplicité et de rapidité dans l’écriture du code pour les apprenants, JShell interprète directement des expressions sans avoir besoin qu’elles soient enveloppées dans une classe ou une méthode, qui n’a pas également besoin d’une classe pour être interprétée. Le « ; » à la fin d’une instruction devient optionnel avec JShell.

    L’outil pour plus de facilité supportera des fonctions comme l’autocomplexion, l’ajout automatique des points-virgules, les importations, etc.

    La prise en charge de REPL est l’une des fonctionnalités les plus attendues de Java 9, qui sortira en version stable le 22 septembre 2016.

    Toutefois, la fonctionnalité a ses détracteurs, qui remettent en cause l’utilité d’un outil orienté expression pour un langage comme Java qui est orienté déclaration.

    Télécharger une préversion du JDK


    Et vous ?

    Etes-vous pour ou contre le support de REPL dans Java ? Pourquoi ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  20. #20
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Python est utilisé pas uniquement car il peut être exécuter en mode interactif, il a d'autre avantage, langage non typé, une puissante gestion des listes... qui permet au débutant d'apprendre l'essentiel qui est selon moi l’algorithmie, le reste (le typage, les pointeur, la poo etc...) c'est pour ceux qui maîtrise déjà les boucles for, la notion de fonction etc.

Discussions similaires

  1. Java EE 7 pourrait être très orienté Cloud
    Par Hinault Romaric dans le forum Java EE
    Réponses: 25
    Dernier message: 09/09/2012, 01h04
  2. Graal : le compilateur dynamique Java pourrait être utilisé dans les JVM
    Par Hinault Romaric dans le forum Général Java
    Réponses: 40
    Dernier message: 04/04/2012, 23h59
  3. Intéropérabilité entre un client java et serveur dot net
    Par miss_2000 dans le forum Services Web
    Réponses: 1
    Dernier message: 01/12/2006, 10h54

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