Не пропустите, вышел пятый отчёт проекта STEPS (
http://www.vpri.org/pdf/tr2011004_steps11.pdf) -- в нём сообщается, что заявленная в прошлом году система уже работает, хотя в ней еще можно найти следы использования Си. Система воспроизводит основную функциональность персонального компьютинга (браузинг веба, производство текстовых документов, спредшитов, слайдовых презентаций, работу с языками программирования, воспроизведение аудио и видео), но умещается в 20тыс. строк кода на голом железе -- вместе со всеми необходимыми для реальной работы оптимизациями.
Увы, кто не был знаком с прошлыми отчётами, тот не поймёт о чём речь. Данный отчёт ничего не говорит о том, как был получен такой результат (полный персональный компьютинг на "голом железе", укладывающийся в 20тыс. строк исходных кодов). Он просто говорит о том, что результат таки получен -- и примером является сам отчёт, сверстанный на демонстрационной системе. И что будет еще один год для "полировки" этого результата.
Вот такой информатике и нужно обучать в школе. Вот такую информатику и нужно делать на работе.
Все основные материалы проекта тут:
http://vpri.org/html/writings.php (а кое-какие коды выложены в
http://www.vpri.org/vp_wiki/index.php/Main_Page -- но результирующий код проекта пока отсутствует. Наверняка откладывают выкладку в надежде хоть как-то отдокументировать работающий код, на что уйдёт последняя неделя шестого года проекта -- это уж как всегда в таких исследованиях, ничего необычного).
November 8 2011, 22:18:34 UTC 6 months ago
November 9 2011, 02:51:27 UTC 6 months ago
У них сложилась странная ситуация с графической подсистемой. Автор языка Nile является его же единственным пользователем и пишет на нём Gezira. Хотя мог бы использовать тот же C++ вместо самописной экзотики, с тем же уровнем абстракции и компактности кода, но большей читаемостью. Это не предположение, а моя оценка исходников из https://github.com/damelang/gezira
Недокументированный язык Nile, которым пользуется только автор, формально преподносится как некое достижение. Однако, в тексте отчёта присутствует и критика "программистских" DSL, которые упрощают код в малом, но усложняют восприятие цельной картины. Мне это кажется хорошим сигналом. Скорее всего год потратят аккурат на зачистку зоопарка.
November 9 2011, 06:35:31 UTC 6 months ago
С графикой у них активные эксперименты: у того же Nile два погружения в другие языки. Заметки их по "зачистке зоопарка" относятся как раз к вычищению Си для формальной квалификации "от пользователя до железа" с одной стороны, и назначению какого-то оптимума для их языков портирования языков (ибо у них любой язык пишется в любом -- просто by definition для их способа разработки).
Язык Nile более-менее документирован, но в этой документации нужно разбираться. Ибо его документация -- "математическая статья", исполняемые примитивы. Тут не столько документация нужна, сколько объяснение дизайн-выборов, а это уже другой жанр.
November 9 2011, 06:55:57 UTC 6 months ago
Что касается графики, то есть разница между подъёмом уровня абстракции (как, например, делает Conal Elliot, которого сейчас в той же рассылке fonc упоминают) и оккультным синтаксисом для вполне обычных вещей (Nile). Проще надо быть.
November 9 2011, 20:45:54 UTC 6 months ago
У парней стоит задача показать что всю систему можно уместить в 20 тыщ строчек кода. Т.е. чтобы можно было во всей системе разобраться за разумное время.
А язык с++ настолько сложен и запутан, что уже в нем самом замучаешься разбираться. Грубо говоря, если бы они пошли путем С++, то это было бы наслоение сложного и запутанного над сложным и запутанным с помощью сложного и запутанного. Ну т.е. как современный софт и строится. А задача - продемонстрировать что можно по другому - а именно в тысячу раз короче.
November 9 2011, 22:20:47 UTC 6 months ago
Кроме того, компактизация кода на порядки сначала требует архитектурных усовершенствований, а затем уже их языковой поддержки. К сожалению, в публикациях FONC эта тема затрагивается только в общем виде: вот там цепочка трансляторов, а вот здесь worlds. Общий дизайн системы пока не проглядывается.
November 9 2011, 23:05:55 UTC 6 months ago
Но у них просто базовым языком является смесь смолтока со схемой, уж не знаю как она там называется в данный момент. И сей базовый язык из котором все основано - тоже компактно реализован.
При том что идеология Смолтока такая, что можно заглянуть в низлежащие уровни и их поменять при желании. Т.е. у них такая идеология что весь проект включая реализацию базового языка доступен программеру. Вплоть до уровня железа. Типа сверхпозднее связывание и все такое.
Типа все можно поместить в 20 тыщ строчек (за исключением может быть бутсраппинга).
А так да - все что они сделали можно делать и на других языках. Т.е. по сути они делают DSL'и а их можно на почти любом мейнстримном языке фигарить.
November 10 2011, 09:13:16 UTC 6 months ago
Ух ты. Сильное заявление. Авторы пишут и демонстрируют
So when we say we can produce virtually all of 2.5D anti‑aliased alphaed personal computer graphics in 457 lines of program, we can let that stand on its own as being “very small”—at least 100 times smaller than other extant systems.
Вы можете представить реализацию 2.5D графической подсистемы с поддержкой антиалиасинга и альфа-каналов в 500 строк на каком нибудь языке? Хотелось бы посмотреть
November 10 2011, 11:48:55 UTC 6 months ago
November 10 2011, 01:01:54 UTC 6 months ago
а как тогда вписаться в бюджет 20к строк? компилятор плюсовый-то поболее будет
November 10 2011, 01:40:25 UTC 6 months ago
November 10 2011, 03:02:22 UTC 6 months ago
November 10 2011, 11:55:08 UTC 6 months ago
November 10 2011, 16:24:05 UTC 6 months ago
November 10 2011, 09:15:36 UTC 6 months ago
Цена которых известна - и включена в общий бюджет проекта в 20 тыс. строк
November 10 2011, 11:58:47 UTC 6 months ago
November 10 2011, 03:13:00 UTC 6 months ago
November 10 2011, 03:25:02 UTC 6 months ago
November 9 2011, 12:00:32 UTC 6 months ago
идея о том что все могло быть проще и компактнее - это хорошо, но если они ее еще и реализовали, то вообще гениально :)
November 10 2011, 05:42:39 UTC 6 months ago
November 10 2011, 06:03:11 UTC 6 months ago
November 10 2011, 07:08:48 UTC 6 months ago
Правда, есть отличие, я акцентирую внимание на выполнении работы по построению новых понятий, а уже потом на построении языка, в котором эти понятия могут "правильно" применяться как средства для... А, далее интересный вопрос, а для чего применяются понятия языка? И чем они отличаются от знаний, которые тоже имеются в языке (и язык программирования работы компьютера, здесь не исключение).