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
    OPi
    OPi est déconnecté
    Membre très actif
    Avatar de OPi
    Homme Profil pro
    en recherche d'emploi
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : en recherche d'emploi
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Par défaut (Précision Python)
    Citation Envoyé par sazearte Voir le message
    Python […] langage non typé
    Python est fortement typé, mais typé dynamiquement.

  2. #2
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Mise à part de l'utilité au niveau pédagogie, quelle est l'utilité d'une telle fonctionnalité ? (c'est une vraie question, si quelqu'un peut éclairer mes lanternes)

  3. #3
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par défaut
    Cet outil donne une vision un peu erronée de la structure et de la logique d'un programme Java. Pas certain que le but pédagogique soit bien atteint avec une telle approche.
    Tutoriels et FAQ TypeScript

  4. #4
    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 fortement typé, mais typé dynamiquement.
    Oui mais c'est transparent pour le novice, qui pourras se concentrer sur autre chose de plus important que de déterminer si c'est un int, ou un short (j'exagère hein )


    Pour l'apprentissage, certain pensent qu'il faudrait faire l'inverse, et plonger le novice directement dans le C, voir l'assembleur, c'est une vision que je ne partage pas, mais elle est intéressante.

    Pour moi le plus important c'est l'algo, pas le langage.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 204
    Par défaut
    Citation Envoyé par sazearte
    Python est utilisé pas uniquement car il peut être exécuter en mode interactif, il a d'autre avantage, langage non typé
    Citation Envoyé par sazearte
    Oui mais c'est transparent pour le novice, qui pourras se concentrer sur autre chose de plus important que de déterminer si c'est un int, ou un short (j'exagère hein )
    Je crois que tu confonds plusieurs de choses à propos du typage. Comme tu n'es pas le seul (j'en vois souvent qui mélangent le vocabulaire voire les notions) je vais poursuivre l'effort initié par OPi et aller un peu plus loin.
    -C'est faux de dire que python n'est pas typé. D'ailleurs un langage non typé je n'en connait pas (à part l'assembleur). Soit il est fortement typé (on ne mélange pas les torchons et les serviettes) ou soit faiblement (du genre "hello world" == true). Pour information, python est fortement typé.
    -Python est typé dynamiquement. C'est-à-dire que si tu "mélanges les torchons et les serviettes" tu va pouvoir lancé ton programme mais c'est à l’exécution que ça mal se passer. A mettre en opposition avec les langages typés statiquement ou on va te le dire plus tôt (généralement à la compilation).
    Enfin, ce n'est pas parce qu'on a un langage fortement typé avec vérification statique que le système de type vient te gêner constamment quand tu développes. L'auto-inférence de type (faire déduire les types de certains objet quand c'est possible par le compilateur) et les opérations de trans-typage implicite (du genre short vers int) permettent d'écrire du code "à la python" tout en bénéficiant des avantages de la vérification statique du typage. C'est typiquement le cas en Haskell, et en C# si tu choisies d'utiliser le mot-clé var pour déclarer tes variables.

    Pour revenir plus sur la discussion, il me semble plus pertinent d'apprendre à programmer en utilisant un langage à typage fort et statique. De ce point de vue là, la repl-loop de Java me parait un bon outil pour l’apprentissage de la programmation. Je m'étais habitué à celle de Scheme quand on me l'a appris (le tout premier langage que l'on m'a appris) et c'est typiquement quelque chose que j'aurai aimé avoir lors de mon apprentissage de Java.

  6. #6
    Membre éprouvé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Billets dans le blog
    6
    Par défaut
    Pour les cours de programmation j'ai commencé direct en C mais si je m'en suis si bien sortie c'est parce-que j'ai commencé à faire du PHP(en autodidacte) 2 ans avant,
    et de l'assembleur l'année précédente en terminale Electronique.
    C'est pour ça que dans ma classe de BTS IRIS on était 4 les 3 premiers mois bien en avance sur les autres

  7. #7
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Par défaut
    @nchal

    Je ne sais pas pour Java, mais en Ruby par exemple, la console interactive peut-etre préchargé avec les classes et méthodes de ton environnement.

    C'est super utile sous Rails pour lire/ecrire les modeles via l'ORM sans passer par l'outils de database (parfois trop bas niveau) ou l'interface de ton site web (parceque buggué, pas implémenté encore etc...)

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 896
    Billets dans le blog
    54
    Par défaut
    Moi j'y vois surtout la possibilité a terme de pouvoir scripter du Java avec du Java plutôt qu'avec du JavaScript et donc c'est plutôt sympa vu que du coup, si ça se fait, ça donnerai encore plus de diversité au coté scripting de la JVM.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    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
    Moi j'y vois surtout la possibilité a terme de pouvoir scripter du Java avec du Java plutôt qu'avec du JavaScript
    J'ai du mal a comprendre c'est quoi la rapport entre java et javascript ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 187
    Par défaut
    Citation Envoyé par sazearte Voir le message
    J'ai du mal a comprendre c'est quoi la rapport entre java et javascript ?
    La JRE intègre en standard un interpréteur / compilateur javascript, voir le cours Java de JM doudou.

  11. #11
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Andorre

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2014
    Messages : 26
    Par défaut
    Donc il faut taper ses programmes en une ligne. Quel progrès !
    Sans rire, moi pour tester l'API Java j'utilise parfois groovyConsole.

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Ouais non, j'ai vérifié, il ne lit pas que des expressions, il lit :
    - des expressions, avec affichage du résultat
    - des instructions, et il les exécute. Notamment des déclarations de variable
    - des déclarations de classe et méthodes
    - des commandes internes de son shell

    Après déclaration d'une variable/classe/méthode, on peut la redéclarer.
    On peut déclarer des classes et méthodes qui font appel à des classes, méthodes ou variables qui n'existent pas ou qui ne sont pas du bon type. Auquel cas on obtient une liste, chaque fois qu'on est dans cette situation, de ce qu'on doit faire pour réparer la situation (déclarer telle variable, changer son type...)

    Bref, le shell REPL lui-même n'est pas du Java à proprement parler mais il fait son boulot de permettre de jouer avec la syntaxe Java.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par défaut
    Je pense qu'un tel outil est très utile pour convaincre les adeptes de Java de changer de langage de programmation pour un plus souple, à l'image de ce REPL.
    Tutoriels et FAQ TypeScript

  14. #14
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    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 325
    Billets dans le blog
    12
    Par défaut
    Si le programme s'écrivait en une seule ligne de commande le projet n'aurait aucun intérêt, ça doit surement être instruction par instruction, comme en python.
    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

  15. #15
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juillet 2015
    Messages : 62
    Par défaut
    La prise en charge de REPL est l’une des fonctionnalités les plus attendues de Java 9
    Plus que le projet Jigsaw, l'api Json, et autres ?

    Personnellement, sans vouloir critiquer négativement cet ajout qui reste bon à prendre, je ne vois pas trop ce que ça va apporter en plus à part à ne pas à avoir à lancer un IDE pour pouvoir tester en live 3 ligne de codes.

    Tant d'énergie dépensée pour séduire des débutants qui n'en seront pas moins performant en java en ayant commencé (et continué) sur un langage permettant une plus grande facilité de compréhension de la programmation.

    Ça me donne l'image d'un vendeur de produit qui va faire les sorties d'écoles afin de rendre le plus tôt possible accro à sa marque...

    Pendant ce temps Microsoft sort son IDE phare en gratuit avec un émulateur Android et des fonctionnalités web qui semble (sur le papier) géniales,
    Google prévois un langage spécifique à Android et le support de Dart pour cette dernière plateforme histoire de ne plus être dépendant d'Oracle (sans compter les X langages et frameworks avant-gardistes),
    Php améliore ses performances,
    Javascript permet de faire des applications robustes aussi bien en client qu'en serveur....

    Bref si oracle veut prendre la place des langages débutants, autant qu'ils le fasse en améliorant le langage, ses fonctionnalités, son accèssiblité, sa pérennité (cf: google et android) ... pas en lachant un shell qui sera utilisé pendant 4 heures par les débutant avant de lancer un éclipse, netbeans, intellij, etc...

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    Bonjour.

    Je n'ai jamais utilisé Java de ma vie, mais j'utilise au quotidien Python.
    Alors, je ne sais pas si c'est lié à ça, mais je suppose que oui. Corrigez moi si je me trompe. Et si ce que j'explique plus bas existe aussi en Java, alors mes excuses pour les explications inutile.

    Edit: en fait, ça a l'air de déjà exister.

    En Python, il y a effectivement l’interpréteur qui permet d'exécuter des instructions rentrés au fur et à mesure. Mais pour moi, c'est pas le plus primordial (quoi que très utile pour tester des nouvelles bibliothèques par exemple).
    Il y a aussi un debugger interactif. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def my_function(arg1, arg2):
        result = arg1 + arg2
        import pdb; pdb.set_trace()  # On utilise le debugger
        return result * result
     
    my_function(2, 5)
    Quand j'exécute le code :
    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
     
    > <ipython-input-2-cb762d1cb91c>(4)my_function()
    -> return result * result
    (Pdb) arg1
    2
    (Pdb) arg2
    5
    (Pdb) args
    arg1 = 2
    arg2 = 5
    (Pdb) result
    7
    (Pdb) result * result
    49
    (Pdb) result = 22
    (Pdb) result * result
    484
    (Pdb) c
    Out[2]: 484
    Ce qui est intéressant, c'est que ce qu'il y a préfixé par (Pdb), c'est moi qui ai inséré les instructions en temps réel.
    Le programme executé s'est mis en pause quand il a vu "pdb.set_trace()" et il m'a donné la main, me laissant accès à l'environnement en mémoire.
    Il y a des tas d'autres trucs possible (voir les lignes au-dessus et en dessous du code dans lequel on est, mettre un point de rupture ailleurs à la volée, etc.).
    Être au cœur du programme et de le "modifier" en temps réel permet facilement de debugger un truc. C'est vraiment une feature qui me manque, par exemple, en javascript du coté front-end.
    En javascript, le debugger du navigateur permet d'insérer des instructions déterminés à l'avance ou de voir telle ou telle variable, mais pas d'exécuter du code avec saisie en temps réel.


    Quelqu'un parlait plus haut de permettre d'écrire dans un fichier ce que l'on tape en temps réel. En python, c'est possible avec, par exemple, ipython (qui proposent des tas et des tas features).

    En conclusion, avoir ça dans Java, ça ne peut être que bénéfique pour vous, à mon avis (évidemment, faut pas laisser traîner un point de rupture du debugger sur un truc en production...).

  17. #17
    Invité de passage

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Par défaut
    Citation Envoyé par L4goon Voir le message
    Plus que le projet Jigsaw, l'api Json, et autres ?

    Personnellement, sans vouloir critiquer négativement cet ajout qui reste bon à prendre, je ne vois pas trop ce que ça va apporter en plus à part à ne pas à avoir à lancer un IDE pour pouvoir tester en live 3 ligne de codes.

    Tant d'énergie dépensée pour séduire des débutants qui n'en seront pas moins performant en java en ayant commencé (et continué) sur un langage permettant une plus grande facilité de compréhension de la programmation.

    Ça me donne l'image d'un vendeur de produit qui va faire les sorties d'écoles afin de rendre le plus tôt possible accro à sa marque...

    Pendant ce temps Microsoft sort son IDE phare en gratuit avec un émulateur Android et des fonctionnalités web qui semble (sur le papier) géniales,
    Google prévois un langage spécifique à Android et le support de Dart pour cette dernière plateforme histoire de ne plus être dépendant d'Oracle (sans compter les X langages et frameworks avant-gardistes),
    Php améliore ses performances,
    Javascript permet de faire des applications robustes aussi bien en client qu'en serveur....

    Bref si oracle veut prendre la place des langages débutants, autant qu'ils le fasse en améliorant le langage, ses fonctionnalités, son accèssiblité, sa pérennité (cf: google et android) ... pas en lachant un shell qui sera utilisé pendant 4 heures par les débutant avant de lancer un éclipse, netbeans, intellij, etc...
    Je ne comprends pas le sens de ta remarque, alors que tu commences justement par rappeler que c'est loin d'être la seule nouveauté prévue de Java 9.

  18. #18
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Par défaut
    Bah moi dans mon Université on commencer par Pascal puis C ensuite C++ et enfin Java

  19. #19
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 21
    Par défaut java
    bonne nouvelle!!! c'est vrai java reste un langage incontournable!!

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 9
    Par défaut
    Pour les cours de programmation j'ai commencé direct en C mais si je m'en suis si bien sortie c'est parce-que j'ai commencé à faire du PHP(en autodidacte) 2 ans avant,
    et de l'assembleur l'année précédente en terminale Electronique.
    C'est pour ça que dans ma classe de BTS IRIS on était 4 les 3 premiers mois bien en avance sur les autres
    Tiens c'est drôle, moi c'est tout l'inverse (pour un parcours presque similaire).
    BTS IRIS également, après un Bac STI Electro..technique.
    Je suis content d'avoir appris le C en premier, car cela te forme bien à la rigueur.

    Personnellement je pense qu'apprendre un langage "difficile" comme le C/C++ ou le Java en premier est plus avantageux. Cela t'apprend la rigueur nécessaire au métier.
    Alors que quand tu apprends direct le PHP, tu crois que tu peux faire n'importe quoi, et le passage à un autre langage est beaucoup plus difficile.

    Apprendre le C ou le Java en premier t'apprend la rigueur. Ainsi quand tu passes à PHP (dans le sens professionnel du terme, pas en mode dimanche après-midi), et que tu découvres sa permissivité, tu sais de suite ce que tu peux faire et ce que tu ne dois pas faire.

    Le gros point faible du PHP réside vraiment (toujours selon moi) dans son principal avantage: son ouverture pour réaliser des choses basiques. C'est comme cela que tu te retrouves avec des pseudo-dev PHP et des applications ultra bancales, et entendre des âneries du style "On s'en fout PHP c'est pas typé" ou avec des envies de meurtre pour ceux qui te disent "C'est quoi les PSR? Y'a pas de normes en PHP".
    Ce qui au passage, donne énormément de grain à moudre aux anti-PHP, et autres trolls.

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