Re: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: dsorokin Россия  
Дата: 14.02.15 04:50
Оценка: 1 (1) +2
Здравствуйте, Grienders, Вы писали:

G>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?


Только если незамысловатое GUI.

А так есть wxWidgets и Qt для C++, SWT — для Java, CAPI (LispWorks) — для Common Lisp, а еще в VisualWorks есть свой тулкит для Smalltalk и т.п.

Простые вещи будут выглядеть нативно. Чуть что сложное — все, никакой нативности.

G>Или под mac все равно прийдется писать под Swift/Cocoa, если хочется родного GUI?


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

Вопрос в том, так ли это важно?

Знаю одну программу, которая выглядят просто невыносимо ужасно и отвратительно, но ею пользуются, потому что она решает задачу, которая нужна пользователям, но тут многое зависит от специфики.

G>Какая из библиотек позволяет добиться наилучшего эффекта — QT?


Это прямой путь к холивару.

G>Скоро вроде как C# компилятор появится под Mac и Linux, потому что код .NET открыли, как думаете, будет ли GUI выглядеть достойно на этих платформа и как скоро это произойдет (думаю, может, не стоит мне начинать портировать довольно большую прогу на c C# на QT, потому что пока закончу, уже C# будет работать под линукс и мак?).


Сильно сомневаюсь.
Re: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: velkin Удмуртия https://kisa.biz
Дата: 13.02.15 15:06
Оценка: :)))
Здравствуйте, Grienders, Вы писали:

G>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?

G>Или под mac все равно прийдется писать под Swift/Cocoa, если хочется родного GUI?
G>Какая из библиотек позволяет добиться наилучшего эффекта — QT?

Да, именно Qt версии 4.8.x, вот прямо сейчас это 4.8.6. Не нужно использовать ни версию 3.x, ни уж тем более 5.x. Qt отрисовывает интерфейс исключительно своими средствами, но есть уникальные стили для операционок, которые работают только в них, потому что они используют палитры самой системы. Это позволяет добиться абсолютной схожести приложений с теми в которых применяются элементы управления из библиотек самой операционной системы.

Посмотрите Qt Widget Gallery, там ссылки на страницы где показаны как примерно будут выглядеть виджеты в конкретной операционной системе. Например, Macintosh Style Widget Gallery. Так же есть стили для Windows (XP, Vista), Linux (KDE, Gnome) и другие. Но самое интересное, можно создавать свои стили, причём ставить их потом на любое Qt приложение в дополнении к тем, что уже реализованы.

Но используя Qt 4.8.x получаешь не просто нативно выглядящие интерфейсы. Qt использует The Arthur Paint System.

A pixel-based engine for the Windows platform that is also used to draw onto QImages on all platforms
OpenGL on all platforms
PostScript on Linux, Unix, and Mac OS X
QuickDraw and CoreGraphics on Mac OS X
X11 and the X Render Extension on Linux and Unix systems

Представим, что рисовали с помощью Qt и понадобилось ускорение OpenGL. Для его активации достаточно одной строчки кода. Единственное, в тех примерах, ещё проверяют, действительно ли ваша видеокарта поддерживает OpenGL.

За Qt так же говорит то, что очень большую часть документации уже перевели на русский и можно читать как в браузере, так и внедрить её в Qt Creator.

G>Скоро вроде как C# компилятор появится под Mac и Linux, потому что код .NET открыли, как думаете, будет ли GUI выглядеть достойно на этих платформа и как скоро это произойдет (думаю, может, не стоит мне начинать портировать довольно большую прогу на c C# на QT, потому что пока закончу, уже C# будет работать под линукс и мак?).


Нет, не будет. Уже хорошо, если ваша программа потом запустится на новой винде. С дотнетом о Mac и Linux забудьте, этих операционок для вас нет и не будет. Более того, x86 под вопросом, никто не гарантирует, что потом вам не объявят, что мы теперь запускаемся только на amd64. Если на Qt вам с лёгкостью доступны arm, sparc и прочие архитектуры под множеством операционок, а программа всего лишь требует перекомпиляции, то с дотнетом уж извиняйте, сами выбирали.

У майкрософт есть множество способов избавляться от разработчиков, и это начиная от прекращение поддержки продукта, и кончая блокировкой на уровне ядра. Я бы на вашем месте не радовался, а задумался куда катится дотнет.

Microsoft открыл код компилятора Roslyn и пытается привлечь сообщество к участию в развитии .NET

Примечательно, что одновременно представлен новый проприетарный компилятор .NET Native, отличающийся поддержкой компиляции .NET проектов на языке C# в представление на языке C++, которое можно скомпилировать в исполняемый файл при помощи обычного C++ компилятора. При этом, в приложении сохраняются такие средства как сборка мусора, поддержка генериков и отражений, но скомпилированные программы демонстрируют на 60% более высокую скорость запуска и на 15% меньше потребляют памяти. Кроме того началось тестирование предварительной версии JIT-компилятора для .NET, который также является проприетарным проектом.


Всегда заканчивается тем, что C++ быстрее виртуальной машины, а всякие тесты не более чем заказуха. Более того, все нормальные библиотеки портированы с С++. Вот и вопрос, зачем пользоваться портированными библиотеками, когда можно сразу использовать их на C++.

https://ru.wikipedia.org/wiki/Microsoft_XNA

Из письма Microsoft от 31 января 2013 стало известно, что новые версии XNA более не будут разрабатываться и XNA не будет доступен в новом Metro интерфейсе Windows 8, а также на Windows 8 RT.


А с каким пафосом он выходил. Ещё раз повторю, хорошо если дотнет будет в будущих версиях винды. Лишить программиста конфетки так просто.
Re: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: agat50  
Дата: 12.02.15 19:33
Оценка: 16 (1)
Здравствуйте, Grienders, Вы писали:

G>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?


G>Или под mac все равно прийдется писать под Swift/Cocoa, если хочется родного GUI?


G>Какая из библиотек позволяет добиться наилучшего эффекта — QT?


G>Скоро вроде как C# компилятор появится под Mac и Linux, потому что код .NET открыли, как думаете, будет ли GUI выглядеть достойно на этих платформа и как скоро это произойдет (думаю, может, не стоит мне начинать портировать довольно большую прогу на c C# на QT, потому что пока закончу, уже C# будет работать под линукс и мак?).


https://github.com/picoe/Eto вот такое вроде есть, сам не юзал.
Re: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: c-smile Канада http://terrainformatica.com
Дата: 13.02.15 17:31
Оценка: 3 (1)
Здравствуйте, Grienders, Вы писали:

G>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?


Каждая платформа имеет свою UI model. Окна, их layout (toolbars и menu например) разные.
Если требование "выглядела как родная" является наиболее критическим, то другого варианта кроме как делать native UI
для каждой платформы нет.

G>Или под mac все равно прийдется писать под Swift/Cocoa, если хочется родного GUI?


Да.

G>Какая из библиотек позволяет добиться наилучшего эффекта — QT?


QT эмулирует поведение native UI элементов, т.е. это не native UI. Где-то качество эмуляции на уровне, а где-то видны уши KDE.

G>Скоро вроде как C# компилятор появится под Mac и Linux, потому что код .NET открыли, как думаете, будет ли GUI выглядеть достойно на этих платформа и как скоро это произойдет (думаю, может, не стоит мне начинать портировать довольно большую прогу на c C# на QT, потому что пока закончу, уже C# будет работать под линукс и мак?).


Нет, это мечта. Попытки делались не раз, например SWT в Java — native widgets завернутые в Java. Работает в принципе. Но даже c native widgets это не native UI.
Да и вообще, где та SWT сейчас.

Как решение: отказаться от "выглядела как родная для платформы" требования в пользу "выглядела как родная для пользователя".
Скажем приложение которое имеет bootstrap UI стиль (или какой другой "Web UI") который одинковый на всех платформах.

Вот пример кроссплатформенного bootstrap alike UI в том же Sciter:



Re[2]: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: c-smile Канада http://terrainformatica.com
Дата: 13.02.15 18:17
Оценка: 1 (1)
Здравствуйте, elw00d, Вы писали:

E>Здравствуйте, Grienders, Вы писали:


G>>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?


E>Сишарповый KeePass выглядит и на винде, и в линуксах,маках примерно одинаково. В принципе неплохо.


Там за "выглядеть одинаково" дальше по тексту "выглядела как родная" требование просматривается.

Это вот

как-то не совсем по родному (SuSe 11) выглядит я думаю.
Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: Grienders Земля  
Дата: 12.02.15 16:13
Оценка:
Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?

Или под mac все равно прийдется писать под Swift/Cocoa, если хочется родного GUI?

Какая из библиотек позволяет добиться наилучшего эффекта — QT?

Скоро вроде как C# компилятор появится под Mac и Linux, потому что код .NET открыли, как думаете, будет ли GUI выглядеть достойно на этих платформа и как скоро это произойдет (думаю, может, не стоит мне начинать портировать довольно большую прогу на c C# на QT, потому что пока закончу, уже C# будет работать под линукс и мак?).
Re: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: Vaako Украина  
Дата: 12.02.15 18:58
Оценка:
Здравствуйте, Grienders, Вы писали:


G>Скоро вроде как C# компилятор появится под Mac и Linux, потому что код .NET открыли, как думаете, будет ли GUI выглядеть достойно на этих платформа и как скоро это произойдет (думаю, может, не стоит мне начинать портировать довольно большую прогу на c C# на QT, потому что пока закончу, уже C# будет работать под линукс и мак?).


Хоть сам на С# пишу но ощущение что не скоро это всё перейдет на Mac и Linux, хотя хорошо бы было
Re: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: SаNNy Россия  
Дата: 12.02.15 19:14
Оценка:
Здравствуйте, Grienders, Вы писали:

G>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?


G>Или под mac все равно прийдется писать под Swift/Cocoa, если хочется родного GUI?


G>Какая из библиотек позволяет добиться наилучшего эффекта — QT?


на java может
Re: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: elw00d Россия http://elwood.su
Дата: 13.02.15 18:06
Оценка:
Здравствуйте, Grienders, Вы писали:

G>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?


Сишарповый KeePass выглядит и на винде, и в линуксах,маках примерно одинаково. В принципе неплохо.

IDEA тоже везде одинаково выглядит. Там, кажется, SWING с некоторой долей кастомного Look&Feel.

Можно ещё взять и наваять интерфейс на базе ncurses тоже будет кроссплатформенно и одинаково
Re[2]: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: Grienders Земля  
Дата: 14.02.15 01:34
Оценка:
Здравствуйте, elw00d, Вы писали:



E>Сишарповый KeePass выглядит и на винде, и в линуксах,маках примерно одинаково. В принципе неплохо.


Как он работает сейчас под линукс и макс, надо моно устанавливать?
Re[2]: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: Grienders Земля  
Дата: 14.02.15 05:02
Оценка:
Здравствуйте, dsorokin, Вы писали:


D>Знаю одну программу, которая выглядят просто невыносимо ужасно и отвратительно, но ею пользуются, потому что она решает задачу, которая нужна пользователям, но тут многое зависит от специфики.


что за прога?
Re[3]: Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: dsorokin Россия  
Дата: 14.02.15 07:20
Оценка:
Здравствуйте, Grienders, Вы писали:

G>Здравствуйте, dsorokin, Вы писали:


D>>Знаю одну программу, которая выглядят просто невыносимо ужасно и отвратительно, но ею пользуются, потому что она решает задачу, которая нужна пользователям, но тут многое зависит от специфики.


G>что за прога?


Vensim. Народ широко использует как рисовалку диаграмм CLD.
Кросс платформ-ть и GUI (+ C# под Linux и Mac)
От: bisoft Россия www.grapholite.com
Дата: 14.02.15 12:41
Оценка:
Здравствуйте, Grienders, Вы писали:

G>Может ли кроссплатформенная прога выглядеть одинаково хорошо на всех платформах? Вернее, чтобы на каждой из платформ она выглядела как родная?


G>Или под mac все равно прийдется писать под Swift/Cocoa, если хочется родного GUI?


G>Какая из библиотек позволяет добиться наилучшего эффекта — QT?


G>Скоро вроде как C# компилятор появится под Mac и Linux, потому что код .NET открыли, как думаете, будет ли GUI выглядеть достойно на этих платформа и как скоро это произойдет (думаю, может, не стоит мне начинать портировать довольно большую прогу на c C# на QT, потому что пока закончу, уже C# будет работать под линукс и мак?).


Вы уже сейчас можете писать на сишарпе под все указанные платформы используя xamarin. Но гуи придется писать под каждую платформу свой.
С уважением,
Андрей Мазуров.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.