TN>Вопрос к знатокам питона, для чего он предназначен\заточен можно ли на нем написать например PIM или почтовый клиент? TN>Просто до недавнего времени думал что это вообще язык для веба типа пхп
Я не знаток, но знаю, что, например, Adobe Premier идет с кучей питоновых файлов, которые, скорее всего, выполняют роль скриптового языка, но не уверен
Здравствуйте, TNikolay, Вы писали:
TN>Вопрос к знатокам питона, для чего он предназначен\заточен можно ли на нем написать например PIM или почтовый клиент? TN>Просто до недавнего времени думал что это вообще язык для веба типа пхп
3D редактор Blender активно использует питон как основной скриптовый язык, такое впечатление, что там половина на питоне написана . Я и сам его как скриптовый язык использую — очень удобно.
Здравствуйте, Andrei N.Sobchuck, Вы писали:
F>>А электрочайника, который бы меня абсолютно полностью устроил я все равно так и не нашел..
ANS>Что, ни в одном не было Java?
Здравствуйте, TNikolay, Вы писали:
M>>Лень искать свою же ссылку На нем писалась Civ IV
TN>Помоему правильне будет сказать "Civ IV использовала его как язык сценариев" %)
Я не вникал в нее глубоко, но по тому что видел — он в Civ IV использовался далеко не только для сценариев. Насколько я понял, там мощное ядро на чем-то нативном, а большая часть кода верхнего уровня — на питоне (хотя сами скрипт не представлены отельными файлами а зашиты куда-то внутрь).
Хотя в принципе, если рассматривать саму игру как один большой сценарий — то таки да, как язык сценариев
Но утверждать, что CivIV полностью написана на питоне — тоже неверно, конечно же.
Здравствуйте, fmiracle, Вы писали:
F>>>А электрочайника, который бы меня абсолютно полностью устроил я все равно так и не нашел..
ANS>>Что, ни в одном не было Java?
F>Какая еще Жава, я ж дотнетчик
Здравствуйте, nikda, Вы писали:
N>Разбирался с Trac, в результате столкнулся с Python — ом. Возник обычный вопрос. Зачем нужен Python (или другой язык), если тотже С++/C# могут тоже самое, если не больше?
С++ или C# действительно могут то же самое или больше. Но на некоторых задачах под словами "С++ может это" скрывается неделя работы, а под "Питон может это" скрывается один час.
N>Есть куча похожих языков, зачем они? У них же практически одинаковые возможности.
У языков нету возможностей. Возможности есть у пары человек+язык. Вот например у пары человек+асм нет практически осуществимой возможности написать Corel Draw, а у пары тот же самый человек+C++ есть.
Здравствуйте, Critical Error, Вы писали:
CE>3D редактор Blender активно использует питон как основной скриптовый язык, такое впечатление, что там половина на питоне написана . Я и сам его как скриптовый язык использую — очень удобно.
Я так понимаю что реально встроить интерпретатор питона в с++ програму для исполнения скриптов?
А возможно ли смешанное программирование когда основной язык с++, но часть процедур на питоне? то есть например есть почтовик, хочется туда сейчас написать процедуру импорт\экспорта в файлы, можно эту часть сделать на питоне? скорее всего нет конечно, но может я ошибаюсь?
TN>есть почтовик, хочется туда сейчас написать процедуру импорт\экспорта в файлы, можно эту TN>часть сделать на питоне? скорее всего нет конечно, но может я ошибаюсь?
Здравствуйте, fmiracle, Вы писали:
F>>>А электрочайника, который бы меня абсолютно полностью устроил я все равно так и не нашел..
ANS>>Что, ни в одном не было Java?
F>Какая еще Жава, я ж дотнетчик
Афоризм вот кстати родился в тему:
Дотнетчикам чайник не нужен, ибо у них голова есть.
(никого лично не имею ввиду из здесь присутсвующих)
TN>>можно ли на нем написать например PIM или почтовый клиент? dmz>можно: wxPython, PyQt, PyGTK.
dmz>Но вообще, продуктивнее делать наоборот — критичные вещи реализовывать на С/С++ или Java, dmz>а питон использовать как glue.
dmz>Потому что множество таких критичных вещей уже реализовали до вас, и может так получиться, dmz>что на C/C++ особенно много писать и не надо.
Хорошо поставим вопрос ребром Если я например хочу написать аналог Оутлука или например RSDN Home. Причем работающие с большими обьемами данных — хотелось бы нормальную скорость работы с гуи\базой данных, стоит ли писать его например на wxPiton (если это вообще возможно) или лучше остатся на C++ и wxWidgets? Даст ли питон тут какие-нибудь приимущества или наоборот минусы?
Просто есть идея одного проекта, может быть действительно стоит его начать на питоне делать, но сложно решить подойдет ли язык не знаю его.
Да и еще реально ли на питоне шаровары писать, или там код открытый\незащищенный получается?
TN>Хорошо поставим вопрос ребром Если я например хочу написать аналог Оутлука TN>или например RSDN Home. Причем работающие с большими обьемами данных — хотелось бы нормальную скорость работы TN>с гуи\базой данных, стоит ли
Работа с GUI будет нормальная, потому что GUI забиндено в нативный код. Работа с базой — аналогично, от вашего кода почти не зависит. Вопрос, кстати, какая база еще.
TN>писать его например на wxPiton (если это вообще возможно) или лучше остатся на C++ и wxWidgets? Даст ли питон тут TN>какие-нибудь приимущества или наоборот минусы?
преимущества — очень быстро разрабатывать, маленький time-to-market.
недостатки — язык, все-таки, интерпретируемый. значит, местами может и подтормаживать, и память
поджирать. По сравнению с C.
TN>Просто есть идея одного проекта, может быть действительно стоит его начать на питоне делать, но сложно решить TN>подойдет ли язык не знаю его.
другими словами, тут выбор — использовать статические языки или динамические?
Это сложный выбор, и многое зависит от вас. На динамических языках вроде питона писать очень быстро, и для одноразовых или редко используемых поделок больше ничего и не надо. Но для серьезного, постоянно используемого продукта для достижения приемлемого качества нужно жесткое следование test-driven принципам разработки,
иначе вы просто погрязнете в куче багов.
В общем, примеры качественного (относительно) большого софта на Python, Java, CGJ, Mono — есть. Но есть и множество обратных примеров — куча глюкавых поделий.
Я бы начал с того, что нашел бы схожее по характеру OSS приложение с хорошей репутацией — большое, работающее с базой и предназначенное для постоянной работы и внимательно бы посмотрел бы на него. Как оно работает вообще, общее качество, не жрет ли память и т.п.
TN>Да и еще реально ли на питоне шаровары писать, или там код открытый\незащищенный получается?
критичные куски можно в dll убрать. да и декомпиляторов для питона как-то мало пока.
Здравствуйте, TNikolay, Вы писали:
TN>Хорошо поставим вопрос ребром Если я например хочу написать аналог Оутлука или например RSDN Home. Причем работающие с большими обьемами данных — хотелось бы нормальную скорость работы с гуи\базой данных, стоит ли писать его например на wxPiton (если это вообще возможно) или лучше остатся на C++ и wxWidgets? Даст ли питон тут какие-нибудь приимущества или наоборот минусы?
TN>Просто есть идея одного проекта, может быть действительно стоит его начать на питоне делать, но сложно решить подойдет ли язык не знаю его.
Не рекомендую гуи на питоне писать, всеже он для этого немного тормозной, на современных компах правда не сильно заметно, но все же. Для гуи лучше что-нибудь высокоскоростное типа MFC, WTL (правда пока напишешь на нем что-нибудь, помереть можно) или HTMLLayout тоже вариант. А питон использовать для скриптов. Я уже приводил пример — Blender. В нем сделано как раз так, как я себе представляю правильное использование скриптового языка. Я не раз видел интерфейсы на скриптах и понял одно: не нужно делать сложные скриптовые UI. Если там скажем всего пара листбоксов и кнопочки — это ладно, но вот если это главный UI программы, дело дрянь.
Вот так по моему тоже делать не надо:
Приложение <-> Скрипт <-> База Данных
Такая связь гораздо более сложная и хрупкая, чем такая:
Приложение <-> Скрипт
<-> База Данных
Повылезает куча багов в коде взаимодействия всего этого.
В общем сначала нужно тщательно спроектировать приложение, уяснив, что скрипты это довольно тормозная часть программы.
Лично я во всех своих проектах стараюсь прикрутить питон в качестве расширения. Питон дает программе огромные возможности! В основном за счет своей стандартной библиотеки.
Здравствуйте, Critical Error, Вы писали: CE>Не рекомендую гуи на питоне писать, всеже он для этого немного тормозной, на современных компах правда не сильно заметно, но все же.
Тормозной GUI с успехом можно написать на чём угодно, о чём свидетельствует громадное количество тормозново софта на C++, Delphi, Java, DotNet.
А если нормально спроектировать, всё будет летат и на python-е.
Реальный случай:
Заказ на программу для помощи в переводе. Перевод базы данных в dbf общем объемом 100мб.
Планировалос Qt + C++
Сделали макет интерфейса и логики на Qt + python чтобы протестировать удобство работы и уточнить алгоритмы.
Переписывать на C++ не пришлось — скорость полностью удовлетворила заказчика!
Продуктивность после внедрения возросла на порядок.
Здравствуйте, Critical Error, Вы писали:
CE>Лично я во всех своих проектах стараюсь прикрутить питон в качестве расширения. Питон дает программе огромные возможности! В основном за счет своей стандартной библиотеки.
И судя по всему приличный рантайм? уже упоминаемый тут wikipad имеет инсталяху 4.5 метров, я так понима что 4 это там питон?
А что используете для прикручивания питона? бусстовскую библиотеку или что другое?
Здравствуйте, TNikolay, Вы писали:
TN>И судя по всему приличный рантайм? уже упоминаемый тут wikipad имеет инсталяху 4.5 метров, я так понима что 4 это там питон?
Н да, так оно и есть обычно. Но если бы питон занимал 0.5 метра, то сам wikipad занимал бы 4. По моему как сейчас лучше! Я рассудил так: питон в дистрибы не кладу, а предлагаю скачать его отдельно. Дистриб тогда меньше занимает, при обновлениях это иногда удобно.
TN>А что используете для прикручивания питона? бусстовскую библиотеку или что другое?
Зачем бустовскую? Буст оно конечно хорошо и удобно, но уж очень долго компилится. А я на стандартном C API хорошо наловчился, мне теперь ничего больше не надо.
Хотя по части буста тут ктото говорил как ускорить компиляцию с помощью pch. Надо будет попробовать...
Здравствуйте, TNikolay, Вы писали:
TN>Здравствуйте, Critical Error, Вы писали:
CE>>Лично я во всех своих проектах стараюсь прикрутить питон в качестве расширения. Питон дает программе огромные возможности! В основном за счет своей стандартной библиотеки.
TN>И судя по всему приличный рантайм? уже упоминаемый тут wikipad имеет инсталяху 4.5 метров, я так понима что 4 это там питон?
В википаде в основном место занимает не питон а wxVidgets. Питон в зависимости от версии и используемых стандартных библиотек может занять в сжатом дистрибутиве от 200кб до 2 — 3 мб.
TN>А что используете для прикручивания питона? бусстовскую библиотеку или что другое?
Буст да очень удобный. Еще есть swig (http://www.swig.org) но это внешний генератор.
Здравствуйте, TNikolay, Вы писали:
TN>Здравствуйте, Mikhail Polykovsky, Вы писали:
TN>Вопрос к знатокам питона, для чего он предназначен\заточен можно ли на нем написать например PIM или почтовый клиент? TN>Просто до недавнего времени думал что это вообще язык для веба типа пхп
неделю назад игрался в Civilization4, там около 3Мб кода на Питоне.