LINUX.ORG.RU

ОС и сайты будущего [моё ИМХО]

 ,


0

1

Пока тут в соседнем треде обсуждают веб 3.0, изложу-ка я уже свои мысли, которые давно у меня копились в голове, но никак не получалось их структурировать. Вдруг кто оценит.

Disclaimer: автор данного поста весьма плохо разбирается в теории, не говоря уж о практике

На мой субъективный взгляд, развитие современных операционных систем заходит в тупик. Всё сильнее прослеживается тенденция превращения системы в пускалку браузера, в котором уже выполняется большинство повседневных задач. Облачные сервисы и социальные сети прочно вошли в обиход многих пользователей, и всё это весьма плохо интегрировано в ОС, оставаясь где-то внутри браузера.
С другой стороны можно наблюдать мобильные ОС, где на замену сайтам созданы клиенты к тем же социальным сетям и облачным хранилищам, и эти клиенты уже куда удобнее в использовании (как минимум лучшей интеграцией в ОС).
Разве это не замечательно — заменить сайты на локальные приложения с обменом данными с серверами? Для чего же насиловать JS и HTML, изобретая всё новые костыли и всё сильнее удаляясь от натива, получив взамен дизайн «кто во что горазд» и страшные тормоза?

Добро пожаловать в моё видение будущего ОС и веба:

  • Никаких сайтов. Операционная система пускает браузер. Браузер запускает приложения и сервисы, максимально абстрагированные от внутреннего устройства ОС, используя API самого браузера.
  • Сам браузер — это связка оконного менеджера, тулкита и стандартного интерфейса (типа стартовой страницы).
  • Интерфейс приложений пишется на декларативном языке, логика на скриптовом, библиотеки, требующие оптимизации, (в идеале) компилируются в язык типа LLVM, который транслировался бы в бинарный код уже на машине клиента; если такое невозможно, то распространяются в виде бинарных пакетов для конкретных платформ, на которых запускается браузер.
  • Приложение может работать в двух режимах: удалённом и локальном. В удалённом режиме приложение хранится на сервере, клиент получает файл интерфейса, браузер его отрисовывает, взаимодействие между интерфейсом и библиотеками происходит через какой-нибудь WebSocket. Как только мы хотим загрузить приложение себе на локалхост, чтобы можно было работать с ним в оффлайне, браузер получает и хранит у себя связку интерфейса и логики приложения, с определённой периодичностью опрашивая сервер на наличие новой версии.

Важный момент — максимальная абстракция приложений в браузере от ОС при сильной привязке к архитектуре браузера. Т.е. в идеале приложения одинаково работают хоть под линуксом, хоть под виндой, просто внутри браузера, за которым не видно остальной ОС, который по сути своей подменял бы графический интерфейс той ОС, которая его запустила (если таковой вообще был).
Язык написания интерфейсов должен быть абстрагирован от пикселей в пользу физических величин типа тех же сантиметров. При этом создающий дизайн должен сам учитывать пропорции экрана, размеры и банальные интерфейсы взаимодействия пользователя и системы (будь то тачскрин, трекпад, мышка, клавиатура или даже в отдельных случаях геймад — учитывать надо как можно большее количество вариантов).
Сам браузер должен быть хорошо масштабируем под самые разные устройства. Для упрощения масштабирования приложений крайне желательно экспортировать меню приложения в браузер, чтобы он сам выбирал, как и где его отрисовывать в зависимости от устройства.
Теперь об облаках и том, каким должен быть браузер:

  • Браузер должен быть своеобразным провайдером различных сервисов. Будь то социалки типа вк и твиттера, будь то облачные хранилища типа Google Drive или Dropbox, будь то даже магазины музыки типа iTunes или игр типа Steam. Всё, что должен делать браузер — это быть провайдером ко всем этим сервисам, позволяя этим сервисам сильно интегрироваться в среду.
  • Что я понимаю под интеграцией? Положим, у вас есть несколько устройств, залогиненных под одним мета-аккаунтом. Предположим, вы выбрали некий сервис для хранения файлов в облаке. Тогда, как только вы добавите файл на одном устройстве, он сразу появится на другом. Разумеется, поведение должно быть настраиваемым. Возможно, вы не хотите автозагрузки файла, возможно, даже идея автоматической синхронизации всего вас не обрадует. Т.е. вы сами должны выбрать, что и как синхронизировать, главное — это максимальная абстракция от самих сервисов. Просто прокликал, в каких сервисах и на каких устройствах держать файлы и всё, они уже там.
  • Подобным же образом должны работать социальные сети. Общий фид новостей, фотографии изо всех социалок в одном месте, даже фотографии друзей рядом. Список мета-контактов с выбором, каким образом с человеком связаться, вместо тысяч разных клиентов со своим поведением.
  • Максимально возможная абстракция от файловой системы. Метки вместо каталогов.
  • Поисковик можно рассматривать уже с другой стороны. Представьте себе смесь маркета с обычным поиском. Т.е. контент будет искаться по сервисам, представленным в магазине, открываться будет в соответствующих приложениях. Разумеется, должна быть возможность иметь несколько магазинов (поисковиков), но крайне желательно наличие при этом центрального типа Google Play.
  • Сами приложения должны открываться как сайты нынче. Т.е. в магазине банально хранятся ссылки и отзывы к ним. Эдакий расширенный индекс сайтов. При отсутствии приложения в магазине, оно должно открываться банальным набором его адреса в адресной строке. А установленные приложения — это по сути закладки. Если приложения совсем-совсем нет в сети, то оно банально перетаскивается в систему примерно так же, как оно сделано в макоси, разве что в нашем случае перетащить нужно просто на локальную систему, а не конкретно в приложения, ибо браузер разберётся, куда класть контент.
  • И, разумеется, должна быть поддержка тех, кто боится слежки. Возможность синхронизации через домашний сервер или объединением в сеть нескольких устройств с одним ключом. Как быть с покупкой приложений в таких случаях — спорный вопрос.

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

Как-то так. Идея не претендует всем понравиться, сама она действительно сильно напоминает какую-нибудь ChromeOS, разве что в основе её лежит идея децентрализации сервисов, а не наоборот. Хотелось бы заняться реализацией всего этого, да пока знаний не хватает, сижу вот, читаю Real World Haskell.

Deleted

А теперь можно кратко что ты все-таки изобрел? Вроде описал обычный тренд, ChromeOS и все дела

vertexua ★★★☆☆ ()
Ответ на: комментарий от vertexua

Вкратце — в жопу сайты, в жопу JS и WebGL, даёшь локальные клиенты, интеграции и синхронизации всего и вся.

Deleted ()

Интерфейс приложений пишется на декларативном языке, логика на скриптовом

Чем это лучше кроссплатформенных приложений и зачем нужен ненужный браузер?

goingUp ★★★★★ ()

Есть такая штуковина, Adobe Air. Насколько я знаю, по сути это флеш, но для более масштабных приложений. Один раз запускал под ним игрушку. С точки зрения пользователя это выглядит так: скачивается .air-файл, его по-моему даже устанавливать никуда не надо, просто на месте запускаешь и используешь. Вроде бы есть гуй для для создания гуя, если так можно выразиться, про декларативное описание не в курсе, но наверняка есть.

h31 ★★★★ ()
Ответ на: комментарий от Deleted

Локальные клиенты это хорошо, но дорого во всех планах (здесь мне можно верить). А с замашками в виде «в жопу whatever, придумаем новый whatever» ты просто придумаешь новый набор костылей и построишь на них новый веб, который, как уже эмпирически доказано, будет еще более унылым тормозным говном, чем старый.

Не трогайте веб — ему и так плохо.

arturpub ★★ ()
Ответ на: комментарий от goingUp

Чем это лучше кроссплатформенных приложений и зачем нужен ненужный браузер?

Ради унификации во все поля. Всё-таки кроссплатформенные приложения не всегда достаточно кроссплатформенны, да и собирать их надо под отдельные платформы, а тут собрано под браузер, который работает везде. Это стоит рассматривать не как браузер, запущенный в DE/WM, а как непосредственно замену этому DE/WM.

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

но дорого во всех планах

В каком смысле дорого? Не сказал бы, что мобильным ОС плохо, а там по сути одни клиенты.

А с замашками в виде «в жопу whatever, придумаем новый whatever» ты просто придумаешь новый набор костылей и построишь на них новый веб, который, как уже эмпирически доказано, будет еще более унылым тормозным говном, чем старый.

Хм, а можно эти эмпирические доказательства? Потому что пока всё, что я видел — это костыли на базе HTML/CSS и JS.

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

Допустим будет свой ЯП (или два, как ты говорил, декларативный и алгоритмический), которые типа будут делать унификацию (хотя вряд ли они поглотят все), и в качестве браузера будет ВМ для этих языков. Чем тогда твой подход отличается от жавы?

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

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

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

Надо писать (дорого), обновлять (дорого и неудобно), закрывать дыры в клиентском ПО (очень неудобно, в т.ч. защита от «нечестных клиентов» заставляет дублировать все вычисления на сервере). Куда проще и дешевле дать клиенту заранее отлаженный и самообслуживающийся кусок кода, который будет рендерить и выполнять текстовые запросы с сервера. На мобильниках все пишется от безисходности, т.к. веб не ориентирован на тачскрин со слабым камушком, и лук-н-фил с производительностью у него там дерьмовейшие.

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

Нечестные клиенты не смогут синхронизироваться с сервером из-за несовпадения подписи, например. Это если клиент модификации подвергали. А что дорогого в обновлении? По-новой скачать архив и всё. Если изменения ломают совместимость, то тупо не пускать со старым клиентом.

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

Ну вот смотри: раньше я мог лазить по сайтам имея pentium mmx 200, который спокойно гнался до 233, и 256мб памяти он боард. О видео конечно речь не шла, но флеш и прочее все работало. Опера с плавной (тогда уже?) прокруткой и все такое. Сейчас я вижу в магазинах «нетбуки», которые уделывают мой пенек на пару порядков, и все равно их едва хватает, чтобы показать старт слешдота или какого-нибудь другого тяжелого сайта.

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

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

Deleted ()

Софт типа фотошопа никогда не уедет в браузер.

dk- ()
Ответ на: комментарий от Deleted

MSO нихрена не жирный. Он летает просто. И написан на сях (по крайней мере раньше был)

dk- ()

Неужели жабоскрипт нельзя чем-то заменить? Он причина тормозов, зачастую.

Valeg ★★★ ()

Мне больше понравилась книга learn you a haskell for a great good.

RWH не фонтан.

true_admin ★★★★★ ()
Ответ на: комментарий от dk-

А что мешает-то? Описываемый мною «браузер» не есть то же самое, что есть браузер нынче. По сути я просто предлагаю отцепить интерфейс от библиотек, дабы последние можно было хранить на серверах, а на локалхосте оставить только интерфейс.

Deleted ()
Ответ на: комментарий от dk-

MSO нихрена не жирный. Он летает просто.

Не жирный /= тормозит
Он действительно летает, но жирным он всё-таки является (в сравнении с каким-нибудь сайтом).

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

learn you a haskell for a great good

Уже прочитал :)
RWH просто подробнее будет, поэтому и читаю. Правда, в нём ошибки есть конкретные…

Deleted ()

Централизация не нужна. Хватит этого дерьма. Будущее за децентрализованными технологиями.

crutch_master ★★★★★ ()

Классическое проявление NIH.

mono ★★★★★ ()
Ответ на: комментарий от dk-

Когда человек кукарекает про летающий офис, сразу видно что дальше простых прайс-листов и заявлений он не заходил.

Погугли неисправляемую ошибку: «Недостаточно системных ресурсов для полного вывода на экран».

steemandlinux ★★★★★ ()
Ответ на: комментарий от crutch_master

Мне кажется, ты как-то неправильно прочитал написанное.

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

В чём же? Обычно NIH — это переизобретение существующего. И что я переизобрёл?

Deleted ()

Мобильный веб убог как не знаю что. Поэтому мобильные приложения это суровая необходимость, иначе юзер получает не usability, а чёрт знает что.

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

Поэтому широкого распространения нативные клиенты на десктопе не получат. Браузер достаточно хорош.

Legioner ★★★★★ ()
Ответ на: комментарий от Deleted

Java. Изначально, идеи почти один в один совпадают, но не взлетело, по понятным причинам.

mono ★★★★★ ()
Ответ на: комментарий от steemandlinux

С таким не сталкивался. Если дашь подобный файлик посмотреть буду рад.

Либра\ОО их нормально открывают?

Ну а в повседневном круге задач большинства людей он тупо летает. на любом железе.

dk- ()
Ответ на: комментарий от Valeg

Неужели жабоскрипт нельзя чем-то заменить?

Если заменить ради заменить, то Dartlang. Нативно поддерживается в Chromium. В Firefox, Safari и IE работает в режиме совместимости (с помощью JS). Обещают бОльшую скорость выполнения, ООП, много полезных библиотек из коробки и прочее.

Sense ()
Ответ на: комментарий от dk-

Дать не могу, ввиду их содержимого. Там очень много формул и около полумиллиона ячеек. Расход памяти доходит до 700 мб и весь офис падает без возможности сохранения. Ошибке плевать на разрядность, версию венды и ТТХ компа. В интернете огромное количество постов про это дело и ни одного решения, кроме уменьшить документ, убрать формулы, снести ЗверьВДВ, поставить лицуху Каспера и так на протяжении 17(!) лет. В том же либреофисе как ни странно работает нормально. Остальные офисы вообще не переваривают эти файлы.

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

Ага, уже погуглил. Фейил, согласен. И позор МС. Видать где-то костыль у самого фундамента стоит.

Хотя закрадывается мысль, что офисный пакет под такое это уже неправильно. Но я хз.

Радует что в обычной жизни - оно летает и крутое.

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

Хотя закрадывается мысль, что офисный пакет под такое это уже неправильно. Но я хз.

Ага, особенно глупо это выглядит при наличии программистов, серверов и лицензий 1С.

steemandlinux ★★★★★ ()

По-моему, то что ты хочешь, довольно просто сделать в Inferno.

harm ()

Такое будущее нам не нужно. Долой зонды!

Sociopsih ★☆ ()

Угадал автора после пары первых предложений.

CYB3R ★★★★★ ()
Ответ на: комментарий от Deleted

в жопу сайты, в жопу JS и WebGL

интеграции и синхронизации всего и вся.

Эти 2 строчки называются «зонд». Уже есть.

cipher ★★★★★ ()

В целом соглашусь, но думаю существующие технологии почти полностью вольются в будущее. Зачем сразу городить новый тулкит для написания приложений? Почему нельзя взять и обернуть всё что есть, включая веб. Почему нельзя взять и доработать браузеры, допилить их производительность там, где нужно для нового поколения приложений. Что до оффлайна-онлайна, думаю это перестанет быть актуально, потому что приложения станут наборами динамически мигрирующих сервисов, адаптирующихся под среду. И да, веб браузеры будут жить и сосуществовать, традиционные ОС тоже, просто постепенно всё будет сливаться в одно.

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

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

ixrws ★★ ()
Ответ на: комментарий от Deleted

полотно не читал, но

...в жопу сайты, в жопу JS и WebGL, даёшь локальные клиенты, интеграции и синхронизации всего и вся.

одобряю

gavlig ★★★ ()

Запости на швабру, там такое любят (любили, точнее, возможно, уже не любят).

Mitre ★★ ()
Ответ на: комментарий от Legioner

компьютерный веб вполне себе юзабелен

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

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

Java. Изначально, идеи почти один в один совпадают, но не взлетело, по понятным причинам.

Потому что не было реализации? Толку-то от одного языка? Описанное мной можно реализовать хоть в рамках существующих языков (QML для интерфейса, Python для скриптов и т.д.), просто пока этого никто не сделал.

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

По-моему, то что ты хочешь, довольно просто сделать в Inferno.

Честно говоря, не удивлюсь. Но с драйверами там туго, как я понимаю. А натянуть инферно на существующие ОС вряд ли можно, как я понимаю.

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

Такое будущее нам не нужно. Долой зонды!

В каком месте зонды?

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

Эти 2 строчки называются «зонд». Уже есть.

Примеры? Андроид недостаточно синхронизируется, про iOS я вообще молчу.

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

Почему нельзя взять и обернуть всё что есть, включая веб.

Потому что от недоразумения под названием HTML проще отказаться, чем развивать его.

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

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

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

Соцсети - а с чего взяли что они будут? кому они нужны, зачем?

Они являются провайдерами обмена контента. Даже если контентом в будущем будут обмениваться по-другому, провайдер же всё равно какой-то, но будет.

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

P2P, что ли? Вряд ли, кому нужно хранить у себя кучу хлама, когда проще держать это в облаках, коими по сути и являются нынешние социалки.

Дальше, вот возьмём телефон, а почему телефон, почему так критичен офлайн? Допустим у человека есть вычислительное устройство мощности типа мак эир и размера с телефон - это телефон? А если там софт с разными интерфейсами? Ну и если там приниципально новый модуль связи, работающий подобно нейтрино, тогда вопрос оффлайна, вопрос всяких там операторов и коннекта, он вообще актуален?)

Касательно устройств я не зря указал на масштабируемость интерфейса. Совсем не учитывать размеры нельзя, равно как нельзя не учитывать интерфейсы взаимодействия. Иначе мы получим на 5" FullHD малюсенькие кнопки, по которым невозможно попасть пальцем. Если устройств ввода несколько, то интерфейс должен перестраиваться под активное, либо так, чтобы работать со всеми сразу (типа как Gnome 3 с его огромными виджетами). Касательно оффлайна — сейчас критично. Даже слишком. Будущее я имел в виду такое, которое реализуемо в ближайшие несколько лет. Наваять библиотеку и описанный браузер — дело пары лет, если не меньше. Изобретение нового способа связи, который всегда бы работал, — дело неопределённо долгого срока.

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

Запости на швабру, там такое любят (любили, точнее, возможно, уже не любят).

Нет у меня там аккаунта :)

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

Потому что не было реализации? Толку-то от одного языка?

Java - не только язык.

И у тебя немного углубленный взгляд на все это, на современных рельсах. Но идея приложений в браузере почти один в один.

Описанное мной можно реализовать хоть в рамках существующих языков (QML для интерфейса, Python для скриптов и т.д.), просто пока этого никто не сделал.

От перестановки языков с HTML на QML и с JS на Python ничего качественно не поменяется.

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