10:13a |
Написал я программу (год назад), генерирующую все бинарные логические операции, и до сих пор размышляю. Операции-то я сгенерировал, а потом "узнал" их и наделил именами.
Более общо, пишем мы прогу, генерирующую некие объекты. Потом вручную пересматриваем, что получилось, и наделяем их именами. Дальше предпочтительней оперировать ими под этими именами, а не как "безликими" объектами. У проги теперь две половины, и первая - генерация объектов - получается, больше и не нужна. Прямо бутстрап какой-то.
Но первая часть проги имеет свою ценность, и выбрасывать её жалко. Тут просто рвётся шаблон мышления. По привычке программа - это ящик, преобразующий х на входе в у на выходе. Раз написал - и оно вечно работает, и никакие части у этого ящика не лишние. А тут сначала пишешь первую часть только для того, чтобы понять, как писать дальше.
Некая эволюция программ. В принципе, похоже на суть человеческой деятельности - поступательное накопление знаний. Но обычный процесс разработки как-то не стыкуется с такой идеей. Разве что "ноутбуки" / "workbook-и" в мат-средах типа mathematica & maple что-то смутно навевают. В сознании всплывают слова explorative programming. Хоть в инете по этому термину фигня какая-то закреплена уже.
Возможно, стоит рассматривать прогу скорее как культурный объект, а может, даже как субъект... (дальше размышления совсем уж расплываются в неопределённости и обрываются). |