Вопрос выбора: Python vs. Java + Qt
- Victor Gr.
- Неотъемлемая часть форума
- Сообщения: 891
- Зарегистрирован: 13 авг 2004, 15:39
- Откуда: Минск
- Контактная информация:
Вопрос выбора: Python vs. Java + Qt
Есть желание написать программу и возникает вопрос выбора языка программирования для реализации: Python или Java.
Оба языка я знаю одинаково плохо (мало практики, больше теории по книжкам) и оба языка желаю знать лучше. Первый -- для души, второй -- для резюме.
Душа лежит больше к Python, но в сравнении с Java он кажется мне "игрушечным". В плане, что Java вся такая энтерпрайз , а 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.
Оба языка я знаю одинаково плохо (мало практики, больше теории по книжкам) и оба языка желаю знать лучше. Первый -- для души, второй -- для резюме.
Душа лежит больше к Python, но в сравнении с Java он кажется мне "игрушечным". В плане, что Java вся такая энтерпрайз , а 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.
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)?
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
прокомментирую вариант питона.
в Python (в отличие от Ruby) объектность не родная и появилась в дополнение к оригинальному процедурному стилю.
Отладка в питоне будет гораздо приятнее. Плюс он не настолько многословен как ява.
С т.з. GUI в python вполне юзабельны gtk и wxWidgets. Вторая либа даёт нативные виджеты на целевых платформах.
xml в питоне вполне себе работает (предыдущий проект как раз использовал pyxml)
в Python (в отличие от Ruby) объектность не родная и появилась в дополнение к оригинальному процедурному стилю.
Отладка в питоне будет гораздо приятнее. Плюс он не настолько многословен как ява.
С т.з. GUI в python вполне юзабельны gtk и wxWidgets. Вторая либа даёт нативные виджеты на целевых платформах.
xml в питоне вполне себе работает (предыдущий проект как раз использовал pyxml)
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...
- grub
- Неотъемлемая часть форума
- Сообщения: 849
- Зарегистрирован: 13 сен 2006, 10:29
- Откуда: Минск
- Контактная информация:
Слово "энтерпрайз" -- это маркетинговое шаманское заклинание для повышения эрекции инвесторов.
С точки зрения белорусского программиста, "энтерпрайз"-системы ничем особо не отличаются от обычных быстрогрязноклепаных универсальных комбайнов для "управления миром", кроме масштаба бюджета и амбиций менеджеров
С точки зрения белорусского программиста, "энтерпрайз"-системы ничем особо не отличаются от обычных быстрогрязноклепаных универсальных комбайнов для "управления миром", кроме масштаба бюджета и амбиций менеджеров
- Victor Gr.
- Неотъемлемая часть форума
- Сообщения: 891
- Зарегистрирован: 13 авг 2004, 15:39
- Откуда: Минск
- Контактная информация:
Замечание про "энтерпрайз" было ироничным
dg333, в Java давно есть автобоксинг, так что про примитивы можно забыть. Они сами преобразуются в объекты и обратно при необходимости. Python -- не чисто ООП язык. Чего-то нету, а что-то построено на соглашениях.
XML в питоне... Ну не только pyxml. Пакеты xml.sax, xml.dom в т.ч.
Да в общем-то, всё равно, главное, чтобы работало.
dg333, в Java давно есть автобоксинг, так что про примитивы можно забыть. Они сами преобразуются в объекты и обратно при необходимости. Python -- не чисто ООП язык. Чего-то нету, а что-то построено на соглашениях.
XML в питоне... Ну не только pyxml. Пакеты xml.sax, xml.dom в т.ч.
Да в общем-то, всё равно, главное, чтобы работало.
А на Линуксе какие виджеты нативные?Вторая либа даёт нативные виджеты на целевых платформах.
От себя добавлю что мне понравилось работать с PyQt.
Хотя для маленького проекта таскать с собой Qt4 и PyQt4 может и не имеет смысла.
А вообще насчет Python vs Java (от фанатов Python)
http://www.ferg.org/projects/python_jav ... -side.html
Хотя для маленького проекта таскать с собой Qt4 и PyQt4 может и не имеет смысла.
А вообще насчет Python vs Java (от фанатов Python)
http://www.ferg.org/projects/python_jav ... -side.html
И сошел на него Дух Господень...
Нашел он свежую ослиную челюсть, и,
протянув руку свою, взял ее,
и убил ею тысячу человек.
Книга Судей, глава 15, стих 14, 15
Нашел он свежую ослиную челюсть, и,
протянув руку свою, взял ее,
и убил ею тысячу человек.
Книга Судей, глава 15, стих 14, 15
- Victor Gr.
- Неотъемлемая часть форума
- Сообщения: 891
- Зарегистрирован: 13 авг 2004, 15:39
- Откуда: Минск
- Контактная информация:
hlamer, да-да, такое помню. Упор на то, что Java гораздо более многословна.
Мануал по программированию с PyQT4
Вообще, похоже, есть какой-то минимальный порог (сложности?), до которого писать приложения на Java неинтересно.
Иначе, я просто не вижу плюсов (кроме обогащения опыта) в Java перед Python. Для такой простенькой аппликации, как ожидается у меня.
Мануал по программированию с PyQT4
Вообще, похоже, есть какой-то минимальный порог (сложности?), до которого писать приложения на Java неинтересно.
Иначе, я просто не вижу плюсов (кроме обогащения опыта) в Java перед Python. Для такой простенькой аппликации, как ожидается у меня.