#qt #кроссплатформенность #qt_faq
Уже давно существуют виртуальные машины (платформы) вроде Java или того же .NET, которые поддерживают достаточно большое количество аппаратных архитектур, и имеют реализации на самых различных исполняемых средах (включая Embedded). Почему же тогда появляются программные продукты вроде того же QT, в которые вбухивается куча труда и денег, просто чтобы заставить запускаться программы на разных платформах? В чем сенс? Немного информации к размышлению - Why aren't more desktop apps written with Qt? [closed]
Ответы
Ответ 1
Qt был и есть и скорее всего будет, потому что еще есть такие странные люди, которые пишут программы на С++ (представляете себе! и это в 21 веке!) и пишут не без успеха. В том числе и программы с GUI. А Qt делает это и еще много других манипуляций с С++ просто удовольствием. Кроме того, как было замечено, он очень удачно дополняет стандартную библиотеку С++. А писать на С++ будут еще очень долго, потому что есть масса задач, где он (и подобные низкоуровневые языки) не заменим ни джвой, ни шарпом. По поводу VM. На джаве на настоящий момент (насколько я знаю, могу ошибаться) самый прогрессивный стандартный способ создания GUI - Swing. Работа с ней до крайности гемморойная, сама тяжелая, а интерфейсы выглядят динозаврами. Поэтому GUI на ней пишутся еще реже, чем на Qt. .Net - очень плотно завязана на винду. Хотя есть Mono, но создание GUI на ней под никсы (насколько помню) отличается от винды, поскольку используется GTK+ => пропадает переносимость. Да и под линями на моно программ совсем мало. Не пошло оно там. Есть масса привязок Qt к разным языкам, самая качественная - к Питону. Но есть и к той же джаве (хотя и не полная). Так что Qt - это класс. И еще: не забывайте про KDE !Ответ 2
Qt появился раньше, чем появился .net. Qt - это фреймворк для С++. Программы, написанные на С++ работают быстрее, чем аналоги на java. .NET - это фреймворк для C# Qt - это фреймворк для C++Ответ 3
ну хотя бы потому что это зрелый качественный продукт для кросс-платформенной разработки с обширной документацией, сформировавшимся сообществом. Плюс к тому открытый код, широкие возможности для разработки визуальных интерфейсов, ну и бесплатность опять же. .NET в отличие от сабжа - не кроссплатформенный продут, да и появился лет на пять позже Qt, как было справедливо замечено выше. Кроме того нужно учитывать, что в отличие от Java и C#, чьи стандартные библиотеки имеют широчайшие наборы классов на все случаи жизни, С++ этим похвастаться не может, что не без успеха способен исправить Qt. З.Ы. Вероятно, сам факт его существования доставляет вам какие-то неудобства?Ответ 4
Я бы помимо всего еще не забывал, что программирование как таковое существует дольше чем java с C#, а значит на более старых языках уже скопилось очень много наработок (алгоритмов, бизнеслогики, да и просто готовых программ), которые в случае перехода массово на более новые языки придется либо выкидывать и переписывать с нуля, либо делать какую-то прослойку, которая тоже будет дополнительно замедлять работу и вносить свою специфику.
Комментариев нет:
Отправить комментарий