Подтвердить что ты не робот

Зачем использовать Jython, когда вы можете просто использовать Java?

Стандартный ответ: полезно, когда вам нужно написать несколько строк кода...

У меня есть оба языка, встроенные внутри Eclipse. Поскольку Eclipse обрабатывает компиляцию, интерпретацию, запуск и т.д., Оба "запускаются" точно так же.

Eclipse IDE для обоих аналогична - мгновенная компиляция, intellisense и т.д. Оба варианта позволяют использовать перспективу Debug.

Если я хочу протестировать несколько строк Java, мне не нужно создавать целый новый Java-проект - я просто использую Scrapbook внутри Eclipse, что позволяет мне "выполнять выражения Java без необходимости создавать новую Java-программу. Это простой способ быстро протестировать существующий класс или оценить фрагмент кода".

Jython позволяет использовать библиотеки Java, но тогда (по определению) Java!

Итак, какие другие преимущества предлагает Jython?

4b9b3361

Ответ 1

Быстрый пример (из http://coreygoldberg.blogspot.com/2008/09/python-vs-java-http-get-request.html):

У вас есть задний конец на Java, и вам нужно выполнить HTTP GET resquests.

Натурально:

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) {}
    }
}

В Python:

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

Jython позволяет использовать java-надежность и, при необходимости, ясность Python.

Что еще? Как сказал бы Жорж...

Ответ 2

Синтаксис Python (используемый Jython) значительно более краткий и быстрый для многих программистов.

Кроме того, вы можете использовать существующие библиотеки Python в приложении Java.

Ответ 3

Я только что открыл Jython и, как немного лингвиста, думаю, я бы сказал, что это немного похоже на вопрос "зачем использовать латынь, когда вы можете использовать французский язык" (забыв о том, что латинский язык был до французского, конечно).

Различные человеческие языки действительно заставляют вас думать по-разному. Французский язык - отличный язык, я долгое время жил во Франции и занимал здесь определенную степень. Но латинская поразительная сила и краткость превращают ваш разум в другую зону, где порядок слов можно поменять местами, чтобы произвести, например, всевозможные тонкие эффекты.

Я думаю, от моего беглого знакомства с Jython, который действительно активировал мой энтузиазм, кстати, что это заставит меня думать по-разному. Я некоторое время скептически относился к Python/Jython и, например, был большим поклонником Java-дженериков (которые иронически уменьшают количество ввода и, следовательно, "латинизируют" французов, если хотите). Я не совсем понимаю полные последствия "динамически типизированных" языков, таких как Jython, но я думаю, что лучше всего пойти с потоком и посмотреть, что на самом деле делает Jython!

Забавно, как языки приходят и уходят. Другой "латинский" можно считать Algol68 с его бесконечно рекурсивным синтаксисом. Но потребность в разработке массивно-рекурсивного кода, способности читать и думать в нем еще не ощущалась. Jython кажется очень мощным и элегантным, с тем, где мы находимся сейчас, с OO-библиотеками, мощью Java-качания и всего, что завернуто в очень элегантный комплект. Может быть, однажды Jython также примет бесконечно рекурсивный синтаксис?

Ответ 4

Я использую Jython для интерактивного тестирования кода Java. Это часто намного быстрее, чем написание тестовых приложений Java или даже на любом языке сценариев. Я могу просто поиграть с методами и посмотреть, как он реагирует. Оттуда я могу научиться достаточно, чтобы пойти и написать настоящий код или тестовые примеры.

Ответ 5

Аналогия: Зачем пить кофе, когда вы можете вместо этого пить горячую водопроводную воду и жевать жареный горький beans.: -)

Для некоторых задач Python просто на вкус лучше, работает лучше и достаточно быстро (требуется время до brew?). Если ваша среда программирования или развертывания сосредоточена на JVM, Jython позволяет вам кодировать Python, но без изменения среды развертывания и среды выполнения.

Ответ 6

Некоторые задачи проще на некоторых языках, чем другие. Если бы мне пришлось разбирать некоторый файл, я бы выбрал Python над Java в мигание.

Ответ 7

Использование Python - это больше, чем "синтаксический сахар", если вам не нравится писать (или генерировать вашу IDE) сотни строк кода плиты котла. Там преимущество Rapid Development при использовании динамически типизированных языков, хотя недостатком является то, что это усложняет ваш API и интеграцию, потому что у вас больше нет однородной кодовой базы. Это также может повлиять на обслуживание, потому что не все в вашей команде любят Python так же сильно, как и вы, и не будут такими эффективными с ним. Это может быть проблемой.

Ответ 8

Библиотеки Python;) Например BeautifulSoup - парсер HTML, который принимает неправильную разметку. AFAIK нет аналогичной чистой Java lib.

Ответ 9

У Python есть некоторые функции функционального программирования, такие как lambdas. Java не обладает такой функциональностью, и некоторые программы будут значительно легче писать, если такая поддержка будет доступна. Таким образом, иногда проще написать код в Python и интегрировать его через Jython, чтобы попытаться написать код в Java.

Ответ 10

Не нужно компилировать. Возможно, вы хотите получить что-то быстрее, чем использовать скомпилированный язык, например, прототип.

... и вы можете встроить интерпретатор Jython в свои приложения. Хорошая функция, я не могу сказать, что я ее использовал, но тем не менее прохладно.

Ответ 11

Jython также может использоваться как встроенный язык сценариев в Java-программе. В какой-то момент вам может оказаться полезным написать что-то со встроенным языком расширения. Если это работает с Java Jython, это вариант (Groovy - другой).

В основном я использовал Jython для поискового программирования на Java-системах. Я мог бы импортировать части приложения и подталкивать API, чтобы узнать, что произошло, вызвав вызовы из интерактивного сеанса Jython.

Ответ 12

Синтаксис сахара.

Ответ 13

В вашей ситуации это не имеет большого смысла. Но это не значит, что это никогда не произойдет. Например, если вы разрабатываете продукт, который позволяет конечным пользователям создавать расширения или плагины, может быть хорошо, что это возможно для сценариев.

Ответ 14

Перенос существующего кода в новую среду может быть одной из причин. Некоторые из вашей бизнес-логики и функциональности домена могут существовать в Python, а группа, которая пишет этот код, настаивает на использовании Python. Но группа, которая ее развертывает и поддерживает, может потребовать управления кластером J2EE для масштаба. Вы можете обернуть логику в Jython в EAR/WAR, а затем группа развертывания просто увидит, что другой пакет J2EE будет управляться, как и все другие пакеты J2EE.

то есть. это средство борьбы с несоответствием импеданса.