Среда разработки pyCharm 🇳🇱 просто идеальна 📚 Professional (платная, нужна для Django и автоматического тестирования, коннектится в серверам СУБД и кое-как выполняет автономные запросы) и Community (бесплатная, ее возможностей пока достаточно).
- Применяется в основном с середины 1990-х и до середины 2000-х на ORACLE Solaris.
- Рисование макетов (эскизов) изначально не предусматривалось. Графика пишется сразу в исходниках на Tk.
- Позднее для их рисования и привязки к их виджетам скриптов на TCL применяется tkBuilder (есть в папаке
Q:\M$_Windows\Tcl\tkBuilder (IDE for Tk)
на сервере, см. снимок экрана ниже), Komodo и GUI Builder. - Начиная с
Tcl 8.5
появилсяttk
(tk
с темами).
На Windows Server 2019, 2022 ставим TCL Active Community v.8.6.7 из папки Q:\M$_Windows\Tcl
на сервере.
Java 💬 с середине 1990-х был прорывом по сравнению с C++. По-тихому уходит в прошлое 📉 То то, то это признается несостоятельным и отключается или отбрасывается. Его поддержка на разных уровнях устаревает и засыхает ⏳ WDDX, WSDL, WADL потихоньку повисают в воздухе. Проект на нем - как правило вязанка папок с файлами, в том числе jar
-иками. Сразу не сообразишь, где точка входа на исполнение. В основном допиливают и перепиливают наработки начала 2000-х, когда он перехватил инициативу и хорошо вписался в ВЭБ-разработку, а позднее в районе 7-ой версии переехал в мобильную разработку на Android 📱 На нем не пишем, но его компоненты нужны для прикладного ПО. Для написания серверных компонент нужна платная EnterPrice Edition
.
На Windows Server 2019, 2022 ставим бесплатные Standard Edition
из в папки Q:\M$_Windows\Java
на сервере:
- jre-8u401-... (интерпретатор и встроенная документация - обновляется до крайней версии сама),
- jdk-17_..., jdk-18_..., jdk-19_..., jdk-20_..., jdk-21_... (в каждом наборе свой компилятор и свои библиотеки).
R - простенький предметно-ориентированный язык с бедным набором типов данных, рассчитанный на математиков и экономистов. В Data Science с разным успехом применяют богатые возможности DataFrame-ов для импорта моментальных снимков баз данных (при занятости сервера СУБД его драйвер ждет несколько секунд и сбрасывает соединение, для сравнения драйвер Python-а ждет часами и сутками) и анализа их срезов, но перегонять снимок в память - это круто. Главная заморочка - все числовые переменные векторные, поэтому операции над ними работают не по правилам арифметики, а по правилам действий с векторами и матрицами. Для ввода-вывода требуется векторно-скалярное преобразования.
Скрипты можно исполнять внутри среды разработки R Studio , которая:
- если скрипт долго думает или зависает, то виснет все,
- если кодировка не win-1251, то лепит краказябру,
- в кадре терминала черным и красным шрифтом вываливает все, что надо и не надо.
Документации много. Есть много видео. Примеры узкоспециализированные, в основном от частного к общему (как и принято в США у специалистов старой школы), что затрудняет их понимание и конвертацию.
На нем в настоящее время ничего не пишем. Но он используется в модуле машинного обучения SQL Server-а (дистрибутив R комплектный с ним).
- Перехватил инициативу у выше перечисленных.
- Имеет необъятные возможности благодаря богатству типов данных и разработанным под него библиотекам.
- Надежно доминирует 📈 📊 в прикладном программировании.
- Есть комплектные библиотеки и есть библиотеки устанавливаемые дополнительно (свой набор для каждого интерпретатора). Но интерпретаторы и библиотеки желательно по отдельности не обновлять - возможны глюки.
- Есть мнение, что в математических расчетах он медленнее C++. Но идет работа по улучшению скорости работы (интерпретатор 3.11 и 3.12).
- Когда делал прикладные программы на C++, то в журналах были горы ошибок и предупреждений, на Python-е - там пусто.
- Виртуальное окружение (интерпретатор и библиотеки указанных в файле
requirements.txt
версий) во многопользовательской системе - временная вынужденная мера, от которой по возможности надо уходить, потому что пользователям на клиентах дается ссылка на скрипт с файлового сервера, ставятся интерпретатор и используемые с ним библиотеки, но раздавать или делать дубликаты виртуального окружения со всеми переделками разработчика всем клиентам как-то не по фэншую.
На Windows Server 2019, 2022 ставим Python-ы по порядку v. 2.7, 3.5 ... 3.11 из в папки Q:\M$_Windows\Python
на сервере. К версии 3.12 пока есть вопросы.
Графические библиотеки для Python
-а в том числе:
- Использует tk, ttk и ttk+, который имеет ограниченные по нынешним временам возможности для творчества.
- Содержит встроенный интерпретатор
TCL
, скрипты на котором можно прикрутить к графической оболочке как функционал. - Для рисования макетов (эскизов) графической оболочки есть tk-builder , есть самодельный TkInter-Designer и даже WEB-дизайнер, а также другие свободные и платные дизайнеры разной свежести.
- Дополнительно может использовать tk, ttk и ttk+.
- Своеобразна тем, что макет (эскиз) в виде XML-ной разметки (не требует конвертации в какой-то свой ресурсный файл
*.gui, *.ui
) можно вынести из исходника во внешний файл или в XML-ное поле SQL-ной базы данных и на исполнении парсить его оттуда. В этом пошли дальше XUL и есть как бы заброс на простой и нетрудоемкий Solution Stack. - Макеты (эскизы) можно генерировать программно и хранить в базе не просто как BLOB-ы, а пропускать через схему. Это уже следующая фаза разработки.
- Проста, интересна.
- Имеет наборы стилей.
- Мало примеров.
- Используется в
Linux
-е в оконном мэнэджере Gnome. - pyGTK закрыта в 2011-м.
- На
Windows
пока не ставится. - Переехала на pyGObject и начиная с версии 3
GTK+
имеет ошибки. - Есть открытые и коммерческие дизайнеры, в том числе GTK Builder.
- Еще кривая.
- Неправильно отображает не-ASCII-кодировки.
- Не пропорцинально отображает виждеты в разных сочетаниях.
pyQt:
- Самая ходовая и функциональная. Вот неплохое видео по этой теме.
- Есть свободная и есть коммерческая.
- Можно вставлять виджеты и графику из других библиотек, например графику MatPlotLib, карту в виде подложки с Google Maps (см. статью), морскую карту с кораблями и самолетами.
- Макет (эскиз) рисуется и сохраняется 💾 XML-ной структурой в файле имя файла.ui или имя файла.gui комплектным дизайнером, который вызывается командой pyqt5-tools designer (версия 3.10 и более ранние) или pyqt6-tools designer (версия 3.11).
- Можно поставить отдельный коммерческий Qt Design Studio (более крутой, триалка на 10 дней).
- Можно поставить отдельный свободный QtDesigner (попроще, но его функционала пока достаточно).
- В этих дизайнерах можно рисовать макеты (эскизы) для других графических библиотек, но не слишком сложные и через доводку в XML-ном редакторе.
- Для привязки к виджетам функционала ресурсный файл конвертируется в исходник класса командой pyuic5 имя файла.ui -o имя файла.py или через меню дизайнера. Классы можно вынести в файл классов. В файле классов дописать функционал и сослаться на него в исходниках. Дополнительный функционал можно дописать в исходниках в наследуемых классах. Подробнее об этом см. Learning Python (Марк Лутц Изд 4 2011) часть 4 "Классы и ООП" стр. 693.
- Если функционал простенький и нечего не знает про функционал в исходниках, то его можно сделать на сигналах от виджетов в дизайнере на макете (эскизе), а в исходнике дать ссылку на его ресурсный файл.
- Генерировать и менять макеты (эскизы) можно также программно.
- Виджеты на них можно расставлять и менять программно.