среда, 8 января 2014 г.

Python: примеры и тесты, итоги

Начатые здесь в блоге наброски "Python: примеры и тесты..." завершились публикацией нескольких частей изложения на сайте IBM DeveloperWorks. То, что начиналось здесь как наброски, было очень сильно переработано, расширено, проверено... Некоторые высказанные ранее утверждения были опровергнуты или исправлены.

Вместо того, чтобы копировать опубликованный текст с места на место, я просто дам ссылки на расположение статей:

Часть 1. Версии и совместимость
В этой части подробн6о рассмотрены причины несовместимостей кодов для Python 2 Python 3, и способы смягчить эту несовместимость. Важно для дальнейшего рассмотрения.

Часть 2. Типы данных
Это не совсем точное название, это не общее описание типов данных в Python. Описание типов данных обстоятельно дано в учебниках по Python, и занимает далеко не одну часть... Это описание специфики, привносимой динамической типизацией Python, и особенно интересно для программистов, выросших на "классических" языках со статической строгой типизацией, таких как C, C++, или Java.

Часть 3. Функциональное программирование
Это обсуждение того, как приёмы функционального программирования использовать в Python. С примерами того... А заодно, рассуждения о том, что Python не язык функционального программирования, как иногда утверждается впадая в крайности.

Часть 4. Параллельное исполнение
Здесь показываются классические способы создания параллельных ветвей в коде Python, средствами операционной системы: потоки и процессы, порождаемые вызовом fork().

Часть 5. Мульти-платформенные многопоточные приложения
В этой части показаны причины неудовлетворительности реализаций классическими способами, описанными в предыдущей части. Показываются решения, независимые от платформы (Linux, Windows, ...).

Часть 6. Способы интеграции Python и С/С++ приложений
Перечислены несколько альтернативных вариантов интеграции кода Python и C/C++, имплементации реализации C/C++ кода в Python проект. Здесь же показан первый и простейший из этих способов: ручная реализация интерфейса.

 Часть 7. Особенности взаимодействия с C++. Пакет distutils, библиотека Boost.Python, проект Cython
Ещё некоторые варианты имплементации кода C или C++ в проект Python.

Часть 8. Особенности взаимодействия с C++. Проект SWIG и обратная интеграция Python в С/C++ приложения
Последний из иллюстрируемых способов имплементации C/C++ кода в проект Python. Здесь же показана обратная задача: как встроить Python код в проект C/C++... а также обсуждено зачем такое делать.


Часть 9. Разработка GUI-приложений
Здесь перечислены некоторые инструменты для построения оконных приложений на Python. Рассмотрены, с простейшими примерами приложений, Tkinter, PyQt, PySide, PyGTK.

Часть 10. 2D Графика и GUI-сценарии
Здесь продолжается рассмотрение графических инструментов. Рассмотрены wxPython, PyGames и PyZrnity.