ФантомасоПисателя (далее DZ. dz.ru/solutions/phantom/) активно ругают и, временами, откровенно тролят, хотя ничего неизвестного и неожиданного человек не сказал. Он просто сложил в аккуратную кучку факты, решения и концепции. А уж неприятие его идей, дело сугубо временное. (Ну хорошо, возможно не всех идей).
Ну вот, с разжиганием межконфессиональной вражды закончил, теперь можно перейти и к фактам, кои довольно прозаичны.
После просмотра парочки выступлений DZ, его статей и наблюдая ответную реакцию среды, я пришел к забавному выводу, что эту самую среду больше всего взбесили слова о ненужности файлов. Кто-то в комментариях (размахивая факелом) вопрошал: «а как же фантомас будет сохранять информацию без файлов и файловой структуры»?
Собственно это для кого-то может оказаться неожиданностью, но файловая система и файлы это абстракция, причем не для всех полезная. Те же ребята из Oracle и не скрывают, что им очень нравится идея держать свою базу на, так сказать, raw-разделе. И они отнюдь не одиноки. Прецедентов много.
По сути, речь шла именно о том, чтобы убрать абстракцию файловой системы из под ОС. Она там не особенно то и нужна. А вот про то, что эту абстракцию уберут и для конечного пользователя, речи не было. Был только намек на то, что в чистом виде, файлы пользователям не нужны. Есть более удобные вещи.
Согласитесь, ведь даже когда человек открывает свою флешку и смотрит на файлики с котиками проектной документацией, он, на самом то деле, открывает Explorer или Finder или Nautilus или еще что-то и смотрит на нарисованные этой программой иконки. Любой линуксоид вам скажет, что в каталоге /dev, по сути, файлов нет. Нет, они там безусловно есть, но они неким образом, не совсем файлы. Эдакая виртуальная сущность. А в Plan9 идея с файлами уперлась в стену и файлее быть уже не может. Однако настоящих файлов там еще меньше.
Ничего личного, только абстракция. Но вернемся к концепции.
Следующим камнем преткновения является персистентность. Идея, на самом деле, заманчивая. Именно по этому DZ про нее так много говорит, но это сильно расходится с тем что админы видят вокруг себя, что вызывает у них понятную реакцию.
Есть мысль, что если бы DZ не говорил бы про сохранение состояние между перезагрузками и тем более потерей питания, негатива было бы меньше. Ведь каждый IT-шник встречался с потерей данных. Тут даже аппаратный RAID не панацея. То контроллер сгорит, то за день до апокалипсиса местного значения кто-то сопрет несколько дисков из СХД, а бекапы еще во время корпаратива затерли фотографиями с праздника. Естественно, что задерганному этими неурядицами человеку, поверить в рай на земле трудно. А уж поверить, что это будет бесплатно, удобно и надежно… Одним словом, включается IT-шный синдром активной паранойи с повышенной трольностью.
И вот, мы уже готовы были понять и простить… Но, и на этом DZ не остановился.
Следующий удар отправляет уже программиста, в страну волшебных пони бешенство. И не удивительно. Ведь это надо же было такое сказать, да еще и без предварительной подготовки. Естественно человек дуреет, когда ему мило заявляют, что все процессы выполняются в едином пространстве. И не важно что скажут дальше, слушать ни кто уже не будет, ведь это ночной кошмар кодера.
Так вот, пока среднестатистического программиста тащат к психиатру, выясняется, что защита то никуда не делась, изменился только принцип этой самой защиты. В случае с «фантомом» защитой является то, что никаких указателей, все строго на байткоде. Собственно, байткод самый дешевый вариант такой защиты. По крайней мере было как минимум два процессора, которые умели защищать указатели и без всякого байткода. Но сейчас это скорее как историческая справка и задел на будущее.
Но что же дает такое изменение?
Ну, как вариант, а зачем заморачиватся с контекстом? Уже выигрыш. Следом можно вспомнить о том, что коммуникация процессов резко упрощается. Причем до такой степени, что это все начинает напоминать Erlang-машину с ее легкими потоками и прочими вкусностями.
Получается так, что и это решение не столь безумно, как кажется на первый взгляд. Теперь можно немного и пофилософствовать.
Возьмем первого попавшегося web-разработчика и принесем его в жертву великому Ктулху внимательно посмотрим на специфику их работы. А специфика достаточно неожиданная. Все что можно они хранят в базах и даже котиков, если это (допустим) modgodb. Они бы и весь код свой там держали, только это: во-первых, не тренд, а во-вторых, git/hg/svn работают, на данный момент, с файлами.
Задача web-разработки, в большинстве случаев, обеспечить симпатичный интерфейс к базе и все.
Если сильно утрировать, не только web но и обычному программисту, файлы в чистом виде не особо то и нужны. Вот если бы все данные хранились в эдакой базе, которая обеспечила бы… Упс. А ведь это очень похоже о чем пытался говорить DZ, просто называл он их объектами и другими общими словами.
А если подумать, то на горизонте появляется так напугавшая всех персистентность. Просто пришли к ней с другой стороны. Эдакая база данных, разожравшиеся до состояния ОС.
Получается так, что по отдельности, данные идеи, вполне себе интересны, причем коммерчески. И по отдельности компоненты пилятся многими серьезными игроками рынка.
P.S.
А можно сделать собственный фантом с преферансом и поэтессами?
Как вариант (сугубо как демо) можно взять загрузчик, ядро линукса, подмонтировать свап, запустить X-ы и добавить Erlang по вкусу.
Если не обращать внимания откуда стартовало ядро получаем долгожданный PROFIT. А уж если вырезать весь лишний код, то… (Дальше идет злобный смех, заканчивающийся простуженным кашлем).
P.S.2.
И да-да, вы правы — Автор данного поста злой и нехороший человек, написавший все это исключительно от бессонницы.
Автор: qrasik