понедельник, 23 ноября 2009 г.

[comp.prog.thoughts] Нетбуки под Chromium OS точно не вернут старые добрые времена

Прочитал новость про открытие исходников Chromium OS. Последовательность старта в виде “прошивка –> ядро ОС –> Web-браузер”, что называется, внушаить. Получается, что под Chromium OS будет работать только нативный Web-браузер. Все остальное (почта, игры, мультимедиа и пр.) – все это будут Web-приложения, которые способны работать в офлайне. Обещается, что работать Web-приложения будут шустрее, чем в обычных “универсальных” браузерах, за счет тесной интеграции Web-браузера из Chromium OS с ядром.

Похоже, мы наблюдаем ускорение развития нишевости в области персональных компьютеров. Времена, когда одна и та же машина могла использоваться для разработки ПО, работы в MS Office, запуска “малолитражных” САПР, разнообразных компьютерных игр, хождения по Интернету и т.д., уходят в прошлое. Игровые компьютеры, сервера, рабочие станции, офисные компьютеры – таковым было деление еще недавно. Потом появились игровые приставки. Теперь вот нетбуки могут трансформироваться в этакие “приставки для Web-а”.

Наверное, это правильно. Большое количество современных пользователей нуждается всего лишь в простом и дешевом инструменте для чтения новостей, пребывания в социальных сетях, обмена фотографиями “Вот я, а вот моя собака”, общения через Skype. Все это можно делать и с помощью “зашитого в BIOS” браузера в купе с набором написанных на JavaScript Web-приложений…

Неприятный осадок от этой новости у меня остается по двум причинам.

Во-первых, как-то грустно осознавать, что специализация программистов все более и более усиливается. Все-таки, когда во время учебы перед глазами были примеры программистов-универсалов, которые и драйвера для real-time OS делали, и бухгалтерский софт писали, и ГИС-системы разрабатывали, было впечатление, что и ты так сможешь. Сейчас понимаешь, что вряд ли. В силу слишком большого порога вхождения в новую прикладную область.

Во-вторых, не покидает меня ощущение легкого маразма. Развитие событий похоже на то, что было при развитии Web-программирования. Ну не был предназначен HTTP+HTML для динамических страничек. Однако, нужно было. Поэтому вместо разработки альтернативы HTTP+HTML пошли на внедрение в него JavaScript (VBScript, ActionScript и пр.) Сейчас нужно создать минималистичное и безопасное окружение для нетбуков. Вместо создания (адаптации) специализированного безопасного языка и API (вроде экспериментов типа Singularity OS) идут по запихиванию в новую нишу уже имеющихся и, на мой взгляд, не предназначенных для этого технологий. Все-таки написанный на JavaScript файловый менеджер, работающий внутри Web-браузера – это как попытка отослать почту из Москвы в Санкт-Петербург через Камчатку.

Так что возвращения к старым добрым временам пока не предвидится. Зато происходящее мне напоминает чудный афоризм про устранение любой проблемы дизайна путем добавления еще одного слоя абстракции. Chromium OS этот слой добавляет. Что будет дальше?

PS. Еще ссылка по теме: Скриншоты Google Chrome OS на RusDoc.ru.

20 комментариев:

Left комментирует...

Тут не упомянуты пару технологий которые будут в Chrome OS (и - пока он успеет выйти - в Chrome Browser для всех осей) из коробки - O3D и Native Client.
Совокупность двух этих штук превращает Chrome в очень продвинутую платформу для написАния приложений, доступную для всех широкораспространённых платформ.

А ещё - по непровереным слухам Chrome прийдёт и в Android. Так что Chrome anywhere, сбудется вековая мечта всех программистов об унификации платформ ;)

eao197 комментирует...

При всем этом странно, что такой платформой не стала Java. Она ведь как раз с этого свою жизнь и начинала. Даже Java OS какие-то были анонсированы вскоре после выхода Java 1.0.

Skynin комментирует...

А ещё - по непровереным слухам Chrome прийдёт и в Android
А в Android'е для прикладного ПО - Java, правда без JIT компиляции. Но думается, если Гугл удовлетворится ростом популярности - появится и JIT в Dalvik VM (гугловцы даже для питона уже обещали и показали наработки. А компилятор с джавы - по моему куды проще, язык то "оберонистый").

При всем этом странно, что такой платформой не стала Java
Идеи "Singularity OS" еще обкатывать и обкатывать. А недостатки и достоинства бесплатного ядра Linux'а - известны а значит использование предсказуемо.
Проблема у Java OSей, и как читал у Singularity OS - неэффективная работа с "слоем" драйвером.

eao197 комментирует...

>Проблема у Java OSей, и как читал у Singularity OS - неэффективная работа с "слоем" драйвером.

По поводу Java OS и прочих Singularity, я думаю, все проще. Их попросту нет. Т.е. нет управляемой OS промышленного качества. Тогда как Linux есть, он бесплатен, он портирован на многие платформы, плюс у Google большой опыт затачивания Linux-а под свои нужды.

Поэтому Google просто взял Linux вместо того, чтобы придумывать и поддерживать собственный аналог "Palm OS" (грубо говоря).

Skynin комментирует...

Их попросту нет. Т.е. нет управляемой OS промышленного качества.
Потому и нет :) ПО без железа пока не научилось работать :)

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

у Google большой опыт затачивания Linux-а под свои нужды.
Да, они давно ж активисты в линух-кернел обществе.

Правда, читал уже и критику на их подход, переводя Android на нетубук. Оказалось - они так порезали ядро, и для эффективности зашили прямо в код кучу параметров, что превратили Android в Symbian.

Хотя, если накрутить поверх Chrome OS - может и не нужно подхода Moblin

eao197 комментирует...

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

Ага, интересно получается: берем готовый линукс, готовый Chrome, готовый JavaScript, готовый GMail/GDoc/Picase и делаем для среднего пользователя готовый продукт. А то, что в этом готовом продукте изрядная часть ресурсов будет тратиться на поддержку множества готовых слоев абстракции -- это ерунда.

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

Skynin комментирует...

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

Ничего не попишешь, С++ программисты - дороги.

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

Интересна вот только судьба смартбуков будет, если будет. На ARM'ах такой подход не пройдет/
Там точно ARMedslack или урезанные убунты с Moblin'ами нужно будет ставить.

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

eao197 комментирует...

>Ничего не попишешь, С++ программисты - дороги.

Ну так брезжит надежда, что всякие Cyclone/Zimbu/Go исправят эту проблему :)

А нетбуки на ARM-ах -- это пусть у MS голова болит. :)

Left комментирует...

> При всем этом странно, что такой платформой не стала Java.
Да, согласен - странно
Скорее всего - слишком рано пришла и слишком плохо стартовала. Производительность первых джав была ни к чёрту, постоянно находили уязвимости в JVM. Насколько я понимаю на данный момент Java Applets/Java Web Start вполне себе ничего платформа. Но уже поздно, все полимеры того...

Skynin комментирует...

А нетбуки на ARM-ах -- это пусть у MS голова болит
Они уже избавились - никакого портирования Win 7 не будет. Если очень нужно - берите Win CE

Ну так брезжит надежда, что всякие Cyclone/Zimbu/Go исправят эту проблему :)
.NET CLR прекрасно справляется на таких устройствах :)
Если кто сделает среду с JIT для java-байткода(CLR вместо VM) и эффективную работу с видео API по аналогии с WinForms, то Zimbu/Go не нужны будут для смартбуковских ОСей.

Left комментирует...

> А нетбуки на ARM-ах -- это пусть у MS голова болит. :)

Сдаётся мне что майкрософту вместо того чтобы делать недо-ось висту нужно было дёрнуться в сторону того чтобы довести до ума Windows CE. К примеру, довести её до состояния когда она могла бы запускать на x86 старые программы (скомпилированные для "взрослых" версий винды). Могли бы выйти на рынок с реально кросплатформенным решением.

Skynin комментирует...

довести до ума Windows CE.
Мне тоже не понятно почему забросили. Вернее - ядро СE 6 вполне, нужно прикрутить нормальную файловую систему да может по безопасности что...

Но, Microsoft не в первой опаздывать. Если прошляпят смартонетбуко рынок - ну и пес с ними. И так не бедные :)

eao197 комментирует...

2Left:

>> При всем этом странно, что такой платформой не стала Java.
>Да, согласен - странно
Скорее всего - слишком рано пришла и слишком плохо стартовала.


Имхо, Sun просто профукала момент зарождения смартфонов. Потчивала видно на лаврах того, что j2me очень серьезно на SIM-картах использовалась. И того, что Java-приложения могли на телефонах работать. Вот и не стали свою платформу делать. А может они уже и средств на это не имели.

А Oracle сейчас, имхо, всякие эксперименты с Java OS вообще не интересны.

Skynin комментирует...

А Oracle сейчас, имхо, всякие эксперименты с Java OS вообще не интересны.
Потому что им достанется Solaris :)

И насчет нативных языков. По моему уже никакой "нативный" ЯП не заменит С/С++. Эти 2 ЯП уже осели в нише, где сложность их изучения, опасность применения - вторичны. Если ты умеешь экономить байты и такты - то Си использовать - научишься. Если понимаешь сложные алгоритмы оптимизации SQL запросов в многопоточном и нагруженом сервере БД то и С++ с "бустами" освоишь.

А если хочешь таки натив, и чтобы безопасно, и уже с обкатанными библиотеками и инструментами, то FPC-Lazarus - и вперед.
Я бы на месте фанов просто сделал бы C-like вариант синтаксиса, чтобы любой исходник диалектов "обжект паскаля" конвертировался в это сиподобный синтаксис и наоборот, поддержку компилятором и средой разработки и все, успех думаю был бы. Потому что после С/С++, Java, C#, JavaScript - глаза ломать о паскалевский код неприятно.
Наработок - полно, количество поддерживаемых компилятором платформ - вполне, LCL для разработки кроссплатформенных и быстрых GUI приложений - тоже зрелая. И не надо никаких D, Qt и прочего.

eao197 комментирует...

>А если хочешь таки натив, и чтобы безопасно, и уже с обкатанными библиотеками и инструментами, то FPC-Lazarus - и вперед.

А обобщенное программирование там поддерживается (типа шаблонов C++)?

Skynin комментирует...

А обобщенное программирование там поддерживается (типа шаблонов C++)?
А как же, впихнули уже и его :) Вообще, как слежу - "дельфисты мира" держатся - без помпы, но в диалект "free pascal" - вставляют новинки. Сам компилятор поддерживает диалекты "чистый Дельфи" и "Object Pascal for Mac" и еще там какие-то.

Embercadero, нынешний владелец Дельфи, тоже добавили, но среда то у них платная. И вообще похоже все платное (даже Express версии, как у "студии" нет)

Но, энтузиасты вполне и сами справляются в FPC. С-like синтаксис - вот что нужно чтобы FPC стал привлекателен и не дельфи-фанам. Я бы для себя - точно пользовался б. А вот переключаться с силайк на паскаль... Ну хотя бы как в Scala что-ли... ну много букв, рябит в глазах с этими begin - endами.

Rustam комментирует...

И не надо никаких D, Qt и прочего.

D по моему все хорошее из паскалевской линии впитал.

Rustam комментирует...

И вообще похоже все платное (даже Express версии, как у "студии" нет)

По наследству достались старые (BDS 2006) бесплатные turbo версии. Новых (BDS 2009) бесплатных что-то не видно.

Rustam комментирует...

А обобщенное программирование там поддерживается (типа шаблонов C++)

Они традиционно, но очень медленно слизывали все с C++ :) , хотя вроде шаблоны скорее не шаблоны а генерики, теперь переключились на C#, поэтому уже есть лямбды.

eao197 комментирует...

>Они традиционно, но очень медленно слизывали все с C++ :) , хотя вроде шаблоны скорее не шаблоны а генерики, теперь переключились на C#, поэтому уже есть лямбды.

Вот ведь, все течет, все изменяется.