[LJ2ME]Универсальный клиент

Jun. 7th, 2007 04:39 pm
gianthare: (Default)
[personal profile] gianthare
Году в 98 [livejournal.com profile] catpad нашел в какой-то книге гениальную фразу "Браузер это универсальный клиент". Мы этой фразой прониклись и с тех пор пытались любой GUI делать с помощью браузера. В наше время ее истиность по-моему вызывать сомнений не может - у значительного числа людей браузер это едиственная запущенная программа.
Но я не об этом - я недавно понял, что такой подход, т.е. одна программа, которая может быть интерфейсом к чему угодно, не нов - так давным давно начал вести себя Emacs.

Date: 2007-06-07 02:19 pm (UTC)
From: [identity profile] mopexod.livejournal.com
Где-то недавно прочел, что «Жопа – универсальный интерфейс. Через неё можно сделать все.»

Date: 2007-06-07 09:19 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Это сильно

Date: 2007-06-07 10:09 pm (UTC)
From: [identity profile] catpad.livejournal.com
Видимо, это были пророческие слова, потому что по-настоящему универсальным клиентом он стал только после распространения AJAXа, то есть на 5-6 лет позже.

Date: 2007-06-07 10:14 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Типа того. А ты эту фразу помнишь?
Но меня удивило, что этот процесс, когда одна программa пытается заменить все, уже один раз был. Как писал [livejournal.com profile] dimrub: "Посоветуйте мне редактор, но не Emacs, потому что операционная система у меня уже есть". В чем-то это все-таки не очень здоровое явление.

Date: 2007-06-07 10:26 pm (UTC)
From: [identity profile] catpad.livejournal.com
Фразу помню, откуда не помню.

Ну вот с Эклипсом то же самое. Явление нездоровое, потому что каждая такая универсальная штука обязательно получается убогой в каком-то смысле. Вот я, например, пользуюсь всё время Goolge Docs. С одной стороны удобно, но это всё-таки какой-то недо-Word, много чего не хватает.
То же самое в Эклипсе - для Джавы он идеален, но во многом другом - убожество. Хотя здесь это просто потому, что только Джаве они уделили столько времени и сил. А вот в броузере, я боюсь, сделать программы лучше уже не получится, там и так уже извращение на грани фантастики.

Вот, сейчас писал и понял, что же на самом деле мне не нравится во всей этой истории: это же какая-то полная путаница причинно-следственных связей получилась - броузер изначально не предназначен для интерактивного GUI (так же, как и весь http protocol). Но из него путём страшных извращений пытаются всё-таки такой полномасштабный GUI соорудить. И всё это вместо того, чтобы как-то радикально изменить технологию.

Date: 2007-06-07 10:39 pm (UTC)
From: [identity profile] gianthare.livejournal.com
> Вот я, например, пользуюсь всё время Goolge Docs.
А зачем?
> То же самое в Эклипсе
Удивительно, что я, проработав 5 лет в ИБМ, ни разу живого Эклипса не видел
> И всё это вместо того, чтобы как-то радикально изменить технологию.
Поди измени, это ж надо сначала о стандарте договориться, потом еще заставить пользователей что-то новое сгрузить. А так все тихой сапой.
Хотя идея, что нужен новый протокол GUI-over-IP мне нравится. И чтоб открытый и простой, чтобы все могли сами своих клиентов писать.

Date: 2007-06-08 12:50 am (UTC)
From: [identity profile] catpad.livejournal.com
> А зачем?
Ну всё за тем же: документы доступны отовсюду и никогда не теряются. Двух этих причин достаточно, чтобы только этим и пользоваться.

> Поди измени, это ж надо сначала о стандарте договориться...
А я не имею в виду ничего настолько радикального. Идеальным вариантом для меня было бы вот что:
1) Встроить в броузер такую штуку наподобие Java или Flash, но только чтобы она ни в коем случае не называлась плагином, а была бы именно частью броузера. Это, по-моему, очень важный психологический момент (ничего не надо загружать, всё существует по определению и концептуально является частью броузера).
2) Штука эта должна быть чем-то средним между Java и Flash, потому что оба они не соответствуют требованиям: Джава слишком уродливо выглядит и очень медленно грузится, а Flash наоборот слишком гламурный. Эта GUI-часть должна быстро грузиться и выглядеть точь-в-точь как native OS application.
И чтобы программировать на ней можно было на нормальном Джава-подобном языке.
А внутренний протокол пусть будет AJAX, сколько угодно.

Я не вижу, почему это нельзя сделать. Тот же Майкрософт - если он так боится, что Гугл отнимет у него Office и вообще Windows - пожалуйста, воплотите такую вещь, встройте её во все свои новые версии IE, договоритесь в конце концов с Firefox'ом - и будет всем универсальный клиент и полное щастье.

Date: 2007-06-08 05:04 am (UTC)
From: [identity profile] mikkim08.livejournal.com
Хотя идея, что нужен новый протокол GUI-over-IP мне нравится. И чтоб открытый и простой, чтобы все могли сами своих клиентов писать.

GUI over network кстати уже было, X называется. Вышло вроде неудачно.

Да и вообще, по-моему, это неправильная идея. Правильно, по-моему, это по сети передавать только б.-м. структурированные данные. А гуем будут заниматься бегущие в браузере аппликации.

Эта аппликации ("гаджеты") либо сгружаются автоматически с сети (навроде аплетов) либо изначально сбандлены с браузером. Причем один и тот же сайт может показываться разными "гаджетами" по-разному.

У браузеров будут разные "дистро": в зависимости от прибандленных к ним "гаджетов". Например я часто пользуюсь фликром, гуглом и ЖЖ, и поставлю себе бразуер с прибандленными к ним соответствующими "гаджетами".

Можно ли будет все это построить на ajax'е, как технологии ? Гугл вроде именно ajax толкает, так что может быть. Но это конечно только внутри. Программистам "гаджетов" никакого ajax'а конечно не видно.

Date: 2007-06-08 05:17 am (UTC)
From: [identity profile] mikkim08.livejournal.com
И всё это вместо того, чтобы как-то радикально изменить технологию.

И веб-сервисы кстати туда же.

То что технология должна поменяться наверное многие понимают. Но единого vision'а вроде бы пока ни у кого нету. Но что-то должно измениться.

То есть пока ныне существующая технология, пусть и покрытая толстым слоем страшных хаков, как-то выдерживает и не трескается, никто ничего менять не будет. Должно произойти "что-то" (compelling event), что бы заставило ее поменять.

Как скажем, сначала анимация, а потом видео и аудио стриминг обеспечили нишу флешу. Но это только ниша конечно.

Date: 2007-06-08 05:30 am (UTC)
From: [identity profile] mikkim08.livejournal.com
та GUI-часть должна быстро грузиться и выглядеть точь-в-точь как native OS application.

А вот это кстати, возможно, заблждение. Люди уже прикыкли и look an feel'у т.н. "интернет"-аппликаций. Нативный гуй -- не всегда лучше.

Date: 2007-06-08 06:06 am (UTC)
From: [identity profile] catpad.livejournal.com
Ну, пусть это будет какой угодно look-n-feel, лишь бы под ним не стоял JS+DHTML.

Date: 2007-06-08 06:28 am (UTC)
From: [identity profile] mikkim08.livejournal.com
А я не имею в виду ничего настолько радикального. Идеальным вариантом для меня было бы вот что:

А чем это отличается от того, что уже всть в браузере ? Ваша "штука" называется джавасрипт. Ну разве что аппликации на нем не совсем нативно выглядят. А то, что писать на нем, может, и не так удобно. Так это дело наживное.

Ну и еще возникнут всякие другие языки, компилируемые в браузерный джаваскрипт. Сейчас в него джава вроде только компилируется через GWT. Но можно себе представить и какие-нибудь Руби с Питоном.

В результате браузер вырождается в javascript-engine, на котором бегут разные javascript-аппликации, загружаемые локально и из сети. Каковые пишутся на самых разных языках, а не только на самом javascript'е. (Собственно зародышами таких аппликаций являются гугловские "гаджеты" с их десктопа и google home page).

А когда такое произойдет, можно уже думать о смене underlying технологии и переходе от аякса к чему-нибудь большому, светлому и чистому.

Как-то так. Извиняюсь за спам.

Date: 2007-06-08 06:29 am (UTC)
From: [identity profile] mikkim08.livejournal.com
А чем он мешает ? Если прямо на нем писать не надо.

Date: 2007-06-08 06:34 am (UTC)
From: [identity profile] catpad.livejournal.com
Если прямо на нём писать не надо, то ничем. Просто я не знаком с такими вещами. Всё, чего я бы хотел - это писать GUI прямо на Джаве (вставлять кнопки, куда мне надо, рисовать на Graphics, и т.д.) - и пусть это потом компилируется во что угодно, мне-то какое дело.
Если вы знаете такие технологии - расскажите.

Date: 2007-06-08 07:46 am (UTC)
From: [identity profile] mikkim08.livejournal.com
Так есть же GWT (http://code.google.com/webtoolkit) вроде.

Интересно, можно ли от него перейти как-то к другим языкам. Писать например на JRuby, которые бы как-то через джаву компилировались бы в аякс.

Date: 2007-06-08 07:54 am (UTC)
From: [identity profile] catpad.livejournal.com
А, надо же, я и не слышал о таком.
Спасибо за информацию!

Date: 2007-06-08 08:12 am (UTC)
From: [identity profile] mikkim08.livejournal.com
Пожалуйста. Он кстати open source.
Теперь надо думать, что дальше, и куда это нас ведет.

Date: 2007-06-09 10:43 am (UTC)
From: [identity profile] gianthare.livejournal.com
Х по-моему низкоуровневый довольно. Там ведь на уровне пикселей, нет?

Апплеты как-то воспринмаются как что-то изолированное от бразузера.
> один и тот же сайт может показываться разными "гаджетами" по-разному.
это уже XML какой-то

> У браузеров будут разные "дистро": в зависимости от прибандленных к ним "гаджетов"
скорее плагины, потому что кто ж заранее знает

> Программистам "гаджетов" никакого ajax'а конечно не видно.
хорошо бы

Date: 2007-06-09 02:12 pm (UTC)
From: [identity profile] mikkim08.livejournal.com
> Х по-моему низкоуровневый довольно. Там ведь на уровне пикселей, нет?

Это в смысле, что клиент говорит серверу "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'а конечно не видно.
< хорошо бы

Так как этому все и идет. Если уже не пришло.

Date: 2007-06-09 04:11 pm (UTC)
From: [identity profile] gianthare.livejournal.com
>> это уже XML какой-то
>Наверное.
Мой опыт работы с 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, но вся оконная часть реально выполняется у пользователя, а вся логика на сервере.

> Так как этому все и идет. Если уже не пришло.
Я не очень видимо в курсе последних технологий. Мне представлялось, что сейчас очень мног приходится делать "вручную"

Date: 2007-06-09 08:56 pm (UTC)
From: [identity profile] mikkim08.livejournal.com
> Мой опыт работы с XML скорее отрицательный - [...]

Может быть. Ну, пусть будет не XML, а какой-нибудь другой текстовый формат, пригодный для представления структурированных данных.

Главное, чтобы эти данные не содержали presentation logic
типа, комманд (draw window (pos=0,0; size=10,10)) или event'ов (button (id=0000) pressed).

Это мне так кажется.

> Видимо Вы правы, хотя не знаю, имеет ли Х понятие о кнопках
> или он говорит "mouse clicked at X,Y". [..]

Может и не имеет кстати.

> Я скорее думал о чем-то, что с точки зрения программиста
> выглядит как какой-нибудь swing, но вся оконная часть реально
> выполняется у пользователя, а вся логика на сервере.

Это мне и кажется сомнительным.
Интересно было бы в этой связи посмотреть на опыт (отрицательный) X11.

> Я не очень видимо в курсе последних технологий.
> Мне представлялось, что сейчас очень мног приходится делать "вручную"

Я и сам не в курсе. Но GWT же есть.

Date: 2007-06-09 08:57 pm (UTC)
From: [identity profile] mikkim08.livejournal.com
> Ну, пусть будет не XML, а какой-нибудь другой текстовый формат, ..

Ну да, сейчас же JSON в моде.

Date: 2007-06-10 06:24 pm (UTC)
From: [identity profile] mikkim08.livejournal.com
Я скорее думал о чем-то, что с точки зрения программиста выглядит как какой-нибудь swing, но вся оконная часть реально выполняется у пользователя, а вся логика на сервере.

Я еще раз об этом подумал, сегодня за обедом, и понял, почему мне эта идея не нравится.

По-моему, дело в том, что эта самая граница, между тем, что в гуе должно делаться на клиенте, а что на сервере, зависит от аппликации и для разных аппликаций очень разная. Например в бизнес-аппликации для заполнения формочек (то, чем я как раз занимаюсь), можно каждый клик возить по интернету. А вот в игрушке какой-нибудь уже нельзя. Поэтому эта граница должна быть подвижная. И двигать ее должна аппликация. Это, по-моему, основное требование к технологии remote gui.

Дальше уже можно подумать, какая технология для этого лучше подходит.

P.S. Заканчиваю спамить. Постараюсь свои умные мысли писать в своем журнале.

Date: 2007-06-10 06:45 pm (UTC)
From: [identity profile] gianthare.livejournal.com
Ну так, насколько я понимаю, это то как сейчас работает AJAX - программист каждый раз заново решает, что где будет выполняться и раздельно прграммирует интерфейс и логику, которая в браузере, и логику, которая на сервере. Есть в этом делении какая-то искуственность. И очень/слишком много работы вручную.
Зато отсутствие стандарта поощряет делать разный интерфейс для разных аппликаций. В моем подходе все быстро станет одинаковым, как все аппликации на Яве похожи.

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

Date: 2007-06-11 08:59 am (UTC)
From: [identity profile] mikkim08.livejournal.com
Да ладно спамить, зачем люди посты пишут, как ни для того, чтобы их комментировали.

ну хорошо, тогда я продолжу.

ajax это всего лишь какой-то набор хаков (зачеркнуто) технология. Что и как мы делаем с ajax'ом во многом зависит от нас. Скажем, если использовать GWT (см. моя ссылку catpad'у), то у всех аякс-аппликаций, на нем написанных, look and feel будет одинаковым.

В этих аппликациях граница между клиентом и сервером проводится явно. Но так как и клиент и сервер пишутся на джаве, это в принципе позволяет (по крайней мере в build-time), решать какая логика будет на сервере, а какая на клиенте. При наличии определенной методологии работы с GWT, разумеется.

Ваша модель например мне не очень нравится, но ее вроде тоже можно имплементировать на аяксе (e.g. с помощью GWT).

Profile

gianthare: (Default)
gianthare

February 2026

S M T W T F S
1234567
891011121314
15161718192021
222324 25 262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 6th, 2026 06:43 am
Powered by Dreamwidth Studios