Вверх ↑
Администрация
Ответов: 15294
Рейтинг: 1518
#1: 2018-01-15 20:45:06 ЛС | профиль | цитата
AlexKir, одно дело более менее осовременить готовые решения (перейти с delphi на fpc) и другое начать делать (или переделывать) пакет под совсем новую библиотеку. Я еще в прошлой теме по FPC говорил, что заниматься пакетом на Pascal под Windows не имеет никакого смысла, т.к. это изначально тупиковая ветвь развития. Мы живем уже в 2018 году, когда большая часть населения планеты ежедневно использует смартфоны гораздо чаще, чем ПК, а вы тут размышляете над тем, как сэкономить пару мегабайт кода для приложений под десктопы для ОС, перспективы которой тоже весьма туманны и зыбки. Пакет, который разрабатывается в 2018 году с нуля просто де факто обязан уметь одно из:
1) работать под все ОС - Windows, MacOS, Linux
2) работать в WEB
3) работать на одной из мобильных платформ - Android, iOS

Это конечно при условии, что вы не делаете специализированный пакет, аудитория которого заранее определена (например, GUI для программирования микроконтроллеров конкретной фирмы). Но такие варианты нет смысла тут рассматривать.

В этом ключе хорошей перспективой обладает .NET Mono - работает в Windows, MacOS, Linux, сейчас поддерживается самим Microsoft и за ним стоит .NET, который точно в ближайшие десятки лет никуда не денется.

Интересным в этом плане является QT, но только лишь с реализаций сборки в облаке, т.к. настройка окружения на своей машине и скорость сборки приложений это тот еще геморрой. Поддержка всех ОС там хоть и есть, но все таки имеются свои нюансы при запуске в окружениях, отличных от Linux, плюс размер готового приложения достаточно большой (десятки мегабайт).

Хороший вариант так же это пакет под Electron/NWJS - компоненты писать очень легко и быстро, собирается все мгновенно, работает на всех ОС без вопросов, возможно легко портировать в WEB, но размер конечного приложения очень большой (за сотню МБ), оперативной памяти жрет примерно столько же, запускается не всегда быстро, плюс сильно ограничены в возможностях и интеграции с ОС.

Пакет под Lazarus + LCL (родная библиотека элементов Lazarus) тоже интересный вариант, т.к. поддерживает кучу платформ, быстро собирается, легок в изучении, размер конечного приложения (в сравнении с вариантами выше) не большой. Но использование Pascal в качестве основного языка все таки вызывает вопросы.

И последнее, что можно рассматривать, это Java. С кросплатформенностью тоже все хорошо, размеры конечного приложения (без учета самого Java) достаточно малы, библиотек под все возможные задачи куча, если интеграции с ос вдруг не хватет, легко пишутся native модули на любом языке. Из минусов можно назвать лишь то, что изначально язык не рассчитан на gui приложения и все они не отличаются особым быстродействием, а часто и вовсе выбиваются из стиля остальных приложений системы. Чаще всего почему-то если GUI программа написана на java, то это означает, что интерфейс у нее будет вырви глазным. Бывают правда исключения в виде Eclipse, Netbeans и прочих монстров java мира, но там сотни человек работает и приводить их в пример не очень корректно. С учетом того, что .NET и C# делались с сильной оглядкой на Java в том числе, то причин отдать предпочтение Java (если уж мы выбираем языки с vm), а не Mono я лично не особо вижу.

PS: лично о своих предпочтениях я уже говорил в темах по Hion - мне в данный момент больше интересно WEB направление, которое развивается семимильными шагами и будет развиваться дальше. Интересно оно в первую очередь тем, что в своей работе я практически полностью использую WEB приложения и не вижу вообще никакого смысла ставить небольшие утилиты в систему для выполнения простых задач, когда любую из них можно открыть в браузере, который всё равно все 100% времени открыт и никогда не закрывается. Под те задачи, которые нельзя выполнить готовыми приложениями, я использую Hion, при этом из коробки получаю возможность "шарить" приложения другим людям и обновлять их сразу у всех, кто ими пользуется.
карма: 26
1
Голосовали:Nic