Узок их круг, страшно далеки они от народа

Aug 09, 2013 23:36


Кросспост из блога автора. Комментировать лучше там, но можно и тут

Вот берем Qt 5.1, тащим на Mac OS X 10.7 (так сложилось, это моя девелоперская машина), собираем согласно инструкции.
Далее собираем приложение с этой Qt, деплоим его тоже по инструкции, несем на Mac OS X 10.6 и получаем, получаем... сюрприз:
Неработающее приложение!
То что Read more... )

Программирование, qt

Leave a comment

cranequinier August 9 2013, 20:45:43 UTC
Я бабло зарабатываю кросплатформенностью и вебо-десктопо-переносимостью.

Qt два раза рассматривал, честно. По-моему он какой-то бесполезный, особенно в свете нынешней живости CEF.

Reply

alextutubalin August 10 2013, 05:54:34 UTC
Я не знаю, что такое CEF.

А Qt - просто берет и работает, у меня #fdef __APPLE__ очень мало в проектах, хотя вот потихоньку набирается.

Другой вопрос, что на эппловские гайдлайны интерфейса я ложил.

Reply

kika August 10 2013, 09:09:44 UTC
CEF это то что ты выкинул из Qt ради сборки на 10.6 - webkit. Предлагается тебе открыть окошко с этим вебкитом и дальше программировать на HTML5.

Как человек, HTML5 проект которого уже перевалил за 8К чистых строк на кофескрипте и 5К строк HTML+CSS я могу тебе сказать что по уровню развития это примерно как виндовые тулкиты в середине 90-х годов. Очень всё, э, своеобразно и меняется буквально каждый день. Но очень интересно, опять же как в начале-середине 90-х :-)

Reply

alextutubalin August 10 2013, 09:21:40 UTC
Я даже допускаю, что гуй на HTML5 станет несколько попроще в программировании (и сильно другим на вид).

Но что мне делать с остальными 90%-ми программы? Ну хорошо, пусть даже 75%. Тоже на яваскрипте?

Вместе с тем, есть вот pics.io, даже пишут что финансирование получили, интересно....

Reply

kika August 10 2013, 10:05:44 UTC
я игрался с dcraw в бровзере, это конечно совершенно непригодно пока ни для чего. при том что быстрый рендер уже вполне есть, но вот собственно матан пока неподъемно тяжел. яваскрипт можно произвести из чего угодно, для чего есть LLVM при помощи тулзы под названием Emscripten, которая перемывает выхлоп LLVM в некоторое жутко выглядящее подмножество яваскрипта под названием Asm.js.

сделать проявку чисто на GLSL, имхо, невозможно (тогда можно было бы поселить ее в WebGL, который бежит на GPU и со скоростью у него все хорошо).

Reply

alextutubalin August 10 2013, 12:36:03 UTC
Кроме WebGL уже есть WebCL. И Гугель экспериментирует с NACL.

То есть теоретически все даже есть. Практически же - я это пока на нефритовом стержне вращал.

Reply

kika August 10 2013, 20:35:44 UTC
Не, WebGL на самом деле есть (с оговорками), а WebCL "есть" :-)

Но это одна проблема, гораздо бОльшая, имхо - это неподходящесть CSS box model (layout engine заточенный под верстку) для построения гуя. Одно дело когда мы пишем фреймворк, рассчитанный на полное отсутствие лейаута на нижнем слое (Win32 API), а совсем другое - когда надо бороться с концептуально "вражеской" системой. Там столько граблей разложено, что уй. И вот эту проблему, имхо, никто и не собирается решать.

Reply

cranequinier August 11 2013, 05:38:03 UTC
> Я даже допускаю, что гуй на HTML5 станет несколько попроще в программировании (и сильно другим на вид).

Достаточно очевидно, что в 2013-м году по сравнению с HTML+JS любой другой UI - тотальное г-но. Как в смысле результата, так и в смысле скорости разработки.

И прикинь - у тебя получается сразу мало что кросплатформенный результат, так ещё и десктопно-вебовый.

Reply

alextutubalin August 11 2013, 06:12:54 UTC
Я задал другой вопрос: что делать с остальным кодом то?

Сам по себе UI меня не сильно напрягает. Ну UI, ну спрограммировал, это занимает время, но не требует думанья над ним.

Reply

cranequinier August 12 2013, 03:29:46 UTC
> Я задал другой вопрос: что делать с остальным кодом то?

Я не понимаю вопроса. Обычно всё кроме UI и так кроссплатформенное, по-умолчанию. Единственная не-UI-шная библиотека, которую мне доводилось втыкать специально за кроссплатформенность, это curl. И то я его уже вроде отовсюду выкинул.

Что ты используешь из Qt кроме UI, и зачем?

Reply

alextutubalin August 12 2013, 04:48:19 UTC
> Что ты используешь из Qt кроме UI, и зачем?

Сеть (по мелочи), мультипоточность (thread pools и упрощенные версии его же в виде map-reduce и просто map), таймеры (по мелочи), хранение настроек, семафоры-мьютексы.
Использовал бы и атомарные операции, но они мне нужны на совсем нижнем уровне, который без Qt тоже должен работать.

Но мой вопрос был про другое. Если у меня UI на JS(+HTML/CSS), а логика - на C++, то придется же писать некий промежуточный уровень, который параметры из C++ вытащит в JS и наоборот? Вот, не хочу!

Reply

cranequinier August 12 2013, 15:56:59 UTC
> Если у меня UI на JS(+HTML/CSS), а логика - на C++, то придется же писать некий промежуточный уровень, который параметры из C++ вытащит в JS и наоборот? Вот, не хочу!

Этот уровень уже написан много раз, по-разному, на все вкусы и размеры, писать его заново не обязательно.

См.напр
https://code.google.com/p/chromiumembedded/

Даже чиста для виндов CEF регулярно побеждает в рабочих дискуссиях CEF vs. IWebBrowser с разными обвязками, что как бы говорит нам, что это действительно хороший инструмент.

Reply

alextutubalin August 12 2013, 16:06:33 UTC
В смысле, "написан"?

Вот у меня есть C++-ная библиотека. Объект у которого есть методы и данные.

Как мне получить этот объект "внутри" яваскрипта? Ну там скормить ему файл, подождать пока прожует, потом он выплюнет 400 мегабайт (например) RGB-битмепа, который я хочу показать пользователю. Позумить, покрутить и все такое (сейчас я это делаю OpenGL-ем).
Сгенерировать JPEG и скормить его этому CEF-у? Херня же какая-то....

Дискуссия CEF vs IWebBrowser, равно как и "вебовость" приложения меня совершенно не волнует. У меня приложение для быстрого жевания гигабайтов фоточек.

Reply

cranequinier August 12 2013, 18:15:41 UTC
> В смысле, "написан ( ... )

Reply

alextutubalin August 12 2013, 18:29:01 UTC
Я все это прочитал и все равно не понимаю, что я выиграю (обсуждать lossless PNG, имелся в виду, вероятно, нежатый, я не хочу)?

Что потеряю - выше написано (в перечислении того, что я беру из Qt). Thread pool, Map/Reduce, общий одинаковый и работающий интерфейс к OpenGL, много всего.

Reply

cranequinier August 12 2013, 18:40:42 UTC
> Я все это прочитал и все равно не понимаю, что я выиграю

Ты выиграешь уплывание существенной части твоего продукта в очень высококачественную живую среду (HTML и CEF) из фиговатой и умирающей (Qt).

> обсуждать lossless PNG, имелся в виду, вероятно, нежатый, я не хочу

Имелся ввиду именно lossless. PNG сжимает внутри себя deflate-ом от zip-а. Непонятно, почему именно его ты не хочешь обсуждать, отличный формат для внутреннего обмена.

> Что потеряю - выше написано (в перечислении того, что я беру из Qt). Thread pool, Map/Reduce, общий одинаковый и работающий интерфейс к OpenGL, много всего.

Как-то ты это всё очень детально обсуждаешь, я бы даже сказал серьезно. Обычно когда человеку советуют выбросить нах глюкавый M$ Виндоуз и перейти на правильный кошерный Линукс ответ бывает короче и конкретнее.

Понятно что менять в живой программе базовую UI+ библиотеку на что-то совершенно другое как самый минимум очень лень.

Reply


Leave a comment

Up