Skip to content

Latest commit

 

History

History
90 lines (67 loc) · 16.3 KB

Languages.md

File metadata and controls

90 lines (67 loc) · 16.3 KB

Среда разработки pyCharm 🇳🇱 просто идеальна 📚 Professional (платная, нужна для Django и автоматического тестирования, коннектится в серверам СУБД и кое-как выполняет автономные запросы) и Community (бесплатная, ее возможностей пока достаточно).

Процедурные языки программирования

Tcl 💬:

  • Применяется в основном с середины 1990-х и до середины 2000-х на ORACLE Solaris.
  • Рисование макетов (эскизов) изначально не предусматривалось. Графика пишется сразу в исходниках на Tk.
  • Позднее для их рисования и привязки к их виджетам скриптов на TCL применяется tkBuilder (есть в папаке Q:\M$_Windows\Tcl\tkBuilder (IDE for Tk) на сервере, см. снимок экрана ниже), Komodo и GUI Builder.
  • Начиная с Tcl 8.5 появился ttk (tk с темами).

tkBuilder Начало 4

На 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 комплектный с ним).

Python 💬 🇳🇱 :

  • Перехватил инициативу у выше перечисленных.
  • Имеет необъятные возможности благодаря богатству типов данных и разработанным под него библиотекам.
  • Надежно доминирует 📈 📊 в прикладном программировании.
  • Есть комплектные библиотеки и есть библиотеки устанавливаемые дополнительно (свой набор для каждого интерпретатора). Но интерпретаторы и библиотеки желательно по отдельности не обновлять - возможны глюки.
  • Есть мнение, что в математических расчетах он медленнее 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-а в том числе:

tkinter 🗯️ 🗯️:

  • Использует tk, ttk и ttk+, который имеет ограниченные по нынешним временам возможности для творчества.
  • Содержит встроенный интерпретатор TCL, скрипты на котором можно прикрутить к графической оболочке как функционал.
  • Для рисования макетов (эскизов) графической оболочки есть tk-builder , есть самодельный TkInter-Designer и даже WEB-дизайнер, а также другие свободные и платные дизайнеры разной свежести.

tkvue 💬 :

  • Дополнительно может использовать tk, ttk и ttk+.
  • Своеобразна тем, что макет (эскиз) в виде XML-ной разметки (не требует конвертации в какой-то свой ресурсный файл *.gui, *.ui) можно вынести из исходника во внешний файл или в XML-ное поле SQL-ной базы данных и на исполнении парсить его оттуда. В этом пошли дальше XUL и есть как бы заброс на простой и нетрудоемкий Solution Stack.
  • Макеты (эскизы) можно генерировать программно и хранить в базе не просто как BLOB-ы, а пропускать через схему. Это уже следующая фаза разработки.

pySimpleGUI :

  • Проста, интересна.
  • Имеет наборы стилей.
  • Мало примеров.

Gtk и Gtk+:

  • Используется в Linux-е в оконном мэнэджере Gnome.
  • pyGTK закрыта в 2011-м.
  • На Windows пока не ставится.
  • Переехала на pyGObject и начиная с версии 3 GTK+ имеет ошибки.
  • Есть открытые и коммерческие дизайнеры, в том числе GTK Builder.

wxPython:

  • Еще кривая.
  • Неправильно отображает не-ASCII-кодировки.
  • Не пропорцинально отображает виждеты в разных сочетаниях.

pyQt:

  • Самая ходовая и функциональная. Вот неплохое видео по этой теме.
  • Есть свободная и есть коммерческая.
  • Можно вставлять виджеты и графику из других библиотек, например графику MatPlotLib, карту в виде подложки с Google Maps (см. статью), морскую карту с кораблями и самолетами.
  • Макет (эскиз) рисуется и сохраняется 💾 XML-ной структурой в файле имя файла.ui или имя файла.gui комплектным дизайнером, который вызывается командой pyqt5-tools designer (версия 3.10 и более ранние) или pyqt6-tools designer (версия 3.11).
  • Можно поставить отдельный коммерческий Qt Design Studio (более крутой, триалка на 10 дней).
  • Можно поставить отдельный свободный QtDesigner (попроще, но его функционала пока достаточно).

QtDesigner версия

Запуск

  • В этих дизайнерах можно рисовать макеты (эскизы) для других графических библиотек, но не слишком сложные и через доводку в XML-ном редакторе.
  • Для привязки к виджетам функционала ресурсный файл конвертируется в исходник класса командой pyuic5 имя файла.ui -o имя файла.py или через меню дизайнера. Классы можно вынести в файл классов. В файле классов дописать функционал и сослаться на него в исходниках. Дополнительный функционал можно дописать в исходниках в наследуемых классах. Подробнее об этом см. Learning Python (Марк Лутц Изд 4 2011) часть 4 "Классы и ООП" стр. 693.
  • Если функционал простенький и нечего не знает про функционал в исходниках, то его можно сделать на сигналах от виджетов в дизайнере на макете (эскизе), а в исходнике дать ссылку на его ресурсный файл.
  • Генерировать и менять макеты (эскизы) можно также программно.
  • Виджеты на них можно расставлять и менять программно.

Макеты на ресурсных файлах