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)
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 heinPython est fortement typé, mais typé dynamiquement.)
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.
Envoyé par sazearte
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.Envoyé par sazearte
-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.
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
@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...)
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 tagquand 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
J'ai du mal a comprendreMoi j'y vois surtout la possibilité a terme de pouvoir scripter du Java avec du Java plutôt qu'avec du JavaScriptc'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.
Donc il faut taper ses programmes en une ligne. Quel progrès !
Sans rire, moi pour tester l'API Java j'utilise parfois groovyConsole.
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.
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
Plus que le projet Jigsaw, l'api Json, et autres ?La prise en charge de REPL est l’une des fonctionnalités les plus attendues de Java 9
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...
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 :
Quand j'exécute le code :
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)
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.
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
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...).
Bah moi dans mon Université on commencer par Pascal puis C ensuite C++ et enfin Java
bonne nouvelle!!! c'est vrai java reste un langage incontournable!!![]()
Tiens c'est drôle, moi c'est tout l'inverse (pour un parcours presque similaire).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
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.
Partager