March 13th, 2010

glider

Метафоры

Конечно, сложно остаться в стороне от бандвагона и не упомянуть про код-бабблз (жмяк на линк, чтобы посмотреть видос). Если кто видос не видел, рекомендую остановиться в прочтении поста, выделить 10 минут своей жизни и заценить этот шедевр. Очень радостно, что появляются GUI гибкие настолько, что становится возможным ценой тривиальных усилий создавать кастомные визуализации своего кода, которые вовсю задействуют "правое" полушарие, обычно неиспользуемое в процессе кодинга.

Магический распознаватель образов в головном мозге позволяет много чего интересного: 1) выделять кучу фрагментов из большой структуры, обходя необходимость давать им имена, 2) одновременно рассматривать сложную структуру на нескольких уровнях детализщации, 3) группировать [временно] связанные фрагменты структуры друг с другом, обходя необходимость описывать связь аналитическими предикатами и применять предикаты к каждому подмножеству множества всех фрагментов структуры.

Возникла небольшая идея - а что, если кроме возможности полной кастомизации представления, давать пользователю также и возможности автоматического лаяута информации на основе предефайненных шаблонов. Кое-что в этом отношении показано и в презентации бабблсов (например, автолаяут графа вызовов между двумя бабблами или автолаяут истории дебага в отладчике), кое-что в эту степь можно нагуглить. Вот, например, нашел топег на LtU, а там несколько линков на относительно related проекты. Вот, например, описание концепта-участника конкурса, связанного с VS2010: http://www.codeproject.com/KB/cs/concept_ide.aspx#objectMiniDiagram. Понравилась идея представления коллстека в вот таком вот виде:

Интересная идея визуализации классов и их методов

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

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