Доброго времени,
помогите определиться с выбором языка для написания программ со следующими нюансами:
1) Windows only (Xp, 7, 10, 11,..);
2) Без предварительной установки фреймворков для машине пользователя приложения;
3) Приложение компилируемое (желательно для portable использования);
4) Приложения с Gui (достаточно WinFroms 32). Также в основном работа с массивами, regexp и диском;
5) Желательно иметь IDE и бесплатные библиотеки для минимизации кода;
6) Достаточно возможностей процедурного языка, требований к производительности нет;
7) "Модность" и перспективность языка не важны. Важнее удобство и простота пользования (С++ не вариант).
Знаком с VB.Net и он вполне подходит, но непонятно какую одну версию .Net использовать для WinXp-Win11+
Думаю посмотреть в сторону Delphi, но совсем не знаю что там сейчас происходит.
В идеале если бы была возможность компилировать Perl или Python в portable EXE Win32..
Зачем это вообще нужно под XP? Это уже лютый некрофилизм. Как в прочем и Windows 7 уже.
Я бы смотрел только на Windows 10-11 (хотя последняя пока под большим вопросом, но все равно на нее смотреть поидетсч) и .Net 5-6 в "исполнении" C#.
есть некоторые неширокораспространенные категории софта, где все отлично работает без обновлений уже 15 лет на Core2Duo и некоторые немолодые пользователи и не помышляют об апгрейде) хотя WinXp наверно все таки перебор в 2022..
А чем обоснована такая широта операционных систем?
Если выкинуть из списка XP, то можно спокойно взять C# или vbnet + .net 6
А вообще для полного покрытия всех ОС нет одного фреймворка, тк:
7-11: можно использовать .NET 6
XP: Можно использовать .NET FW 4 или 3.5. Но при этом 3.5 надо дополнительно руками включать на более новых ОС, а на 11 его вроде совсем нет.
На счёт современных версий Delphi не уверен, но там точно будут проблемы с библиотеками.
Василий Банников, есть несколько пакетных менеджеров. Но смысла в них особого не вижу и сам не использую. Есть гит. Клонируешь себе, ставишь и всё.
В Делфи не нужно в каждый проект отдельно ставить библиотеки. Поставил раз, всё, собирай, работай. Зашёл в гит, затянул изменения, обновил библиотеку одной кнопкой.
Ну и есть штатный менеджер пакетов. Который позволяет и автоматом ставить зависимости (GetIt)
Carburn, проверил доступные компы и самое древнее что обнаружил это Win7 со встроенным NetFamework 4.5.0. Учитывая что поддержку NET6 LTS до 2025 обещают как минимум, то с учетом обратной поддержки 4.5 выглядит самым удобным вариантом для таких как я. Если бы сразу начинал с Delphi, то на нем еще долго можно было бы оставаться, если задачи позволяют. А уходить на него сейчас немного сомнительно)
Zebr21, обратная поддержка это значит, что если стоит .NET 6, то он запустит приложение написанное под .net framework 4.5. Разрабатывать надо под .net framework 4.5.
Попробую вечером что-нить простое откомпилить в visual studio community 2022 под .net 4.5.0 и запустить на старом компе с Win7. Мне кажется шансы 50/50 несмотря на заявленную обратную поддержку)
Carburn, что "в смысле"? Ни то ни другое НЕ компилируют питон. Ты получаешь самораспаковывающийся архив, в котором всё лежит, если правильно собрать. И это говно не гарантирует штатную работу, потому что ЭТО НЕ КОМПИЛЯЦИЯ.
Perl2Exe is a command line program for converting Perl scripts to executable files. This allows you to create stand alone programs in Perl that do not require the Perl interpreter.
Еще для Perl есть Cava Packager (2012 г последняя версия).
Проверил несколько вариантов на совместимость на разных компах, мало ли кому интересно будет.
1) Win10x64 с VS2022; 2) Win10x64 чистый; 3) Win7Sp1x64 чистый; 4) Win11 под рукой не оказалось(
Простая форма WinForm x32 с несколькими элементами, скомпилированная в EXE.
a) Lazarus 2.012 + Free Pascal. Отлично работает везде. Похоже самый универсальный вариант для винды. Жалко литературы маловато по нему(
б) VS2022 C#10 Net FW 4.5. Работает везде. FW хоть и не развивается, но еще долго можно пользоваться думаю. Хотя если поддержку FW уберут например в Win12, то будет неприятно.. С другой стороны с MS станется и поддержку WinApi32 в Win12 убрать)
в) VS2022 C#10 NET6 или NET Core3.1. Работает только после установки соответствующих фреймворков (Net FW4.5 недостаточно).
г) Python3.6 + py2exe. Работает везде, но даже простая форма Tk тащит за собой 900+ мелких файлов. Такое себе решение для portable..
С большими проектами видимо будет все сложнее, но это уже другая история)
В целом выводы у меня такие - надеяться что твой софт отработает 10 лет на одном компе это очень оптимистично)
Возможно по суммарным затратам выгоднее писать на свежем и актуальном и каждые несколько лет обновлять код вслед за новыми фреймворками, нежели пытаться выбрать инструмент с долгосрочной поддержкой от ОС..Только вот в этой схеме нужен специально обученный человек, который будет следить за версиями софта и фреймворков у пользователей и объяснять им почему вдруг все перестало работать при обновлении.
PS: Паскалю в любом случае респект)
д) RAD Studio CE 10.4 + Delphi 10.4.2 Sydney Community Edition работает так же как и а).
Что Win32, что Win64. С виду IDE вообще мало отличаются, только RAD в 4 раза больше места занимает.
Zebr21, у среды больше возможностей, так и у языка тоже. Плюс обновления и поддержка куда чаще и шире.
Плюс, VCL поддерживает лучше работу с WinAPI и нативным отображением.