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

★★★★★

Ответ на: комментарий от eskape

а вот моя машина раком не встала (PIII 550/196Мб), скорость загрузки сайта - как у обычного, без java. Так что сайт очень даже порядочный.

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

to eskape (*) (2002-01-12 12:15:38.0):

> О Боже! кликнул интереса ради - так машина на 1,5
> минуты раком встала... cel433/128mb/W2k. Интернет
> - по радиоканалу, скорость порядка 80Кб/с... и
> _ЭТО_ Вы предлагаете в качестве светлого будущего?

Странно, у меня DSL=80Kb/s и все просто летает и ничто
раком не встает.
Уважаемый поставьте Linux иначе Вам действительно
светлого будущего не видать :)

MrBool
()

Не тормозите, люди. Если Gtk+ - это лучшее средство для межплатформенных GUI, то я пишу стихи лучше ПУШКИНА. Gtk - только для *NIX. Так какая тут кроссплатформенность. Те кто так считают - полные раздолбаи.

anonymous
()

Результаты накрутили: за 2 дня до этого gtk был в середине списка,
а теперь первый, однако:)

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

2anonymous (*) (2002-01-13 16:07:52.0):
Нифига. На сайте, где GTK+ for Win32, зашевилились.
Кто бы еще печать прикрутил ;)

ska
()

Господа, противники web-based, что-то в основном ваши аргументы катятся в сторону невозможности создания CAD и проч. подобной софтины.
Но давайте вернемся на грешную землю - чего больше в _обычных_ конорах юзается - бухгалтерия + склады или CAD ? ИМХО - первое. И в данном случае web-based - практически идеальная весчь для кросс-платформенной разработки. И для подобных задач, ДЕЙСТВИТЕЛЬНО кроме броузера ничего больше и не надо. И, как не смешно, ту же накладную можно через <table>...</table> нарисовать и совсем не нужно для этого вызывать MSWord, как тут кто-то пытается ...
Вобщем, не страдайте фигней. Для каждой задачи есть свое решение, причем не одно. Кстати, высказывавшимся выше "профессионалам" стоит об этом не забывать.

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

2Anton_Khalikov :

Расскажи plz, как всё-таки сделать _кроссплатформенные_ и _удобные_ tree & grid control'ы на web-интерфейсе.
Лично я слабо представляю себе более-менее нормальное приложение без них, тем более - офисное.

anonymous
()

Хакнули сайт... Точнее результаты... Дерьмо на лопате получается... Консоль - фореверщики хоть по-умному делали, а ГТК (туристы фиговы) - ломом часы, как обычно, наручные ремонтируют... не снимая с руки...
теперь туфта а не результ...

Пока, раз лажа попёрла - делать здесь нефига...

asoneofus
()

Сделать можно, только исполняется это на сервере, а там на чем угодно пиши. Открытый протокол обмена нужен, а не tree & grid control'ы на Delphi. Совершенно другой "anonymous".

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

Гриды вообще давить надо, а чтобы представит нормальное приложение без них, надо хоть немного представлять себе, что такое дизайн пользовательского интерфейса, ты уж меня извини, анонимозный брат.

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

2anonymous (2002-01-15 05:15:20.0)

Дешёвая отмазка, брат! ;)

Приведи примеры.

anonymous
()

какие тебе примеры надо? что значит нормальное, тем более офисное приложение? POST - нормальное приложение? на фига там гриды? на фига там деревья? а ежли у тебя распределенная и весьма широкая в географическом смысле система -- не задолбаешься данные для заполнения этих самых гридов тягать? я вот смотрел тут finnair'овскую распределенку -- прикинь, ни гридов тебе, ни деревьев, а все работает, и хорошо, зараза работает, причем как в финке, так и тут. Все дела -- набор команд и минимальный отклик системы -- ничего лишнего, зато и работнику не надо скроллить бесконечные формы и на всякие там глупости отвлекаться. Знаю вот еще могутные системы -- те вообще в эмуляции VT-100 работают, и ничего, удобно тем, кто работает, и системы, поверь, более, чем нормальные.

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

Элементарно, береш Qt под вынь, сырцы твоей апликахи, билдиш и... О чудо!!!! ;)

а если ты имел в виду бинарники, ну так покупай версию твоей апликахи под вынь, бинарной совместимости нет ни у кого, кроме байткода жавы и интерпритаторов

Olexa
()

2 Olexa

С потоками что будем делать при перетаскивании исходников из Linux'a в Windows? Условной компиляцией урабатывать? Это не кроссплатформенность.

Полуденный Бес

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

2anonymous (2002-01-15 11:52:59.0):

1. Наглядные.
2. Нормальное - что-нить типа бухгалтерии.
3,4,5. Не видел. Ссылку дай.
6. Не задолбаюсь. Ибо нужно тянуть только те данные, которые в данный момент видит пользователь. Не больше и не меньше. Ну может быть ещё в фоне подкачивать в кэш +- одну страничку, чтобы быстрее отображалось при перемещении.

Остальной бред: заодно предлагаю выкинуть наX%# /bin/ls, ибо она - самый главный генератор данных в табличном виде. Лучше уж получить одной командой список инодов, а потом для каждого инода вызывать другую команду для просмотра его параметров. ;)

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

>Ха , нашёл я хак - постав в бровсере стартовую страничку :
>http://www.linux.org.ru/vote.jsp?voteid=16&vote=154
>и открой его пару сотен раз. Вот те и весь хак тут ни ума ни софта , ни >хера не нада.

Зачем так сложно ?
Все гораздо проще......
----------------------------- CUT HERE -------------------------------
while [ -d ~hunter ] ; do
w3c "http://www.linux.org.ru/vote.jsp?voteid=16&vote=150"; >/dev/null ;
done
----------------------------- CUT HERE -------------------------------

JAVA/SWING is the BEST solution for creating cross-platform GUI ! :-)))

hunterua
()

Я сказал ни ума , ни хера , а тут хоть хер надо , то шо я сказал - любой идиот это под любой вын сдэлает .

anonymous
()

М-у-д-а-к-и Вы все одним словом и детский сад.
Люди высказаться хотели, а Вы п-и-п-и-с-ь-к-а-м-и стали меряться.
А за WEB-based. наследуемые приложения куда денете?
Завернув вывод в html можно отсрочить их смерть.

anonymous
()

Sorry for typing English. I cannot type cyrillic fast enough.
I think GTK is best choice. When GTK 2.0 will be released
it will rock! GTK offers some very nice features:
 a) libGlade for loading interface definitions
 b) flexible theme support
 c) nice oop framework (better than Qt).
 b) tons of language bindings. Don't want to build your GUI in C ?
   Choose C++,Python,Perl,Ruby etc.
 c) it's seems to be quite portable now (However I haven't checked
non-unix targets)

  P.S. Also XUL idea seems to be interesting. It's very portable,
themeable, XML based, but currently very slow framework.

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

xe, кайфовый ре получился. 1. так я тебе о наглядном и писал. 2. а с чем-ниюудь сложнее бугалтерии ты работал? Если нет, то вопросов больше нет -- не потому, что в клинику, а просто ты действительно не понимаешь, о чем я говорю. 3. что, ни одного POST не видел? Я ж говорю, учись, вот тебе и ссылка. POST -- point of sale terminal. просто пример системы, не требующий тех элементов, о которых ты говорил. остальное, о чем я писал -- закрытые корпоративные системы, на них ссылок не бывает. vt-100 -- это не обязательно /bin/ls, или что ты имел в виду? 6. вопрос в том, что пользователю надо видеть и что для этого нужно.

anonymous
()

Translation:
Какая разница на чем писать - главное чтобы писать один раз и чтобы оно везде работало. Кросплатворменнее C или C++ трудно что-нибудь придумать. Ну а виртуальные машины никогда не будуть использовать железки на всю катушку.

Консоль нуна развивать? а детишкам (юзерам) раздавать для потехи GUI, Windows, разукрашки? пластиковые игрушки да резиновые пищащие молотки - чтобы себя не поубивали.

anonymous (*) (2002-01-16 13:19:11.0)

asoneofus :) foreve!

asoneofus
()

Прочитав статьи дискусии, мне показалось, что большинство сообщений гласят: всё дерьмо, вот только ... класс! Почти нет примеров реализации subj, или хотябы краткого упоминания о функциональности. Я не имею большого опыта в построении подобных проэктов, но кое-что реализовал. Информационная Служба Банка (остатки по счетам клиентов, движение средств) - Web-based + java servlet. Несложно, но с любой платформы, любым броузером доступно.

anonymous
()

А игрушку приличную (и по графике тоже, хотя бы более или менее, хотя бы графику уровня UO) кроссплатформенную слабо написать? :)

Питон штука хорошая, но тормозная... Я уже на форуме писал, попробуйте тривиальный тест: сложить миллиард случайных чисел под Питоном и, скажем, под Перлом и засечь время, за которое это делается. Я когда это сделал, погрустнел зело... А на Jave я не пробовал, но наверняка тоже найдутся энтузиасты, тем более, что софтина простая. Тест, конечно, прмитивный, но показатель.

Часто ведь удобство приложения не только в гуй (кстати, знаете, что значит "гуй" в китайской мифологии? :)), но и в скорость работы...

CybOrc
()

>кстати, знаете, что значит "гуй" в китайской мифологии?
>CybOrc (*) (2002-01-18 12:55:20.0)

И????? Что??? Не томи, отвечай :):)....

asoneofus
()

Гуй --- душа умершего в добуддистском Китае. В буддистском --- житель ада. Делились на кучи разновидностей. :) Кто-то детей кушал, кто-то жертв тигру скармливал, кто-то топил. И невзирая на плат... на национальность, язык и пол. :)

Кстати, я еще раз провел тесты. И с явой... Даже си попробовал. Вот тут-то я и выпал в осадок. Может, я что-то не так делал? Цикл вида:

for (i = 0; i < 1000000000; i++) { a = i + 23; }

В начале и в конце фиксируем время в переменных и находим разницу... Ы... КЮ!

CybOrc
()

Прошу ответить для ламеров и прочих околокомпутерных личностей и не очень: сколько приблизительно человек в Мире и в Росии могут понять то, что написано в этом форуме? С точностью плюс-минус 100 тыс. чел.

С уважением и преклонением перед програмёрами.

Просто чел.

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

Полностью с Вами согласен относительно "хорошего для Интернет". Интернет и локальные приложения решают разные задачи. Интернет - прежде всего БАЗА ДАННЫХ !!! Всё остальное вторично.

gik
()

Ага. Тогда телевизор --- это средство для передачи футбольных матчей. Все остальное вторично. :)

CybOrc
()

А я-то думал, что интернет это сеть...:)

asoneofus
()

2 CybOrc

Ну так и как средствА по быстродействию распределились?

Полуденный Бес

anonymous
()

2CybOrc:
напиши плиз результаты теста,
(если не сложно без сленга и поконкретнее - чем время замерял: 
секундомером или программно :) )
кстати, что-то я аж заинтересовался подобными тестами,
хочу покрутить на яве графику например и сложение RND - чисел ...
если не забуду - напишу результат
с уважением - paranoid.

anonymous
()

Пора уже новый опрос вляпать. Этот кроме искажения реальности ничего не дает. Хотя что сделать, если такие человеки сюда приходят, с искажениями.

anonymous
()

Пробежимся. tk, Java, Python - интерпретаторы (хотя с Javой что-то делали, но суть осталась) Далеко на них не уйдешь. Qt1 - выглядел хорошо, был достаточно быстрым, но... Web- см. выше. Для текста это ничего, но о программах стоит задуматься. Как-то я проверил: поставил mozillу (почти чистая Java) на Pent166 16Mb Ram. (под винды).Как Вы думаете, чем это закончилось? Qt2. Медленноват, но жить можно. Поэтому я Kylix (сейчас 2 oe) использую. Однако Kylix - заведомо неудачное решение. Qt - на с++, с паскалевскими классами несовместим. Но: С++ - известный тормоз. Помимо того, что доказывали, почему КДЕ не может не тормозить, сборка тех же кде-либ заняла ~6 ч (P225MMX, 62 M RAM).

gtk+ выглядит не очень (для пользователя).Может, со вторым будет лучше, но сейчас я его недолюбливаю. На нем сделан Lazarus. Еще хуже выглядят XForms. Правда, для них был неплохой дизайнер, но после kylix ide эта проблема отпала.

Хорошей идеей были fpgfx+fpgui. Вот только замерли они на месте (почти на нуле). А у меня руки не доходят дальше их вести. Делал кое-что. Но пока ничего очень рабочего не вышло. wxWindows пока не пробовал.

FoodTechnologist
()

kdelibs 3-и (2.96 пока) + Qt 3-и собираются с хлп GCC 3.0.3
C :)-300-64M - 5 часов
PIII-667-256M - 2 часа
PIII-667-768M - час с мелочью...
Любое приложение, класса ТыЖувалСтудио, либо КДевелоп - раза в 4 меньше, так что проблем особых нет...
А Киликс - это порнуха, порочащая КуТи...

asoneofus
()

о быстродействия: я решил не усложнять дело использованием генератора случайных чисел, ибо реализация его может несколько отличаться в разных языках. Машинка использовалась рабочая, весьма слабенькая.

Тексты Питона и Перла примитивны:
test.pl:

###########################################
#!/usr/bin/perl -w

use strict;

my ($a, $st, $et);

$st = time;
for (my $i = 0; $i < 50000000; $i++)
{
$a = $i + 23;
}
$et = time;
print (($et - $st) . "\n");

__END__
############################################

$ ./test.pl
55

test.py:
############################################
#!/usr/bin/python

from time import time

st = time()
i = 0
while (i < 50000000):
i = i + 1
a = i + 23
et = time()
print int(et - st);
############################################

$ ./test.py
174

К сожалению, питон пользовался версии 1.5.2, но, насколько я помню, результаты тестов для 2.0 практически не отличаются. Перл использовался 5.6.1. Таким образом, питон в арифметике слабее перла в разы, что, кстати, мне не очень понятно...

Теперь штучки интереснее:
Тест Java (использовались компилятор и VM IBMJava2):
############################################
class test
{
public static void main(String argv[])
{
int i, j;
int a;
long time = System.currentTimeMillis();
for (j = 0; j < 10; j++)
{
for (i = 0; i < 1000000000; i++)
{
a = i + j * 23;
}
}
time = System.currentTimeMillis() - time;
System.out.println(time);
}
}
#########################################

$ /opt/IBMJava2-13/bin/java test
46384

Прошу обратить внимание, что время получено в миллисекундах. Итого примерно 46 секунд.

Теперь то же самое на C:
#########################################
#include <stdio.h>
#include <time.h>

int main()
{
int i, j;
int a;
time_t t;
t = time(NULL);
for (j = 0; j < 10; j++)
{
for (i = 0; i < 1000000000; i++)
{
a = i + j * 23;
}
}
printf("%lf\n", difftime(time(NULL), t));
}
#########################################

$ gcc test.c -o test
$ ./test
186.000000
$ gcc -O2 -march=i686 test.c -o test
$ ./test
46.000000

К сожалению, миллисекунды не знаю, как на сях брать. Но, мне думается, это не принципиально. Программки гонял я не один раз, результаты постоянно получались с примерно одинаковыми отношениями. Для достоверности тесты следовало бы прогнать поочередно хотя бы десяток раз, чтобы показать, что нет никаких внешних накладок, но, думаю, желающие могут это сделать.

CybOrc
()

Питоновский код, разумеется, перед выполнением
стоит отформатировать:

#!/usr/bin/python

from time import time

st = time()
i = 0
while (i < 50000000):
    i = i + 1
    a = i + 23
et = time()
print int(et - st);

Прошу прощения, слегка покорежило...

CybOrc
()

>>Любое приложение, класса ТыЖувалСтудио, либо КДевелоп - раза в 4 меньше, так что проблем особых нет... Ха! Время компиляции небольшой проги должно быть порядка ... МИНУТЫ. Иначе это очень сбивает с толку при разработке. Допустим, написал я программу. Но я, как это ни странно, человек, поэтому допустил десятка два ошибок. (и компиляции, и исполнения). Все девелопы прекрасно начнут конфигурировать ее. Надо пойти, попить чаю. Потом ошибок будет. Не понимаю, как так можно работать. Да и использовал парочку сомнительных конструкций, для проверки которых специально и компилю собираемую программу.

FoodTechnologist
()

>Ха! Время компиляции небольшой проги должно быть порядка ... МИНУТЫ
Вижуалстудио - не небольшая прога.... А довольно нехилый проект, как и к-девелоп... А простые проги минуту и компилятся, ребилды - побольше (естессьно, чем более толстое приложение :)
Мэйк, классная вещЧь...

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

CybOrc, ты где программированию учился, сынок? А что с чем ты сравниваешь?
Программа на перл и питон отличается от сишной и жабовской.

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

>CybOrc, ты где программированию учился, сынок? А что с чем ты сравниваешь?
>Программа на перл и питон отличается от сишной и жабовской.

Чего чувак сказал? Кому сказал? Типа, "КибОрг, ты что чувак, белое и чёрное - это разные цвета, а вода ваааще мокрая..." :) - ясен пень, уж киборку то и не знать...

Господа ананимусы читают, очевидно, с трудом... Ещё хуже думают...

asoneofus
()

тот же тест, но питон 2.1, перл 5.6.1

python tesp.py
57

python -O test.py
51

perl test.pl
32

pdima
()

Есть хороший аргумент за Java: посмотрите на время ее выполнения и сравните с C. :) Есть одно но: Java от Sun вроде бы похуже, чем от IBM.

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

>Меньше пить надо, придурок.
>anonymous (*) (2002-01-27 08:46:41.0)

Анальные нимусы ещё и за трезвый образ жизни, типа хоть мозгов нет, да и спрятались за ник, так теперь моралью брать пытаются... Флеймер пустой...

Не в тему, сорри...

GDGA тест, нарисовать полных катров с:
пирамидкой, шариком, кубом - освещение не изменяется...
разрешение 1024х768
кадров/сек
40 Qt
17 Java (к сож. Сановская)

... Ктоб формализовал тесты: вычислительный, графика, общение с БД... :)

asoneofus
()

Я бы дома погонял тест с IBM Java... Исходники тестов имеются (для QT тоже желательно, ибо машинки по мощности могут отличаться)?

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

CybOrc
()

Скорость расчётов, да ещё и с целыми числами, у джавы и С достаточно близки. Что для меня, достаточно долго работавшего с С, было шоком. Хотя, если разобраться, то можно понять, почему всё так.
В С компилятор создаёт код в машинных кодах, который и выполняется. В джаве JIT-компилятор, работающий во время выполнения, создаёт тот же машинный код. Так что скорости хочешь-не хочешь получаются очень близки.

НО! ;))

1). Прога на джаве кушает больше памяти, чем прога на С (особенно заметно для небольших приложений), что сказывается при работе на машине, где мало оперативки. Т.е. на такой машине джава будет ТОРМОЗИТЬ.
2). Swing, который сейчас позиционируется как единственно правильное средство для разработки GUI для джавы, самостоятельно прорисовывает все элементы управления. Даже если стоит native look & feel. Соответственно, никакое аппаратное ускорение никаких операций не используется. Что и тормозит прогу со Swing'ом.
3). Нередко глупые программеры начинают создавать объекты пачками. Типа:
for(int i=0;i<1000;++i) {
Obj theObj = new Obj(i);
theObj.doSomething();
}
За счёт этого получается жуткий тормозняк. Если же вынести создание объекта за цикл, то всё будет пучком.
То же и для GUI: вместо того, чтобы создавать частоиспользуемое окно при каждом открытии, можно создать его один раз и изменять/показывать при необходимости.

Мораль: если руки кривые, то тормозит будет всё, что угодно -- хоть прога на С, хоть на джаве. Если же писать грамотно, то скорости прог по РАСЧЁТУ чего-либо будут близки.
Вобщем если хотите сравнивать, то сначала определитесь, что же вы хотите сравнивать. А то можно протестировать не скорость проги на джаве, а скорость работы драйвера для /dev/null ;)

Кстати, тут кто-то просил нормальных реальных прог на Java. Смотрите, например, на NetBeans, Eclipse и Together ControlCenter. Последняя - даже на Swing. Если машина более-менее современная (>P3 500MHz, RAM >128Mb), то вполне комфортно работается. ;))

anonymous
()

> 1) Прога на джаве кушает больше памяти, чем прога на С > (особенно заметно для небольших приложений), что сказывается > при работе на машине, где мало оперативки. Т.е. на такой > машине джава будет ТОРМОЗИТЬ.

А на 16 мегабайтах будет тормозить не только Java. :) А уж на 1 даже Дум не пойдет. :) У меня на домашнем компе гиг уже довольно давно болтается, и, думаю, это почти норма при теперешних ценах на память.

Для больших проектов объем памяти, потребный для Java и C++, будет мало отличаться.

А с моралью абсолютно согласен :)

CybOrc
()

Народ вы вообще опопсели... Консоль вот что нам всем надо... Вынь попса... Линух тоже попсеет :( Жизнь сукс :(

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