Каковы наиболее важные особенности среды IDE для разработки на Perl?

Как некоторые из вас могут знать, я являюсь ведущим разработчиком Padre, IDE Perl. В первый год своей разработки Padre стал приемлемым текстовым редактором с некоторыми дополнительными функциями для разработки на Perl.

Я хотел бы попросить сообщество Stack Overflow оказать некоторую помощь в дальнейшем продвижении проекта, чтобы превратить его в исключительную среду разработки для разработки на Perl. Так что я был бы рад прочитать, как вы думаете, каковы наиболее важные функции IDE, которые все еще отсутствуют в Padre?.

Особенно мне было бы интересно от людей, которые в настоящее время используют Eclipse + EPIC, Komodo, Visual Studio или любой из текстовых редакторов для программистов.

20 ответов

Наиболее важной особенностью IDE для разработки на Perl (включая Padre) является:

интерактивный отладчик, который на самом деле работает. Например, запоминание точек останова, возможность углубления в сложные структуры данных и копирование (в буфер обмена) должны работать с отслеживаемыми переменными, в том числе с помощью команды меню "Копировать специальные", которая позволяет отображать их в различных форматах; скажем CSV, XML или табуляция.

Две самые бесценные особенности, которые я нахожу:

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

Хорошо, вот мой третий ответ, хотя я ненавижу это говорить.

Конкуренция довольно проста в установке. Падре нет. Я попытался обновиться до последней версии сегодня, и снова получил неудачные тесты.

Я большой пользователь Perl EPIC, и моя самая большая проблема в том, что я не могу перейти к функции, которая четко определена в текущем контексте (обычно нажатием клавиши F3). Это в значительной степени ударил или пропустил в этот момент.

Я работаю с Комодо. Я также использую другие редакторы, но большую часть времени я возвращаюсь в Komodo. Хорошая IDE должна иметь:

  1. Хороший отладчик. Точки останова, списки наблюдения, все, что вам нужно.
  2. Удаленная отладка. Возможность отладки потоков.
  3. Подсветка синтаксиса, включая взвешенные шрифты (я был очень разочарован Oxygen, например, XSLT IDE, где я не могу использовать жирный шрифт для выделения зарезервированных терминов)
  4. Завершение синтаксиса.
  5. Инструменты управления проектами, предпочтительно расширяемые с помощью плагинов.

Стабильность. Люди быстро отворачиваются, если их редактор выходит из строя и они теряют свою работу.

Первое, что я ищу, это какой-то обзор текущего активного файла. Я хотел бы увидеть методы / функции и, если возможно, модули use'd и особенно любые выражения use base.

Вы решили это довольно хорошо в Падре.

Хорошая интеграция VCS. Это то, что мне очень нравится в Eclipse: вы сразу видите, какие файлы имеют локальные изменения, а какие еще не добавлены в хранилище. И вы можете просматривать различные версии и иметь хороший просмотр различий всего одним щелчком мыши.

Руководитель проекта. Для меня важно иметь возможность определять набор файлов и папок, которые составляют конкретную кодовую базу. Сессии полезны, но не замена.

Тестирование интеграции.

В Perl есть отличные инструменты для юнит-тестирования. Когда я запускаю свой набор тестов и получаю сбой, я хочу увидеть код теста, который не прошел.

Хороший способ просмотреть результаты теста и посмотреть код неудачного теста вместе с ожидаемыми и реальными результатами был бы хорошим подарком.

Вопрос кажется более спорным, чем ответственным. Опасаясь быть обвиненным в нарушении авторских прав, я опубликую содержание, которое я помню из книги "Интерактивные среды программирования" Дэвида Р. Барстоу, Говарда Э. Шробе, Эрика Сандеволла.

Это не будет точно так же, как я прочитал книгу много лет назад, и я записал ее на другом языке.

ПРИНЦИПЫ ХОРОШЕЙ ИНТЕРАКТИВНОЙ ПРОГРАММИРУЮЩЕЙ СРЕДЫ

1: Know the user

    + Know the previous knowledge and practice of the user

2: Minimize the memorization
    + Selection and not characters entering
    + Names and not numbers
    + Predictable behavior: the user should have a previous impression of what the system will do
    + Possible access and changing of the parameters of the system      

3: Optimization of operations
    + Fast execution of common operations
    + Inercy of visualization: the screen should change the less possible
    + Memorization of system operation in user,s memory
    + The meaning of specific operations should have a simple relationship with the state of the system
    + The system must be prepared to accept more than 10 followed
        commands per second, so that it can operate on the user,s muscular memory
    + The system should be prepared to organize the parameters of a command

4: Engineer for the errors
    + Provide good error messages.
    + Engineer it to remove away the common errors.
    + The system should provide reversible actions.
    + Redundancy: the operations should have more than one way of being done.
    + Integrity of data structures.

Рефакторинг в стиле Visual-Studio для переменных и имен функций и извлечение функций. Visual studio просматривает весь модуль для всех ссылок и позволяет вам видеть все измененные строки, если вы не хотите менять один экземпляр (по какой-либо причине)....

Это может быть достигнуто с помощью use strict; но может быть также ценной функцией, даже если нет useявно, а именно:

на днях мы потратили около 10-20 минут на отладку следующего поведения:

my %hash;

$hash->{'key1'} = value1;

# on reading in different module
print $hash{'key1'}; # is of course empty, but was so easy to overlook in the code above

резюме: правильная безопасность Perl, введенная IDE.

Возможно, он уже реализован в Padre, как оказалось, не в Eclipse+EPIC.

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

Мой редактор по выбору UltraEdit. Это не IDE, но благодаря его поддержке пользовательских инструментов я смог интегрировать такие функции IDE, как lint, контроль версий, отладка и многое другое.

Я использую Emacs. Мне нужна система, которая помогает мне реорганизовывать код, особенно когда я работаю над уродливым кодом 1999 года, который использует философию "начинай с начала, переходи к концу" в сочетании с дублированием и модификацией.

Я посмотрел на Eclipse, но не могу работать с системой, которая требует от меня создания проекта, прежде чем я смогу внести в файл односимвольное исправление.

Я посмотрел на Падре, но он медленно и вылетает.

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

Я не знаю, сможет ли это сделать Падре, но возможность разделить экран очень важна для меня. Как пользователь VIM, я постоянно разделял свой экран, чтобы посмотреть на другой файл во время кодирования.

Возможность использовать мой собственный выбор редактора (который он может иметь, насколько я знаю). Это имеет шанс победить людей vim/emacs.

Возможность создания и отладки кода XS.

Политики окончания строки для файлов, по каталогам и по всему проекту.

Поэтому для данного проекта или каталога я бы хотел, чтобы все окончания строк были только LF. Находясь в другом каталоге, я могу пожелать иметь смесь файлов CRLF и LF.

Я много работаю над тем, что происходит между Unix и Win32.

Типичное решение автоматической конвертации всех файлов назад и вперед при переходе с платформы на платформу мне не помогло.

Когда файл создается в неправильном формате случайно, это может быть настоящей болью.

Интеграция цикла чтения-оценки-печати. Как активный пользователь Emacs, я очень ценю Sepia. Очень полезно для того, чтобы попробовать что-то перед тем, как я передам их в код.

Другие вопросы по тегам