LINUX.ORG.RU

Наилучшее средство для создания кросс- платформенного GUI?


0

0

  1. Qt 2598 (21%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Java/Swing 2098 (17%)

    ******************************************************************************************************************************************************************************************************************************************************************

  3. Tcl/Tk 1964 (16%)

    *************************************************************************************************************************************************************************************************************************************************

  4. Консоль forever! 1887 (15%)

    ****************************************************************************************************************************************************************************************************************************************

  5. Web-based 1804 (15%)

    ******************************************************************************************************************************************************************************************************************************

  6. Gtk+ 1090 (9%)

    **************************************************************************************************************************************

  7. wxWindows 353 (3%)

    *******************************************

  8. Другое 237 (2%)

    *****************************

  9. Python/tk 157 (1%)

    *******************

Всего голосов: 12188

★★★★★

Лично я предпочитаю писать web-based скрипты на PHP. ИМХО, этот язык предоставляет массу функций и фич для создания удобных комплексных приложений работающих под любыми браузерами на всевозможных платформах. Но безусловно существует масса других средств, каждое из которых разрабатывалдось на определенный класс задач. И конечно это дело личного вкуса. Прошу не рассматривать этот постинг как попытку начать flame на тему кто или что круче.

ВСЕХ С НАСТУПАЮЩИМ ! vmwaR.

anonymous
()

Qt, и только Qt... Если говорить именно о приложениях, а не о примочках :). Хотя МФЦ (надо отдать должное: неплохая штукендия) есть и под *nix, но дорого... А всё прочее - Джава, и.т.п. - бэйсики, млин... Что для интернета хорошо, то для приложения - смерть...
Дикси...

asoneofus
()

Мое авторитетное мнение -- что Java/Swing.

прежде всего потому что это малость бесплатнее чем QT. QT, конечно выигрывает по скорости, но, скажем, не все что нужно можно сделать с помощью qt -- хотя от релиза к релизу эта библиотека становится все более самодостаточной. Но java в целом всетаки cross-платформннее будет, Например -- при создании приложений интенсивно работающих с БД java опять будет предпочтительнее, ввиду того, что JDBC и прочие привязанные технологии производителями уже во всю и широко поддерживаются. Я так же считаю, что этот выбор также будет больше оправдан когда доделают QT/Swing -- в виду широкой распространенности qt на разных платформах это даст java больше возможностей для распростанения на другие платформы (сейчас из подобных интегрированных решений есть только Win32/Swing и Motif/Swing) кроме того QT и java и без того в настоящий момент находятся довольно в тесной интеграции друг с другом, особенно в свете встроенной в QT поддержки java-applets как widget'ов. QT конечно предпочтительнее когда речь идет о скорости, встроенности и т.д. -- но на мой взгляд будущее за тесной интеграцией этих технологий.

В качестве успешных примеров subj'а на Java/Swing могу привести -- StartOffice/OpenOffice, Matlab 6, Oracle Managment Console. Например -- благодаря тому что в Mathworks разработчикам моча в голову ударила сделать тесную интеграцию с Java начиная с 6й версии, Matlab for Unix (linux, solaris, hp-ux, Digital unix, irix и т.д.) обзавелся ГУЙом на java -- причем таким же как в Windows версии -- до этого unix версии были только консольные с motif'овской графической библиотекой.

Других известных примеров cross-platform GUI application API's на второе место можно поставить Motif -- самый известный пример это Visual SlickEditor (он есть подо все известные платформы, включая win32, *nix, mac, т.д. и при этом собран только на motif), но как правило Motiff используется для unix'овых/X11 приложений.

Ну а из qt наибольшей популярностью пользуются только QT/X11 и QT/Embedded. в первом случае это KDE и все такое, во втором -- активно продвигаемая игрушка от Sharp.

История покажет, кто кого.

svSHiFT
()

Честно говоря Java - самая кроссплотформанная игрушка (не зря столько денег вбухивали, хотя и чуть не умеро в зародыше) Но я голосовал за QT - мне просто оно как-то ближе.

P.S. Всем спасибо, всех с наступающим &:-)<///>

lionsoftware
()

Ili Gtk+ ili conole. Qt ne probowal , a web base ne dumau , shob mona bilo tam shoto serioznoe napisat.Hotia wse mozet bit - prosto ja nachal izuchat s vishe perecislenogo.

manowar ★★
()

Da pomojemu Java rulit po vsem parametram.

lsuxx
()

Люди, вот по поводу gtk - я тут недавно портировал одно приложение на нем под маздай, это ж сдохнуть можно... Там надо полтора десятка либ сначала найти, найти их порты под mingw, потом собрать их, либо найти уже собранные, но проблема в том, что портабельно написаны лишь некоторые избранные релизы этих либ, поэтому приходится напильником их старые портабельные релизы дорабатывать до примерно текущего состояния, которое нужно портируемой проге... Особенно много геморроя доставил gdk-pixbuf... И в результате что - очень обидно получилось... Портировалось все, кроме drag'n'drop'а - что в этом приложении ключевую роль абсолютно играет и без него - никак... Через пару дней поиска еще я нашел официальное заявление о том, что win32 OLE DND не поддерживается и поддерживаться до new stable major version вряд ли будет...

P.S. Приложение - Mindless Automaton.

GreyCat ★★
()

Что бы не говорили, но _реально_ используемых претендентов на кросс-платформенность всего трое -- это консоль, Web-based интерфейс и Java/Swing.
Всё остальное используется для обеспечения переносимости GUI слишком редко, чтобы назвать это серьёзным применением.
И исключения только подтверждают это правило.

Лично я -- за Swing ;). Плюсов -- куча. Минусы -- подтормаживает и требует установки JRE.

anonymous
()

Согласен, пример MATLAB 6 убеждает в эффективности явы, но блин! Как медленно оно работает даже на хорошей машине!
Так что извините, для меня скорость важнее - ergo Qt only!

rivares
()

Странно что {Tcl,Perl,Python}/Tk набрал так мало голосов. Хотя приложения получаются и не самые быстрые, но для большинства гуи приложений скорость и не важна, а что касается переносимости, то на каждой платформе выглядит как родное.

Писать достаточно легко(субъективное мнение конечно), все же гораздно легче, чем на Java или C++, может быть некий недостаток - открытый исходник, но и это решается с помощью дополнительных конверторов в Си, генерирующих вполне приемлимый код.

Не думаю что на каком-нибудь языке код создания кнопки выглядит меньше чем

pack [button .b -text ok]

так что стоит обратить внимание ина этот способ.

anonymous
()

Я проголосовал за tcl/tk, но я не вполне уверен, что на нем можно писать масштабные приложения. В языке tcl многого не хватает - типизации, четкой политики выделения и освобождения памяти, средств профилирования и т.д.

Можно было бы подумать о tk поверх других языков. Тут, правда, есть одно "но". Например, есть пакой пакет к tcl - blt. Он много чего содержит, в том числе и жизненно необходимые мне графики. Но, штука в том, что, допустим у меня есть биндинг tk->тот же питон, и есть blt->(tk,tcl). Чтобы поиметь blt->(tk,python), придется повторить всю ту работу, которая уже проделана для tk.

anonymous
()

А по мне так FOX (С++, www.fox-toolkit.org) - работает одинаково под виндами и юниксами, памяти жрет мало, быстрый, и писать на нем IMHO весьма удобно. Документация только кривая, по h-файлам ползать приходится.

boo_boo

anonymous
()

Вопрос людям пользующимся QT: как приложение портировать в Windows (коммерческое) ?

anonymous
()

> Документация только кривая, по h-файлам ползать

После gtk нам уже ничего не страшно :)

anonymous
()
Ответ на: комментарий от anonymous

>Вопрос людям пользующимся QT: как приложение портировать в Windows (коммерческое) ?
>anonymous (*) (2001-12-25 17:42:38.0)
1) Купить КуТю, если конечно, не пофигу патентная, лицензионная и прочая муйня... Во втором случае - загнать всё с помощью фри..
2а) Установить перл под виндой, или иметь две системы, потом забубенить тмаке (взять с сайта тролльтехов)
2б) Взять куТю 2.3. фри для вин32, но для неё предпочтительна работа с тыжувал студио (6.0)
3) И в путь....

В прочем пункты 2), 3) не очень актуальны при покупке - всё дадут и разжуют...

Успехов!

asoneofus
()

Однако web-based лидирует :-)
если бы в web-based еще была бы поддержка d'n'd, то никакая Java/Qt и все прочее нафиг не нужно было. А так - приходится изобретать убогие интерфейсы с <input type="..."> :-(
Но зато 100% кросс-платформенность, клиент-серверность и даже многозвенка делается легко, по скорости летает даже на модеме и еще много прикольных фич.

Anton_Khalikov
()

Надо определиться, что же такое Web-based интерфейс.

Если голый HTML времён начала веба, то сделать на нём что-нить приличное по интерфейсу и функциональности сложновато. Расскажите-ка plz, как нормально сделать аналоги tree control'ов и grid control'ов на HTML и без использования возможностей DHTML, JS и т.п. вещей? ;)
Сделать-то конечно можно, но это будет не слишком красиво и удобно.

С другой стороны, если под Web-based понимать всё, с чем может работать современный браузер (от JS и DHTML до Java и Flash), то тогда Web-интерфейс однозначно рулит. Другое дело, правильно ли будет называть это интерфейс "Web", т.к. работать он будет на 2-3-х браузерах.

Лично я предлагаю под "Web-based" понимать именно первый вариант.

anonymous
()

Я считаю что это web-based приложения на основе Java. Это настоящая кросплатформность!

anonymous
()
Ответ на: комментарий от Shadow

wxWindows dead?

Да, wxWindows действительно Хорошая штука. Мягко говоря, я удивлен, почему она в дауне (судя по текущим результатам опроса). Скорее всего от того, что мало пока народу ее юзала и поэтому плохо ее знает. Не смотря на всю ее красоту (как внешнюю, так и внутреннюю), глюков в ней пока предостаточно, да и кроссплатформенность не совсем кросс-... много чего приходится напильником для каждой платформы дорабатывать, что, конечно, отталкивает.

А Web -- своеобразная вешь. Там свои законы, много чего нет (из Гуевых фич), зато мозги ставит, заставляет хорошенько продумать структуру программы, подумать об эргономике... и реально кроссплатформенная

nikita
()

wxWindows not dead

Я голосовал за wxWindows, сам ее использую и считаю самой подходящей для кроссплатформенных приложений. Большой ее плюс в том, что она есть для Windows(свободно). Глюки в ней конечно имеются, но не смертельные, к тому же она развивается. Для тех кто пишет на скриптовых языках есть wxPython, по моему это лучше чем Tk. Тем кто не пробовал wxWindows очень советую...

anonymous
()

Да, кстати, я пробовал под windows wxWindows с mingw32 2.95.2 - g++ тормозил, но итоговый код был для меня абсолютно приемлемый.

Shadow ★★★★★
()

Чёрт, sorry за кривой subj...

Shadow ★★★★★
()

А как правильно писать кроссплатформенные консольные приложения?
Знаю, что есть ANSI.SYS для dos, есть и conio.h для unix,
может ещё что-нибудь получше?
_SJB_

anonymous
()

Вот правильная расшифровка понятия Web-based :

Web-based = HTML+JavaScript+Java(Applets/Servlets)+ немного Flash ;)

В итоге имеем Java on top & across с чем я нас всех и поздравляю :)

MrBool
()

Задачи совершенно разные...

Для текстовой информации (базы данных) достаточно чистого HTML,
чтобы упростить программу и утяжелить клиента можно и JavaScript добавить.

Для использования графики (игры, редакторы...) Web не подойдет.

Зачем изобретать что-то, если Web работает везде.

anonymous
()

Java для вэба - это правильно. Выучили, получили сертификат и катаете все на одном языке на легке. А все остальное к HTML - костыли.

anonymous
()

У web-based есть один маааленкий недостаток. Он не session-based, и работает всегда по запросам с клиента. Ну и естественно не каждый будет устанавливать web-сервер ради морды для локальной программы.

IMHO, настоящий кросс-платформенный GUI должен быть на чем-нибудь интерпретируемом или байт-кодном, как Java или Tcl.

anonymous
()

Да. Действительно странно, что скриптовые языки на пятом месте (пока, надеюсь).
Удобнее GUI писать на TK + TCL. Проверенно :-) это даже не обсуждается.

Действительно переносимый.

А про то, что надо: скорость, специфические фичи, работу Java/C/C++ --- все это в TCL/TK есть.

Нет проблем писать C программу с TK мордой или TCL/TK код который будет работать или _в_ или _с_ Java VM.

Посему однозначно выбираю TCL/TK.

Рекомендую посмотреть на этот язык. Мне сейчас могут возразить мол морда у него Motiff и не красивая. А я возражаю морду можно менять как угодно это совершенно не проблема и к тому же под виндами, маками, юниксами она использует нативный GUI (для UNIX это Motiff)

Korwin ★★★
()

2Korwin:
гонишь. Пою Юниксом свой GUI, абсолютно не связанный с Motif - просто выглядит так.
Есть же TkStep...

anonymous
()

А где же XFormer ГУЙ ФРИ паскаля!

cr0acker
()
Ответ на: комментарий от Korwin

2Korwin:

А нафига козе баян? ;)

Если я пишу на java, в которой есть Swing, то зачем мне морочить себе голову и писать GUI на неродной библиотеке, иметь траблы с установкой/работой/поддержкой этой либы на разных платформах и т.п.

anonymous
()

> А нафига козе баян? ;)

> Если я пишу на java, в которой есть Swing, то зачем мне морочить себе
> голову и писать GUI на неродной библиотеке, иметь траблы с
> установкой/работой/поддержкой этой либы на разных платформах и т.п.

Видимо я не так объяснил. Хотел сказать, что если писать на TCL/TK то потом без проблем можно объединить с новым или другим проектом на Java и на оборот. Работающий Java проект можно расширить за счет TCL/TK.

Korwin ★★★
()

2 Korwin:
Я активно использовал, использую и буду использовать Tcl/Tk, однако далеко не для всех случаев это подходит. Текущий проект я пишу на wxWindows, а wxPython --- это вообще прекрасная штука, гораздо лучше Python/Tk. Интересно, почему этого пункта нет в опросе?

DronK
()

На самом деле, семантика всех гуевых бибилиотек одинакова. Так что, может быть, следует не замыкаться на одной либе, а просто писать так, чтбы можно было подрубить любой конкретный гуй? Вон вим собирается с Xaw, gtk, motif и, может быть еще с чем-то. И при этом он вполне кроссплатформен.

Tcl я пользую, но мене он конкретно уже достал. Там, по-моему, многое делается через жопу. Таймер, например, я так и не понял как сделать, так чтоб не через after.

anonymous
()

А я вообще программировать не умею :))) Хочу научиться!!!

anonymous
()

Эээ...бобры! Позвольте и мне мяукнуть в копилку. Насколько я понимаю, одни
тут хвалят свой любимый ГУЙ, а другие - наиболее удобный/знакомый для
себя язык создания интерфейсов, который портирован еще хотя бы на одну
платформу окромя родной. Всерьез выдвигать какую-либу альтернативу Тсл,
как наиболее приспособленному к этому языку, ИМХО, эээ... мягко говоря,
не серьезно (фанатам Жабы советую посмотреть код родных ТСЛ/Тк-шных
демонстрашек). Это что касается языка (+ см. в конец этой телеги).
А вот виджетно-рисовальная либа должна на каждой платформе быть своя,
предоставляя стандартизованный единый АПИ для программера и привычный внеш.
вид для юзера, плюс отсутствие толстого-толстого слоя нафиг ненужного
кода (так и вижу Вайн в виде плагина к НетШкафу :)

А про я зЫки я вот еще чего хотел сказать, вернее вопросить:
А почему все как рыба об лед молчат про S-Lang? Прикрутить к нему ГУЙ,
скажем, тот же Тк (да хоть бедняжку Афину3Д, блин), и получим
кроссплатформенный, типированыый, байт-компилирующий, бесплатный,
компактный сабж. К тому же - без тяжелой врожденной ООП (ОО-Паранойи).
Или это я один такой вумный? :)))

anonymous
()

Errors such as <...> memory allocation errors are not recoverable...

Хороший язык...

anonymous
()

Я пью за Tcl/Tk. Пусть он и тормоз. ик. С новым годом. PS: за консоль я б тоже выпил - за curses, termcap и terminfo :)

ramatahatta
()

<p>Вообще-то вопрос хороший, сразу скажу, что проголосовал за Web-based

<p>Хочу немного помечтать на заданную тему. Думаю, что все читали статью vitus'a про интерфейсы? Вот как бы по мотивам:-))

<p>Короче, для того, чтобы сделать идеальный интерфейс, осталось сделать малость. Создать для броузеров некий плагин, который бы позволял принимать данные с локальной машины. Т.е. что-то типа <b>local-bin://usr/local/myprog</b>

<p>Ведь, если разобраться, то вся разница web-интерфейса и стандартного GUI в том, что ошибки и результаты появляются не сразу. А теперь представим себе, как это все будет.

<p>На локальной машине пользователь запускает только броузер. Все остальное он делает либо на удаленных серверах, либо на локальной машине. Во втором случае через наш плагин данные поступают в тот же броузер.

<p>Я понимаю, что это только мечты, ведь, как я понимаю, когда-то кто-то писал так же про Lisp-машины:-)), но все же. Лично мне очень бы хотелось.:-))

<div align=center style='color:red;'>Всех С Новым Годом!!</div>

nikonor
()

Что-то вы глупо пишете в своих комментах. Вопрос ведь не в том на чем вы пишете свои проги, а в том что лучше для написания кросплатформенных GUI. И причем тут тогда такие языки как Kilix и PHP? Хотя и можно PHP использовать в чем-то, так ведь это не средство для написания GUI в программах. Я выбрал Qt, хотя думал выбрать wxWindows или Tcl/Tk. Но все-таки Qt лучше документирован и более популярен. Что говорят и результаты опроса.

Если что-то уже писали на таких средствах, просьба пришлите мне, автору http://iscreen.dax.ru/

anonymous
()

Настоящие программеры пишут под железо а не под юзера:). Вывод - в
syslog

kirill_s
()

Консоль, конечно, фореве... Но как-то схему рисовать, смотреть на результаты моделирования... и.т.п. скучновато...
А уж что касаемо товарисЧей на Яве да ещё свинговой :), то люди наверное считают, что тут тормознутость не очень, но... - тады йой - мелкомягкие станут фореве, да ещё как! Они и асмом не гнушаются. А вообще голосование - левак, Йедем дас зайне. Если начнут прикладное ПО (САПРы, моделлеры и.т.п.) писать на джаве - то получится ж... Если ГУЙню всякую - то если понавароченей, то вероятно тоже... А вообще-то классический (анзишный) си фореве!... и неве...:)

asoneofus
()

Млинство всё это... Консоль, конечно, фореве... и даже ю-неве, но как схемку ввести? Результаты моделирования? Попроектировать?... Тяжеловатенько, да и консолька-то под юниксоидами даже разная, неуж говорить ещё о виндузятине... или о наладонниках - где её вообще .. ну почти нет. Тут, наверное говорить надо о классическом Си.., а не о терминальных дисциплинах+ термкап или терминфо.
Что касаемо веб-базед хи-хи-хи три раза... Ребят, неуж никто путное приложение под веб-базед замандорил? И не тормозёво пашет? и на одной машине? (ещё хи, а если приложение в автономе не пашет - то грошь ему цена - оно-ж При-Ло-Жение... к компу:)
ТЦЛ-ТК, вещчь имеющая место быть... но пока не знаю, не пробовал... хотя грят исклюКчительно гуёвая штука...
Яву, а ну её в яву... Мачкад, Опенофис - и прочее изрядно подерьмовели от их применения... Тормозюкость, на кой такая кросс... нужна, если приложение большую часть мв занято само-собой, а не решением задачи?...
А по результам видно, что тут люди не писавшие приложений голосуют (сорри, но именно приложения, а не примочки:))...

С Новым Годом!
Ё

asoneofus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.