Новый взгляд на навигацию по коду

Одна из лабораторий Microsoft Research представила свою разработку под названием Code Canvas. Предназначение Code Canvas — это отработка новых решений при навигации по коду. Code Canvas предлагает пространственную навигацию с глубоким зумом.

+24
30 марта 2009, 20:25
9
XaocCPS 351,2

комментарии (64)

0
lostmsu #
Впечатлён. Даже появилось несколько смутных идей о том, как связать это с большими multitouch мониторами.
+1
XaocCPS #
я думаю такая связь уже продумана в MS: фичи мультатача Win7 и интегрированный Code Canvas в Visual Studio в комплекте с тач-монитором или surface-стеной (мечты, мечты) дудут отличный результат
–1
VasilioRuzanni #
«Мечты, мечты», но, думаю, это не за горами уже.
+2
mordet #
Вы хотите сказать, программисты будут с радостью начинать водить руками по экрану? ;-)
+2
XaocCPS #
многие здесь отметившиеся не понимают или не знают о том, что кроме программистов кодом занимаются еще и архитекторы/менеджеры, которым редактировать ничего не приходится, но охватывать все вместе требуется позарезу.
–7
mordet #
Но некоторые, похоже, забывают, что так называемые «архитекторы» как раз и являются программистами, но возомнившими о себе невесть что. Anyway, к разработке «рассматривание» кода широкими жестами никак не относится…
+2
mustafin #
Не возомнившие, а выросшие из программистов и умеющие решать глобальные задачи.

А описанный продукт позволяет на нужном уровне абстракции удобно работать с кодом.
Этакая лёгкая интеграция чего-то вроде UML-представления с живым проектом. )
–2
Zakus #
«Приходят мыши к мудрецу и говорят:
— Нас совы едят, что нам делать?
Мудрец:
— Превратитесь в ёжиков, они перестанут вас есть.
Обрадовались мыши, а потом подумали и спросили:
— Но как нам превратиться в ёжиков?
На что мудрец ответил:
— Я занимаюсь глобальными задачами, мелочи меня не интересуют.»
+3
mustafin #
:) в оригинале был мудрый филин и ответ его звучал примерно:
«Я ж стратег, а это тактика…»

Анекдот заставляет улыбнуться, но если вы не умеете делегировать полномочия и сосредотачиваться на глобальных задачах, а распыляетесь на каждую микро-цель, то ваше место исключительно в роли тактического исполнителя.
+1
Cancel #
Архитекторы/менеджеры кодом не занимаются. А если занимаются, то не разглядыванием.
0
antirek #
И будут похожи на шаманов: )

+6
enchantner #
Красиво — несомненно. Юзабельно ли? Думаю, пока что нет. В силу привычки, да и мультитач еще пока не наступил :)
0
lostmsu #
Это Microsoft Research. До релиза ещё долго.
–1
VasilioRuzanni #
Всему свое время. Это хороший шаг в сторону инновационного инструмента для привычной задачи.
0
AlexBin #
Насчет красиво, не знаю, пока не особо впечатляет, но наглядность правда впечатляет. Хотел бы поюзать.
НЛО прилетело и опубликовало эту надпись здесь
+1
zerobrain #
Кажется, эта идея мелькала лет 5 назад…
+2
jeje #
Я надеюсь работает она так же как на видео, а не будет пошаговой стратегии.
0
zero13cool #
вот тоже хотелось бы узнать про сис. требования) я, конечно понимаю, прогресс на месте не стоит, но не хотелось бы докупать новую видеокарту для такого «счастья» :)
–1
poorum #
Тут в парарллельном топике говорилось, что MS смогла в W7 часть вычислений, предназначенных для видеокарты переложить на плечи CPU. Конечно, в сложные игры не поиграешь, а вот Aero запустить или такую среду — труда не составит (CPU не хуже Pentium 800Mhz).
0
XaocCPS #
WPF (а я не сомневаюсь, что все это на WPF сделано) имеет поддержку рендеринга через GPU, так что простаивающий GPU пригодится в такой системе
0
irishrover #
Может, наоборот- часть вычислений CPU переложить на GPU? Обычно же GPU простаивает.
0
poorum #
Обычно да, но в том комментарии, на который я отвечал, как раз, ощущали недостаток GPU для работы с таким инструментарием. А чтобы использовать мощности видеокарт — технология в другом соседнем топике описана. Для Nvidia — это cuda, но это уже другая история =)
+1
KRen #
Реально тут не помешает хороший мультитач или что-нибудь типа джойстика как в Wii
0
Glow #
Программирование мышкой? Ну-ну…
+4
sdvn #
Это скорее не программирование. А этап разбирания в чужой программе или рефакторинга. В принципе можно так же при проектировании использовать.
0
aps #
Интересно как воспринималось 30 лет назад возможность рисования мышкой.
0
ramanchik #
30 лет назад мыши были не на столько удобны. К тому же, рисование, скорее всего, воспринималось как аналогия рисования карандашом — нажал кнопку и водишь мышью по столу, а на экране след за курсором. Но, согласитесь, и сегодня это не самый удачный приём рисования мышью.

Другое дело векторная графика. Но тут уже сам принцип другой. Это не рисование в буквальном смысле, это скорее больше похоже на взаимодействие с набором специфических элементов управления.
0
aps #
> Другое дело векторная графика. Но тут уже сам принцип другой.
Ну принципы взаимодействия с компьютерами не менее радикально поменяются. Еще 30-40 лет назад был целый класс вычислительных машин которые программировались шнурами коммутатора или набором кодов через регистры на лицевой панели. От нынешних GUI отличие очень радикальное.
+1
anatoly_rr #
Прочитав другие комментарии, усомнился в правильности своих догадок: это ведь цитата, да?
–2
skfd #
А выпадающие меню когда они осилят устранить? Вроде даже уже знают как, но всеравно продолжают спользовать :(
+14
metronix #
А мне не понравилось…
0
Silenius #
Любая идея в стадии зародыша не пышет презентационными качествами. Я тоже думаю, что реализация так себе. Но на уровни концепта идея интересная!
+3
wayly #
На уровне концепта — да.
Я бы посмотрел, как выглядят исходники фреймворка на 20 метров в этом монстре :-D
НЛО прилетело и опубликовало эту надпись здесь
+2
neytrino #
На секунду представил как меня со всех сторон окружил код… 3D не надо лучше:)
0
SteelRat #
И стерео-очки! )))
0
Zakus #
И эллектрошок, в случае возникновения экзепшена при дебаге, для «эффекта присутствия»!
0
homolibere #
на самом деле я не думаю что это получит большое распространение. скажем, для построения глобальной структуры классов еще ничего, но для работы постоянной — думаю не то.

удобно только если ты новичок и вклиниваешься в какой-то большой проект, для понимания всей структуры проекта — очень удобно. что-то вроде майндмапа по коду.

однако все равно не думаю что будет удобно.
0
komjah #
удобно контролирующему разработку, смотреть как код со временем меняется.
0
muxx #
Идея крута, только такая штука требует кардинально новых средств взаимодействия с компьютером и приложениями, мышкой это хозяйство очень медленно перетаскивать/зуммировать/кликать.
0
torkve #
Мне показалось, или иконки у элементов в Class Diagram позаимствованы у Rational Rose? :)
+4
ramanchik #
Совсем не понравилось. Да, это круто выглядит. Да, это только разработка, а потом будет вообще улётно смотреться. Но работать с этим, на мой взгляд, очень тяжело.

Намного проще нажать «хоткей» — и вот я уже «в другом классе». Кроме того, в данном случае, надо либо держать в голове визуальную структуру проекта, либо тратить время, а главное отвлекаться от основной задачи, на поиск нужного класса.

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

P.S. Хотя, тем не менее, что бы попытаться начать плавать в воде, нужно сначала очень долго ходить в ней. Так, что ребята не зря стараются. :)
+1
gaki #
Слушайте, я расскажу вам, как будет происходить освоение подобной среды.
Сначала программист радостно таращится на всю эту красоту, ходит по стрелочкам, широко скроллит и глубоко зумит.
Потом выучивает новые хоткеи, шорткаты, переоткрывает для себя пункты контекстного меню «Go to definition», «Go to declaration» и иже с ними. Нажал — и тебя автоматически оттащило и зазумило, куда надо.
Потом находит в настройках, как ускорить анимацию, происходящую при скролле и зуме. Постепенно, в несколько заходов снижает продолжительность анимации до нуля. Визуально всё это теперь выглядит, как любое гораздо более другое из ныне существующих IDE. Но мы-то знаем, что там сзади — стрелки! :)
+1
vitaly_KF #
По моему это абсолютно не удобно медленное и в работе программиста только помешает. Хоть и красиво =)
0
int80h #
вы когда-нибудь пробовали вклиниться в новый большой проект? или реверсить чужую программу? подобные графики очень помогают, сразу вспоминается IDA: Graphing with IDA (PDF document)
–2
vitaly_KF #
Эм… В больших проектах, как правило, есть документация, описана архитектура. И если та сама архитектура проекта продумана — то не возникает никаких проблем с его освоением. Ну а в крайнем случае подобную программу можно написать и самому за пару дней, при необходимости, взяв себе в помошники например ctags и QGraphicsScene. Да даже далеко ходить не нужно — посмотрите api.kde.org — проект достаточно большой и тем не менее чтобы включится в его разработку достаточно потратить день-два на то чтобы вникнуть в ситуацию. Так что эта вещь, по моему субъективному мнению — лишняя.
0
vitaly_KF #
Хотя насчёт IDA согласен — там это скорее полезно, чем нет.
0
int80h #
к сожалению, большинство проектов которые мне попадались были документированы только ссылкой на svn в code.google )) ну или аналогичным образом.
0
sunchess #
Мне это напомнило недавно вышедший плагин к OneNote — Canvas (http://b23.ru/2i9, видео) Используется тот же принцип с зумом (кажется, Раскин подобное описывал). Владельцы OneNote и Vista могут посмотреть сами, скачав плагин с сайта проекта — b23.ru/2im. Там же есть еще пара демо-роликов.

Смотреть — приятно, это как минимум. Микрософт серьезно взялись за эту концепцию, судя по всему, и внедряют ее по всем флангам.
0
1amer #
Очень напоминает Graph View в IDA pro.
0
awhiler #
в 2010 студии, кстати, кое-что из этого уже будет.
без дип зума, конечно, но по функциональности почти то же.
channel9.msdn.com/posts/VisualStudio/Bottom-up-Design-with-Visual-Studio-Team-System-2010-Architect/
–1
bSun #
Это нихрена не «новый взгляд», в IDA уже давно используется подобное…
+4
web4_0 #
Для голливудских фильмов особо подходит: кулхацкер показывает очередному ламеру как всё устроено в киберпространстве.
0
gaki #
Пару лет назад делал прототип редактора кода с нелинейным масштабированием. Обычно можно зажать Ctrl и крутить колесо мыши — все символы увеличиваются либо уменьшаются в размерах. А там было, чтобы разные веса назначить, допустим, заголовку класса, заголовку функции, в зависимости от глубины вложенности блока и т. п. И чем незначительнее, тем быстрее уменьшается и исчезает.
0
irishrover #
Такое есть в гео-софте. Некоторые элементы показываются только, начиная с определенного уровня масштаба. Например, подписи к зданиям показываются только тогда, когда само здание имеет в текущем масштабе размер не менее 1 пикселя.
0
gaki #
А меня и посетила идея сделать такое, когда google earth разглядывал.
+1
polyakstar #
плагин для Еmacs будет
0
LDEV #
Очень интересно! Ведь любой проект — это грубо древовидная структура с файлами. Было бы интересно такое поюзать в купе с любимым редактором.
0
lasalas #
Любят американцы все визуализировать… При большом количестве связей, отслеживать все эти нитки будет тем еще увлекательными занятием.
Банальные Goto Definition/Find References — для навигации все же проще и удобнее, на мой взгляд.
0
egoserg #
Да интересно, но вот переключаться между файлами особенно если они находятся в разных местах, думаю что не сильно удобно будет
+1
Cancel #
Стандартно позанудствую. А какую практическую задачу они хотели этим решить? Все эти стрелочки, зумы и анимации только отвлекают, раздражают и требуют кучу времени. Я нечно подобное давно представлял, но только не в таком ракурсе, а просто как плагин к IDE, который позволяет по шорткату получит карту проекта и быстро перейти в нужное место. Но совсем не так.
+2
Zakus #
Это Microsoft Research. Research. Просто эксперименты.
Обломись зануда! :D
–1
andreyu #
В Microsoft разработали cscope?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.