Году в 98
catpad нашел в какой-то книге гениальную фразу "Браузер это универсальный клиент". Мы этой фразой прониклись и с тех пор пытались любой GUI делать с помощью браузера. В наше время ее истиность по-моему вызывать сомнений не может - у значительного числа людей браузер это едиственная запущенная программа.
Но я не об этом - я недавно понял, что такой подход, т.е. одна программа, которая может быть интерфейсом к чему угодно, не нов - так давным давно начал вести себя Emacs.
Но я не об этом - я недавно понял, что такой подход, т.е. одна программа, которая может быть интерфейсом к чему угодно, не нов - так давным давно начал вести себя Emacs.
no subject
Date: 2007-06-08 05:04 am (UTC)GUI over network кстати уже было, X называется. Вышло вроде неудачно.
Да и вообще, по-моему, это неправильная идея. Правильно, по-моему, это по сети передавать только б.-м. структурированные данные. А гуем будут заниматься бегущие в браузере аппликации.
Эта аппликации ("гаджеты") либо сгружаются автоматически с сети (навроде аплетов) либо изначально сбандлены с браузером. Причем один и тот же сайт может показываться разными "гаджетами" по-разному.
У браузеров будут разные "дистро": в зависимости от прибандленных к ним "гаджетов". Например я часто пользуюсь фликром, гуглом и ЖЖ, и поставлю себе бразуер с прибандленными к ним соответствующими "гаджетами".
Можно ли будет все это построить на ajax'е, как технологии ? Гугл вроде именно ajax толкает, так что может быть. Но это конечно только внутри. Программистам "гаджетов" никакого ajax'а конечно не видно.
no subject
Date: 2007-06-09 10:43 am (UTC)Апплеты как-то воспринмаются как что-то изолированное от бразузера.
> один и тот же сайт может показываться разными "гаджетами" по-разному.
это уже XML какой-то
> У браузеров будут разные "дистро": в зависимости от прибандленных к ним "гаджетов"
скорее плагины, потому что кто ж заранее знает
> Программистам "гаджетов" никакого ajax'а конечно не видно.
хорошо бы
no subject
Date: 2007-06-09 02:12 pm (UTC)Это в смысле, что клиент говорит серверу "set pixel (0,0) to color (0xff, 0xff, 0xff)" ?
Если так, то вроде нет. Оно, по-моему, по-другому работает. Так клиент говорит серверу что-то типа, "create button in widget (id=1234) : position (0,0), size (10, 10)". А сервер ему возвращает "new button (id=1235) created". А когда юзер кнопку нажал, сервер клиенту говорит "button (id=12345) pressed".
>> один и тот же сайт может показываться разными "гаджетами" по-разному.
> это уже XML какой-то
Наверное.
>> У браузеров будут разные "дистро": в зависимости от прибандленных к ним "гаджетов"
> скорее плагины, потому что кто ж заранее знает
И плагины тоже. Такое кстати уже есть.
>> Программистам "гаджетов" никакого ajax'а конечно не видно.
< хорошо бы
Так как этому все и идет. Если уже не пришло.
no subject
Date: 2007-06-09 04:11 pm (UTC)>Наверное.
Мой опыт работы с XML скорее отрицательный - вроде правильная идея и так положено , а на практике каждый раз непонятно в чем выигрыш по сравнению с custom plain-text based format и почему такая морока, когда ин пользуешься
"X provides the basic framework, or primitives, for building GUI environments: drawing and moving windows on the screen and interacting with a mouse and/or keyboard".
Видимо Вы правы, хотя не знаю, имеет ли Х понятие о кнопках или он говорит "mouse clicked at X,Y".
Я скорее думал о чем-то, что с точки зрения программиста выглядит как какой-нибудь swing, но вся оконная часть реально выполняется у пользователя, а вся логика на сервере.
> Так как этому все и идет. Если уже не пришло.
Я не очень видимо в курсе последних технологий. Мне представлялось, что сейчас очень мног приходится делать "вручную"
no subject
Date: 2007-06-09 08:56 pm (UTC)Может быть. Ну, пусть будет не XML, а какой-нибудь другой текстовый формат, пригодный для представления структурированных данных.
Главное, чтобы эти данные не содержали presentation logic
типа, комманд (draw window (pos=0,0; size=10,10)) или event'ов (button (id=0000) pressed).
Это мне так кажется.
> Видимо Вы правы, хотя не знаю, имеет ли Х понятие о кнопках
> или он говорит "mouse clicked at X,Y". [..]
Может и не имеет кстати.
> Я скорее думал о чем-то, что с точки зрения программиста
> выглядит как какой-нибудь swing, но вся оконная часть реально
> выполняется у пользователя, а вся логика на сервере.
Это мне и кажется сомнительным.
Интересно было бы в этой связи посмотреть на опыт (отрицательный) X11.
> Я не очень видимо в курсе последних технологий.
> Мне представлялось, что сейчас очень мног приходится делать "вручную"
Я и сам не в курсе. Но GWT же есть.
no subject
Date: 2007-06-09 08:57 pm (UTC)Ну да, сейчас же JSON в моде.
no subject
Date: 2007-06-10 06:24 pm (UTC)Я еще раз об этом подумал, сегодня за обедом, и понял, почему мне эта идея не нравится.
По-моему, дело в том, что эта самая граница, между тем, что в гуе должно делаться на клиенте, а что на сервере, зависит от аппликации и для разных аппликаций очень разная. Например в бизнес-аппликации для заполнения формочек (то, чем я как раз занимаюсь), можно каждый клик возить по интернету. А вот в игрушке какой-нибудь уже нельзя. Поэтому эта граница должна быть подвижная. И двигать ее должна аппликация. Это, по-моему, основное требование к технологии remote gui.
Дальше уже можно подумать, какая технология для этого лучше подходит.
P.S. Заканчиваю спамить. Постараюсь свои умные мысли писать в своем журнале.
no subject
Date: 2007-06-10 06:45 pm (UTC)Зато отсутствие стандарта поощряет делать разный интерфейс для разных аппликаций. В моем подходе все быстро станет одинаковым, как все аппликации на Яве похожи.
Да ладно спамить, зачем люди посты пишут, как ни для того, чтобы их комментировали.
no subject
Date: 2007-06-11 08:59 am (UTC)ну хорошо, тогда я продолжу.
ajax это всего лишь какой-то набор хаков (зачеркнуто) технология. Что и как мы делаем с ajax'ом во многом зависит от нас. Скажем, если использовать GWT (см. моя ссылку catpad'у), то у всех аякс-аппликаций, на нем написанных, look and feel будет одинаковым.
В этих аппликациях граница между клиентом и сервером проводится явно. Но так как и клиент и сервер пишутся на джаве, это в принципе позволяет (по крайней мере в build-time), решать какая логика будет на сервере, а какая на клиенте. При наличии определенной методологии работы с GWT, разумеется.
Ваша модель например мне не очень нравится, но ее вроде тоже можно имплементировать на аяксе (e.g. с помощью GWT).