Году в 98
catpad нашел в какой-то книге гениальную фразу "Браузер это универсальный клиент". Мы этой фразой прониклись и с тех пор пытались любой GUI делать с помощью браузера. В наше время ее истиность по-моему вызывать сомнений не может - у значительного числа людей браузер это едиственная запущенная программа.
Но я не об этом - я недавно понял, что такой подход, т.е. одна программа, которая может быть интерфейсом к чему угодно, не нов - так давным давно начал вести себя Emacs.
Но я не об этом - я недавно понял, что такой подход, т.е. одна программа, которая может быть интерфейсом к чему угодно, не нов - так давным давно начал вести себя Emacs.
no subject
Date: 2007-06-07 10:26 pm (UTC)Ну вот с Эклипсом то же самое. Явление нездоровое, потому что каждая такая универсальная штука обязательно получается убогой в каком-то смысле. Вот я, например, пользуюсь всё время Goolge Docs. С одной стороны удобно, но это всё-таки какой-то недо-Word, много чего не хватает.
То же самое в Эклипсе - для Джавы он идеален, но во многом другом - убожество. Хотя здесь это просто потому, что только Джаве они уделили столько времени и сил. А вот в броузере, я боюсь, сделать программы лучше уже не получится, там и так уже извращение на грани фантастики.
Вот, сейчас писал и понял, что же на самом деле мне не нравится во всей этой истории: это же какая-то полная путаница причинно-следственных связей получилась - броузер изначально не предназначен для интерактивного GUI (так же, как и весь http protocol). Но из него путём страшных извращений пытаются всё-таки такой полномасштабный GUI соорудить. И всё это вместо того, чтобы как-то радикально изменить технологию.
no subject
Date: 2007-06-07 10:39 pm (UTC)А зачем?
> То же самое в Эклипсе
Удивительно, что я, проработав 5 лет в ИБМ, ни разу живого Эклипса не видел
> И всё это вместо того, чтобы как-то радикально изменить технологию.
Поди измени, это ж надо сначала о стандарте договориться, потом еще заставить пользователей что-то новое сгрузить. А так все тихой сапой.
Хотя идея, что нужен новый протокол GUI-over-IP мне нравится. И чтоб открытый и простой, чтобы все могли сами своих клиентов писать.
no subject
Date: 2007-06-08 12:50 am (UTC)Ну всё за тем же: документы доступны отовсюду и никогда не теряются. Двух этих причин достаточно, чтобы только этим и пользоваться.
> Поди измени, это ж надо сначала о стандарте договориться...
А я не имею в виду ничего настолько радикального. Идеальным вариантом для меня было бы вот что:
1) Встроить в броузер такую штуку наподобие Java или Flash, но только чтобы она ни в коем случае не называлась плагином, а была бы именно частью броузера. Это, по-моему, очень важный психологический момент (ничего не надо загружать, всё существует по определению и концептуально является частью броузера).
2) Штука эта должна быть чем-то средним между Java и Flash, потому что оба они не соответствуют требованиям: Джава слишком уродливо выглядит и очень медленно грузится, а Flash наоборот слишком гламурный. Эта GUI-часть должна быстро грузиться и выглядеть точь-в-точь как native OS application.
И чтобы программировать на ней можно было на нормальном Джава-подобном языке.
А внутренний протокол пусть будет AJAX, сколько угодно.
Я не вижу, почему это нельзя сделать. Тот же Майкрософт - если он так боится, что Гугл отнимет у него Office и вообще Windows - пожалуйста, воплотите такую вещь, встройте её во все свои новые версии IE, договоритесь в конце концов с Firefox'ом - и будет всем универсальный клиент и полное щастье.
no subject
Date: 2007-06-08 05:30 am (UTC)А вот это кстати, возможно, заблждение. Люди уже прикыкли и look an feel'у т.н. "интернет"-аппликаций. Нативный гуй -- не всегда лучше.
no subject
Date: 2007-06-08 06:06 am (UTC)no subject
Date: 2007-06-08 06:29 am (UTC)no subject
Date: 2007-06-08 06:34 am (UTC)Если вы знаете такие технологии - расскажите.
no subject
Date: 2007-06-08 07:46 am (UTC)Интересно, можно ли от него перейти как-то к другим языкам. Писать например на JRuby, которые бы как-то через джаву компилировались бы в аякс.
no subject
Date: 2007-06-08 07:54 am (UTC)Спасибо за информацию!
no subject
Date: 2007-06-08 08:12 am (UTC)Теперь надо думать, что дальше, и куда это нас ведет.
no subject
Date: 2007-06-08 06:28 am (UTC)А чем это отличается от того, что уже всть в браузере ? Ваша "штука" называется джавасрипт. Ну разве что аппликации на нем не совсем нативно выглядят. А то, что писать на нем, может, и не так удобно. Так это дело наживное.
Ну и еще возникнут всякие другие языки, компилируемые в браузерный джаваскрипт. Сейчас в него джава вроде только компилируется через GWT. Но можно себе представить и какие-нибудь Руби с Питоном.
В результате браузер вырождается в javascript-engine, на котором бегут разные javascript-аппликации, загружаемые локально и из сети. Каковые пишутся на самых разных языках, а не только на самом javascript'е. (Собственно зародышами таких аппликаций являются гугловские "гаджеты" с их десктопа и google home page).
А когда такое произойдет, можно уже думать о смене underlying технологии и переходе от аякса к чему-нибудь большому, светлому и чистому.
Как-то так. Извиняюсь за спам.
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).
no subject
Date: 2007-06-08 05:17 am (UTC)И веб-сервисы кстати туда же.
То что технология должна поменяться наверное многие понимают. Но единого vision'а вроде бы пока ни у кого нету. Но что-то должно измениться.
То есть пока ныне существующая технология, пусть и покрытая толстым слоем страшных хаков, как-то выдерживает и не трескается, никто ничего менять не будет. Должно произойти "что-то" (compelling event), что бы заставило ее поменять.
Как скажем, сначала анимация, а потом видео и аудио стриминг обеспечили нишу флешу. Но это только ниша конечно.