ailev.ru

Обсуждение

В архиве: 29 комментариев.

Читать и комментировать в ЖЖ ↗

Имя не сохранено · 19 января 2015

Комментарий

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

Анатолий Левенчук · 19 января 2015

Комментарий

Да, общедоступный -- http://vpri.org/html/writings.php (и смотрите там отчёты по проекту STEPS -- http://www.vpri.org/pdf/tr2011004_steps11.pdf, http://www.vpri.org/pdf/tr2010004_steps10.pdf, http://www.vpri.org/pdf/tr2009016_steps09.pdf, http://www.vpri.org/pdf/tr2008004_steps08.pdf да и всякие другие материалы), софт берут тут: http://www.vpri.org/vp_wiki/index.php/Main_Page, видео докладов Алана Кея -- http://vpri.org/html/words_links/links_ifnct.htm, список рассылки http://vpri.org/mailman/listinfo/fonc

Ответ на комментарий

Имя не сохранено · 19 января 2015

Комментарий

В детстве мир для человека полон чёрных ящиков. Человек воспринимает это как "у всего есть душа". Поэтому, когда юноша ставит пластинку на проигрыватель, чтобы послушать альбом, то он слушает не музыку, а слушает голос чёрного ящика, каковым является для него мир искусства. С годами приходит понимание, что мир слишком велик, чтобы возможно было освоить все его чёрные ящики. И что не всякий чёрный ящик возможно использовать в своих целях. Таким образом весь мир искусства сводится для человека к кнопкам play-stop, а пластинка - это просто очередная маска, которая либо очаровывает слушателя, либо нет. Компьютеры в их современном виде открыли для людей возможность создавать как маски любой сложности, так и чёрные ящики любой сложности. Сейчас человечество ещё только играется с этой штукой, но спустя пару поколений изменится подход к образовательному процессу, и люди начнут делать чёрные ящики, настраиваемые под таланты конкретного пользователя. Уже сейчас, начав осваивать дизайн, всего через пять лет, пользователь приходит к тому, что возможностей пакета от Adobe ему как дизайнеру не хватает. А написать самому инструментарий подобной сложности, только с новыми функциями, ему не под силу. Но сам пакет ещё не прошёл в своём развитии достаточно поколений, чтобы изменилось видение продукта его разработчиками. Поскольку ни одна программа не развивается сама по себе, развитие происходит всего программного обеспечения в целом. Например, чтобы появился iPhone, должны были сперва появиться КПК и iPod, а до них должны были появиться Macintosh и ноутбуки, а до них - персональные компьютеры, графические дисплеи и компьютерные мыши. Я ещё помню те времена, когда я спрашивал себя, как должен выглядеть графический интерфейс к моей программе. И так ничего и не смог придумать. Но вдруг привезли программу-конкурент, и у неё был классический графический интерфейс. "Как просто," - подумал я тогда, но сам бы я вряд ли бы смог придумать что-то подобное. Ведь вся идея состояла в том, чтобы сделать Нортон Коммандер, но в графике. А я как пользователь до сих пор мыслил шаблонами - нажмите кнопку A, нажмите кнопку Б. И всё потому, что у компьютеров ДВК-2 не было мыши.

Имя не сохранено · 19 января 2015

Комментарий

Если почитать доклады, то становится ясно, как в STEPS получено 1000х сокращение кода: 2х-4х - все эти хитрые языки с кодогенерацией, 250х-500х - сокращение функциональности.

Ответ на комментарий

Анатолий Левенчук · 19 января 2015

Комментарий

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

Ответ на комментарий

Имя не сохранено · 19 января 2015

Комментарий

Не, я не понял. Конкретно где скачать код? Структура ссылки на софт мне непонятна. Что там код офисной системы? "Ценность была невелика" - значит ценность этих 20 тысяч строк невелика.

Ответ на комментарий

Анатолий Левенчук · 19 января 2015

Комментарий

Мне из тех же докладов показалось, что не "сокращение функциональности", а "вынос за скобки функциональности" (т.е. поднят коэффициент реюза кусков кода за счёт бОльшей степени абстрактности).

Ответ на комментарий

Имя не сохранено · 19 января 2015

Комментарий

Ах вот оно што. Значит по факту они могут из 20млн строк сделать 5-10 млн. Ну это ерунда, достаточно на какой-нить хаскель пересесть.

Ответ на комментарий

Анатолий Левенчук · 19 января 2015

Комментарий

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

Ответ на комментарий

Имя не сохранено · 19 января 2015

Комментарий

Вопрос не праздный. "Вынос за скобки функциональности" в реальной системе очень часто оборачивается дикими костылями, когда вдруг надо реализовать что-нибудь более-менее интересное. Т.е. все эти слои на деле оказываются дико связанными. "Протечка абстракции" вообще очень частая вещь. Вот если сходить на какую-нибудь Java-конференцию, добрая треть докладов будет про кишки JVM и какая боль происходит, если забыть о том, что там лежит на уровне байт-кода или даже еще ниже, на уровне железа. Если же делать еще более высокоуровневые вещи, то любая нестандартная задача потребует вернуться на уровень ниже и еще ниже. Уж лучше тогда просто работать в рамках языка общего назначения и не рыпаться.

Ответ на комментарий

Анатолий Левенчук · 19 января 2015

Комментарий

Да-да. В проекте именно это и обсуждается: что костыли начинаются прям с уровня виртуальной машины. Там вообще всё начиналось с понятия "виртуальной виртуальной машины", VVM.

Ответ на комментарий

Анатолий Левенчук · 19 января 2015

Комментарий

Что ж все ведутся так на коммент одного читателя отчётов? Я вот по-другому эти же отчёты прочёл, но на мой коммент об этом никто не реагирует )))

Ответ на комментарий

Анатолий Левенчук · 19 января 2015

Комментарий

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

Ответ на комментарий

Имя не сохранено · 19 января 2015

Комментарий

это тот самый добрый троллинг стеб, за который девочки так любят мальчиков, согласно, ЕМНИП, канадцам (2013?). Я таки надеюсь, что там больше, чем "это чалма без сковородки выкидывания функционала не работает" "а, ну этого и перейдя на Хаскель можно достичь", но очень боюсь обмануться - разбитое сердце, обманутые надежды, плач в подушку ночи напролет. Пока нет сил осилить отчет, если честно. Подождем. (Оффтоп: А вот про робототехнику очень понравилась идея/ проработка. Подписался на комменты, а там - тишина).

Ответ на комментарий

Имя не сохранено · 19 января 2015

Комментарий

Дайте пжлст ссылку на ОДИН документ с тем описанием того способа реюза функциональности, которого никто не обеспечивает.

Ответ на комментарий

Анатолий Левенчук · 19 января 2015

Комментарий

Так этих способов много, они с абсолютно разным уровнем детальности прописаны в разных документах. "Серебряной пули", сокращающей код в 200 раз нету, это ж очевидно!

Ответ на комментарий