Страница 1 из 1

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

Добавлено: 21 дек 2007, 02:42
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.

Добавлено: 21 дек 2007, 09:54
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)?

Добавлено: 21 дек 2007, 14:03
mend0za
прокомментирую вариант питона.

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

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

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

xml в питоне вполне себе работает (предыдущий проект как раз использовал pyxml)

Добавлено: 21 дек 2007, 14:19
grub
Слово "энтерпрайз" -- это маркетинговое шаманское заклинание для повышения эрекции инвесторов.

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

Добавлено: 21 дек 2007, 17:23
Victor Gr.
Замечание про "энтерпрайз" было ироничным 8)

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

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

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

Обычно библиотеки собраны с GTK2.

Добавлено: 22 дек 2007, 00:12
hlamer
От себя добавлю что мне понравилось работать с PyQt.

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

А вообще насчет Python vs Java (от фанатов Python)
http://www.ferg.org/projects/python_jav ... -side.html

Добавлено: 22 дек 2007, 02:40
Victor Gr.
hlamer, да-да, такое помню. Упор на то, что Java гораздо более многословна.

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

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

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

Добавлено: 22 дек 2007, 17:03
hlamer
Кстати, если выбор падет на Python и Qt, советую посмотреть Qt-шные классы для работы с графикой. Возможно они умеют то, что нужно

Добавлено: 12 янв 2008, 16:34
sd
Бери Python + wxPython/pyQT + lxml + PIL