Экспериментальные концепции IDE - PullRequest
5 голосов
/ 18 июня 2010

Я заинтересован в создании IDE нового стиля для стороннего проекта. Главным образом покончить с обычным блокнотом на стероидах IDE. Я ищу вдохновение для вещей, которые были опробованы или которые вы видели (или нет), которые выглядели круто и было бы полезно иметь в IDE. Вот что я могу сделать:

http://digitaltools.node3000.com/blog/1052-field-experimental-programming-suite

http://www.cs.brown.edu/people/acb/codebubbles_site.htm

Ответы [ 5 ]

4 голосов
/ 18 июня 2010

Эндрю Ко (ранее КМУ, ныне профессор U Wash) сосредоточил большую часть своей диссертации на том, чтобы позволить людям отлаживать, спрашивая «Почему что-то случилось» или «почему он этого не сделал». Проект назывался WhyLine , и у него даже была версия для Java.

2 голосов
/ 18 июня 2010

Я, наверное, ужасный человек, чтобы говорить об этом, так как я нахожу использование таких IDE, как программирование со свинцовыми гирями на руках, но я полагаю, что было бы полезно получить представление об этой стороне забора.Любые интересные или экспериментальные идеи, с которыми сталкиваются люди, все еще должны иметь дело с основными потребностями инструментов разработчика.

Обычно среда IDE - это своего рода редактор, отладчик и компилятор.Так как это три отдельные части инструмента, я пробежусь по ним отдельно

Вот что я хочу от редактора:

  1. , чтобы быть быстрым.Я никогда не хочу ждать загрузки вещей.ever.
  2. дайте мне мощные способы манипулировать и прыгать в коде.Меня не волнует изучение кривых, когда это инструмент, которым я пользуюсь, в среднем, по 10 часов в день, с другой стороны, я не хочу тратить свое время на освоение не мощных инструментов.
  3. дай мне приличный способ открывать файлы.Диалоги открытых файлов недостаточно хороши, как и деревья проектов.
  4. хорошая поддержка для одновременного открытия многих вещей.У меня 27-дюймовый экран, вкладок далеко не достаточно. В настоящее время я живу со сплитами, но было бы нетрудно придумать что-нибудь получше.
  5. никогда не заставляю меня трогать мышь при редактировании кода.Мне не нужны кривые обучения, мне нужны скорость, эффективность и мощность.
  6. Если вы дадите мне визуальный дизайнер, это сделает меня более продуктивным, чем печатать, создавая код с тем же самымуровень гибкости, который я могу создавать с помощью текста. Мне еще предстоит найти визуального дизайнера, который бы это делал, каждый, кого я когда-либо использовал, в основном понижает планку обучения тому, как что-то делать, но заставляет вас платить за ремонтопригодностьи гибкость. Я рассматриваю каждый пример программирования, рисуя картинки, которые у меня бывают неудачными, если они используются для серьезных целей (то есть не просто для того, чтобы что-то ударить и не заботиться о качестве)
  7. автоматизированный рефакторинг. Iсейчас я использую vim, и мне не хватает возможности извлекать методы из других методов.ds, или нажмите кнопку, чтобы переименовать что-то и чувствовать себя в безопасности с тем, что будет делать инструмент.
  8. анализ кода.Я хочу видеть синтаксические ошибки по мере их появления, видеть, набираю ли я избыточный код, или видеть предложения, если есть лучший способ что-то сделать.
  9. отличный тестовый бегун.Я практикую TDD, и плохие тестировщики гонят меня вверх по стене, поскольку это оказывает такое влияние на все, что я делаю.

что я хочу от отладчика

  1. aРЕПЛ.это сводило меня с ума, когда я застрял в визуальной студии, и я, вероятно, провел больше времени в непосредственном окне, чем кто-либо другой в команде.Весь смысл отладчика заключается в способности исследовать, что происходит во время выполнения, если я не могу набрать произвольный код и посмотреть, к чему он относится, я чувствую, что у меня одна рука связана за спиной
  2. способность менять код на лету, хотя с приличным REPL и языком, такого рода заботится о себе
  3. способность двигаться вперед и назад при исполнении.
  4. скорость, не заставляй меня ждать
  5. хорошие способы прыгать в коде.если я нахожусь в строке 1 и хочу перейти к строке 500, чтобы увидеть, что происходит, я смогу сделать это

, что я хочу от компилятора

  1. скорость, по крайней мере, в режиме разработки.Google Go может скомпилировать 500, 000 loc в миллисекундах на ноутбуке, это то, о чем я говорю.Если язык должен быть скомпилирован, то каждое второе нажатие на вывод компилятора только усложняет выполнение того, что вы делаете (отслеживание ошибки, тестирование функции, запуск тестов и т. Д.)
  2. вам нужнокакой-то способ подключиться к произвольным методам для предварительного и последующего выполнения или предварительной обработки ваших файлов кода в более общем виде (например, макросы lisp reader).если вы не можете сделать это с языком, вы должны быть в состоянии сделать это с помощью компилятора
  3. хороший анализ. скажите мне, где я облажался во время компиляции, если вы не можете поймать его раньше
  4. прозрачность. я действительно даже не хочу знать его там, если я не взаимодействую с ним напрямую.

Что у меня есть

В настоящее время я использую vim, который дает мне 1, 2, 3 (с fuzzyfinder.vim / rails.vim), 4, 5 и очень плохие 8 (с syntastic.vim). У меня нет рефакторинга или анализа кода, и я действительно скучаю по нему, но IMO это больше, чем компромисс.

для отладки я использую ruby-debug, который на самом деле не так уж и хорош. в основном вы получаете 1, 2 (больше причины ruby, чем ruby-debug) и 3, но это так.

Больше не пользуйтесь компилятором (слава богу), но не пользуйтесь им после того, как его использовали в течение 7 лет (по крайней мере, профессионально), действительно подчеркивает, какое ужасное влияние они оказывают на процесс разработки.

1 голос
/ 18 июня 2010
1 голос
/ 18 июня 2010

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

Редактировать: Я буду расширяться на этом. Современные системы хранилищ, такие как SVN или TFS, могут просто раздражать при работе с конфликтами. Если изменения, сделанные другим разработчиком, могут быть немедленно отражены в вашей системе, возможно, выделены каким-либо образом, тогда будет легче узнать, с чем не связываться.

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

0 голосов
/ 24 июня 2013

Идеи, которые я добавляю к миксу:

TouchDevelop , в режиме реального времени и на основе сетки Непрерывная интеграция , Формальная проверка ( Why3 , ITI0060 )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...