Вопрос выбора: Python vs. Java + Qt

Все о программировании под *nix
Аватара пользователя
Victor Gr.
Неотъемлемая часть форума
Сообщения: 891
Зарегистрирован: 13 авг 2004, 15:39
Откуда: Минск
Контактная информация:

Вопрос выбора: Python vs. Java + Qt

Сообщение Victor Gr. »

Есть желание написать программу и возникает вопрос выбора языка программирования для реализации: Python или Java.

Оба языка я знаю одинаково плохо (мало практики, больше теории по книжкам) и оба языка желаю знать лучше. Первый -- для души, второй -- для резюме.

Душа лежит больше к Python, но в сравнении с Java он кажется мне "игрушечным". В плане, что Java вся такая энтерпрайз 8) , а Python даже толковым ООП не владеет.

Ну да это всё лирика. Теперь конкретика.

Какие требования?

1. Кроссплатформенность. Программа должна без проблем запускаться на Linux, WinNT, MacOS.

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

2. (Предпочтительно нативный для ОС) GUI.

Здесь у меня огромное желание использовать QT4 (PyQT4, Qt Jambi). Но в java можно и swing (в крайнем случае).

3. Удобная работа с сетью (HTTP).

Тут оба языка будут чувствовать себя в порядке, я полагаю.

4. Работа с XML (DOM, XPath).

Тоже без проблем как в python, так и в java.

5. Регулярные выражения.

В обоих языках оно есть в стандартной поставке.

6. Визуальная скорость работы (отклик).

Гм, ну если Java GUI программы я хоть иногда щупал, то Python+QT4 почти нет. Как оно будет?

7. Библиотеки для работы с графикой (GD, ImageMagick).

Масштабирование, наложение изображений, увеличение резкости и проч.

Ну и простота написания. Важна. Ибо не хочется сильно заморачиваться с программой Just for fun. Но в то же время хочется получить хоть какой-то навык работы с выбранным ЯП.

Подытоживая, могу сказать что мне эти два языка вообще по возможностям подходят оба. Именно поэтому и возникает такой нелёгкий вопрос выбора.

Общее назначение программы в двух словах: клиентская часть для CMS.

dg333
Неотъемлемая часть форума
Сообщения: 293
Зарегистрирован: 10 май 2006, 09:46
Откуда: Менск

Сообщение dg333 »

Victor Gr., похоже, ты точно знаешь оба языка плохо, ибо Python как раз-таки чисто ОО язык, а в Java оставлены не-ОО примитивы. Правда, и я не слишком большой специалист, но вот мои соображения:
1. Программы на Python (попроще, разумеется) можно писать на коленке по принципу: «запустил - не работает - почитал книжку - поправил - запустил». Java нужно элементарно перекомпилировать.
2. ГИП в Java — это Swing, реализованный стандартно и понятный любой современной среде выполнения (JRE), мощный и симпатичный (правда, многие недолюбливают стандартный Metal), а в Python стандартно есть только довольно примитивный tcl/tk.
3. XML в Python — это, кажется, только PyXML, который даже до версии 1.0 не добрался, для Java же библиотек/средств работы с XML выше крыши.
4. Python просто идеален для обработки текста, но явно медленне и в целом уступает Java при работе с другими данными.

Кстати, почему не попробовать Jython (www.jython.org)?
openSUSE 11.3/12.3

Аватара пользователя
mend0za
Неотъемлемая часть форума
Сообщения: 2332
Зарегистрирован: 30 авг 2002, 12:33
Откуда: Minsk

Сообщение mend0za »

прокомментирую вариант питона.

в Python (в отличие от Ruby) объектность не родная и появилась в дополнение к оригинальному процедурному стилю.

Отладка в питоне будет гораздо приятнее. Плюс он не настолько многословен как ява.

С т.з. GUI в python вполне юзабельны gtk и wxWidgets. Вторая либа даёт нативные виджеты на целевых платформах.

xml в питоне вполне себе работает (предыдущий проект как раз использовал pyxml)
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...

Аватара пользователя
grub
Неотъемлемая часть форума
Сообщения: 849
Зарегистрирован: 13 сен 2006, 10:29
Откуда: Минск
Контактная информация:

Сообщение grub »

Слово "энтерпрайз" -- это маркетинговое шаманское заклинание для повышения эрекции инвесторов.

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

Аватара пользователя
Victor Gr.
Неотъемлемая часть форума
Сообщения: 891
Зарегистрирован: 13 авг 2004, 15:39
Откуда: Минск
Контактная информация:

Сообщение Victor Gr. »

Замечание про "энтерпрайз" было ироничным 8)

dg333, в Java давно есть автобоксинг, так что про примитивы можно забыть. Они сами преобразуются в объекты и обратно при необходимости. Python -- не чисто ООП язык. Чего-то нету, а что-то построено на соглашениях.

XML в питоне... Ну не только pyxml. Пакеты xml.sax, xml.dom в т.ч.
Да в общем-то, всё равно, главное, чтобы работало.
Вторая либа даёт нативные виджеты на целевых платформах.
А на Линуксе какие виджеты нативные?

Аватара пользователя
mend0za
Неотъемлемая часть форума
Сообщения: 2332
Зарегистрирован: 30 авг 2002, 12:33
Откуда: Minsk

Сообщение mend0za »

Victor Gr. писал(а):
А на Линуксе какие виджеты нативные?
wxWindow на linux работает поверх Gtk2, X11, DirectFB

Обычно библиотеки собраны с GTK2.
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...

Аватара пользователя
hlamer
Увлекающийся
Сообщения: 119
Зарегистрирован: 24 фев 2006, 23:34

Сообщение hlamer »

От себя добавлю что мне понравилось работать с PyQt.

Хотя для маленького проекта таскать с собой Qt4 и PyQt4 может и не имеет смысла.

А вообще насчет Python vs Java (от фанатов Python)
http://www.ferg.org/projects/python_jav ... -side.html
И сошел на него Дух Господень...
Нашел он свежую ослиную челюсть, и,
протянув руку свою, взял ее,
и убил ею тысячу человек.
Книга Судей, глава 15, стих 14, 15

Аватара пользователя
Victor Gr.
Неотъемлемая часть форума
Сообщения: 891
Зарегистрирован: 13 авг 2004, 15:39
Откуда: Минск
Контактная информация:

Сообщение Victor Gr. »

hlamer, да-да, такое помню. Упор на то, что Java гораздо более многословна.

Мануал по программированию с PyQT4

Вообще, похоже, есть какой-то минимальный порог (сложности?), до которого писать приложения на Java неинтересно.

Иначе, я просто не вижу плюсов (кроме обогащения опыта) в Java перед Python. Для такой простенькой аппликации, как ожидается у меня.

Аватара пользователя
hlamer
Увлекающийся
Сообщения: 119
Зарегистрирован: 24 фев 2006, 23:34

Сообщение hlamer »

Кстати, если выбор падет на Python и Qt, советую посмотреть Qt-шные классы для работы с графикой. Возможно они умеют то, что нужно
И сошел на него Дух Господень...
Нашел он свежую ослиную челюсть, и,
протянув руку свою, взял ее,
и убил ею тысячу человек.
Книга Судей, глава 15, стих 14, 15

Аватара пользователя
sd
Заглянувший
Сообщения: 17
Зарегистрирован: 15 сен 2004, 20:26
Откуда: Минск
Контактная информация:

Сообщение sd »

Бери Python + wxPython/pyQT + lxml + PIL

Ответить