Pourquoi utiliser Jython alors que vous pouvez simplement utiliser Java? [fermé]

La réponse standard est que c'est utile quand vous avez seulement besoin d'écrire quelques lignes de code ...

j'ai les deux langues intégrées à L'intérieur D'Eclipse. Parce que Eclipse gère la compilation, l'interprétation, l'exécution, etc. les deux "courent" exactement de la même façon.

L'IDE Eclipse pour les deux est similaire - "compilation" instantanée, intellisense etc. Les deux permettent l'utilisation de la perspective Debug.

Si je veux tester quelques lignes de Java, je n'ai pas de créer une toute nouvelle Projet Java - je viens d'utiliser le Album fonctionnalité au sein d'Eclipse qui me permet d' "exécute des expressions Java sans avoir à créer un nouveau programme Java. C'est un moyen sympa de tester rapidement une classe existante ou d'évaluer un extrait de code".

Jython permet l'utilisation des bibliothèques Java - mais alors, par définition, à Java!

alors, quels autres avantages Jython offre-t-il?

24
demandé sur nzpcmad 2008-09-19 01:01:30

14 réponses

un exemple rapide (de http://coreygoldberg.blogspot.com/2008/09/python-vs-java-http-get-request.html) :

vous avez un back end en Java,et vous devez effectuer des requêtes HTTP GET.

Nativement :

import java.net.*;
import java.io.*;

public class JGet {
    public static void main (String[] args) throws IOException {
        try {
            URL url = new URL("http://www.google.com");

            BufferedReader in = 
                new BufferedReader(new InputStreamReader(url.openStream()));
            String str;

            while ((str = in.readLine()) != null) {
                System.out.println(str);
            }

            in.close();
        } 
        catch (MalformedURLException e) {} 
        catch (IOException e) {}
    }
}

En Python:

import urllib
print urllib.urlopen('http://www.google.com').read()

Jython vous permet d'utiliser la robustesse java et si nécessaire, la clarté Python.

Quoi d'autre ? Comme dirait Georges...

36
répondu e-satis 2008-09-18 22:13:00

la syntaxe Python (utilisée par Jython) est beaucoup plus concise et plus rapide à développer pour de nombreux programmeurs.

en outre, vous pouvez utiliser les bibliothèques Python existantes dans une application Java.

18
répondu Ben Hoffstein 2008-09-18 22:20:59

analogie: pourquoi boire du café quand vous pouvez à la place boire de l'eau chaude du robinet et mâcher sur des haricots amers rôtis. : -)

pour certaines tâches, Python a juste meilleur goût, fonctionne mieux, et est assez rapide (prend du temps à brasser?). Si votre environnement de programmation ou de déploiement est centré sur la JVM, Jython vous permet de coder Python sans changer votre environnement de déploiement et d'exécution.

6
répondu Aaron 2008-12-05 19:33:55

je viens de découvrir Jython et, en tant que linguiste, je pense que je dirais que c'est un peu comme demander "Pourquoi utiliser le Latin quand on peut utiliser le français" (oubliant le fait que le Latin est venu avant le français, bien sûr).

différentes langues humaines vous font penser de différentes manières. Le français est une grande langue, j'ai vécu longtemps en France et j'y ai fait des études. Mais la puissance surprenante et la concision du Latin met votre esprit dans une zone différente, où l'ordre des mots peut être inversées pour produire toutes sortes d'effets subtils, par exemple.

je pense, de par ma connaissance superficielle de Jython, qui a vraiment stimulé mon enthousiasme d'ailleurs, que cela va me faire penser de différentes façons. J'ai été très sceptique à propos de Python / Jython pendant un certain temps, et j'ai été un grand fan de Java generics par exemple (qui ironiquement réduit le nombre de taper et donc "latiniser" le français si vous voulez). Je ne comprends pas tout à fait les implications de "dynamiquement typé" langages comme Python, mais je pense que la meilleure chose est d'aller avec le flux et voir ce que Python n'est à mon avis!

c'est drôle comment les langues vont et viennent. Un autre" Latin " pourrait être considéré comme Algol68 avec sa syntaxe récursive infinie. Mais la nécessité de développer un code massivement récursif, et la capacité de le lire et d'y penser, ne se sont pas (encore) fait sentir. Jython semble pour être un ajustement très puissant et élégant avec où nous sommes maintenant, avec Oo bibliothèques, la puissance de Java swing, et tout enveloppé dans un paquet très élégant. Peut-être qu'un jour Jython adoptera aussi une syntaxe infiniment récursive?

6
répondu mike rodent 2011-05-23 21:11:54

j'utilise Jython pour interactive test du code Java. C'est souvent beaucoup plus rapide que D'écrire des applications de test Java ou même n'importe quel langage de script. Je peux juste jouer avec les méthodes et voir comment il réagit. De là, je peux en apprendre assez pour aller écrire de vrais codes ou des cas de test.

5
répondu John Meagher 2008-09-19 00:11:09

utiliser Python est plus que du "sucre syntaxique" sauf si vous profitez de écrire (ou faire générer votre IDE) des centaines de lignes de code de la plaque de chaudière. Il y a l'avantage des techniques de développement rapide lors de l'utilisation de langages dactylographiés dynamiquement, bien que l'inconvénient soit que cela complique votre API et l'intégration parce que vous n'avez plus de base de code homogène. Cela peut aussi affecter la maintenance parce que tout le monde dans votre équipe n'aime pas Python autant que vous et ne sera pas aussi efficace avec elle. Qui peut être un problème.

4
répondu Loren Segal 2008-09-18 21:53:36

Certaines tâches sont plus faciles dans certaines langues, puis les autres. Si je devais analyser un fichier, je choisirais Python plutôt que Java en un clin d'œil.

4
répondu Marcio Aguiar 2008-11-03 17:45:54

Python a certaines caractéristiques de la programmation fonctionnelle, comme lambdas. Java ne dispose pas de telles fonctionnalités, et certains programmes seraient considérablement plus faciles à écrire si un tel support était disponible. Il est donc parfois plus facile d'écrire le code en Python et de l'intégrer via Jython que d'essayer d'écrire le code en Java.

2
répondu toluju 2008-09-18 21:16:18

bibliothèques Python ;) Par exemple BeautifulSoup - un analyseur HTML qui accepte le markup incorrect. AFAIK il n'y a pas de Lib Java pur similaire.

2
répondu sumek 2008-09-18 21:22:32

Pas besoin de compiler. Peut-être que vous voulez quelque chose qui tourne plus vite que d'utiliser un langage compilé, comme un prototype.

...et vous pouvez intégrer l'interpréteur Jython dans vos applications. Nice feature, Je ne peux pas dire que je l'ai utilisé, mais c'est cool néanmoins.

1
répondu typicalrunt 2008-09-18 21:03:28

Jython peut également être utilisé comme langage de script intégré dans un programme Java. Vous pouvez trouver utile à un moment donné d'écrire quelque chose avec un langage d'extension intégré. Si travailler avec Java Jython est une option pour cela (Groovy en est une autre).

j'ai principalement utilisé Jython pour la programmation exploratoire sur les systèmes Java. Je pouvais importer des parties de l'application et faire le tour de L'API pour voir ce qui se passait en invoquant les appels d'une session Jython interactive.

1
répondu ConcernedOfTunbridgeWells 2008-09-18 22:02:50

syntaxe sugar.

0
répondu Lucas S. 2008-09-18 21:02:57

dans votre situation, cela n'a pas beaucoup de sens. Mais cela ne veut pas dire qu'il ne fait jamais. Par exemple, si vous développez un produit qui permet aux utilisateurs finaux de créer des extensions ou de plugins, il pourrait être sympa pour que scriptable.

0
répondu Frank Pape 2008-09-18 21:04:14

transférer le code existant dans un nouvel environnement peut être une raison. Certaines de vos logiques d'affaires et de vos fonctionnalités de domaine peuvent exister en Python, et le groupe qui écrit ce code insiste pour utiliser Python. Mais le groupe qui le déploie et le maintient peut vouloir la gérabilité d'un cluster J2EE pour l'échelle. Vous pouvez envelopper la logique en Jython dans un EAR / WAR et puis le groupe de déploiement voit juste un autre paquet de J2EE à gérer comme tous les autres paquets de J2EE.

c'est à dire qu'il est un moyen de traiter avec une différence d'impédance.

0
répondu shemnon 2008-09-19 03:04:43