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

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

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

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


person Community    schedule 18.08.2009    source источник
comment
Я думаю, вам также следует позаботиться о мнении тех, кто использует vim (да, а также emacs (вот, я это сказал)). Таких пользователей будет сложнее всего привлечь на свою сторону.   -  person innaM    schedule 18.08.2009
comment
@Manni: как пользователь Vim я могу сказать, что невероятно маловероятно, что меня удастся завоевать. Я предполагаю, что многие (большинство?) Пользователи Vim и Emacs (я так сказал) почувствуют то же самое. Мы знаем разницу между предпочитаемым редактором и более современной IDE. Мы предпочитаем нашу.   -  person Telemachus    schedule 18.08.2009
comment
Я сам являюсь пользователем vim - или раньше - и согласен с Telemachus, что не думаю, что пользователи vim или emacs будут переключаться в большом количестве. По крайней мере, до тех пор, пока мы не реализуем сочетания клавиш emacs и vim. А пока мы призываем их украсть у Падре: code-and-hacks.blogspot.com/2009/07/   -  person szabgab    schedule 18.08.2009
comment
@Szabgab: ты говоришь это как выздоравливающий алкоголик. :)   -  person Telemachus    schedule 18.08.2009
comment
Пользователям vi / emacs нелегко переключиться, пока кто-нибудь с современной IDE / Debugger не покажет им, чего им не хватает. Когда я показываю людям PHPEd для PHP или Eclipse с PDT или Eclipse с EPIC, они обычно очень впечатляются. Многие из них достаточно подвержены влиянию, чтобы переключиться.   -  person Artem Russakovskii    schedule 18.08.2009
comment
Я вообще на это не верю, Артем. В настоящее время я, кажется, двигаюсь в противоположном направлении, от Eclipse к (g) vim.   -  person innaM    schedule 18.08.2009
comment
Но какими бы крутыми ни были vim и emacs, я думаю, что ребятам из Падре следует попытаться заставить этих людей перейти на Падре. Почему бы хотя бы не попробовать?   -  person innaM    schedule 18.08.2009
comment
@ Артем Русаковский, как вы думаете, какие особенности этих IDE так впечатляют пользователей vim / emacs? Они действительно переключаются или они просто впечатлены?   -  person szabgab    schedule 19.08.2009
comment
Пользователь Vim здесь. Я не использовал Vim больше нескольких месяцев и не знаю, смогу ли я вернуться в мир IDE ..   -  person Jeff Bain    schedule 20.08.2009


Ответы (20)


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

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

person Community    schedule 18.08.2009

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

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

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

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

person Community    schedule 18.08.2009
comment
Мы знаем, что нам нужен простой установщик, он у нас уже есть в Windows, и однажды он будет и в Linux, и в MacOSX. Нам просто нужна помощь с этим. А пока: какие тесты терпят неудачу? Те из Падре или некоторые предварительные требования? На какой ОС? Вы сообщили о неудавшихся тестах? - person szabgab; 19.08.2009
comment
Не волнуйся. Я знаю, что вы, ребята, работаете над этим, и я собирался опробовать вашу систему билетов сегодня. Но поскольку вы спросили, какие функции я ищу в Perl IDE, я (нерешительно) ответил. - person innaM; 19.08.2009
comment
Для всеобщего сведения: ошибка была исправлена ​​за пару минут до того, как я попытался сообщить о ней. - person innaM; 19.08.2009

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

person Community    schedule 18.08.2009
comment
+1 Падре тоже не нужно было бы реализовывать это с нуля. Он мог использовать ctags. - person Michael Carman; 18.08.2009

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

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

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

person Community    schedule 18.08.2009

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

Вы очень хорошо решили эту задачу в «Падре».

person Community    schedule 18.08.2009

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

person Community    schedule 18.08.2009

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

person Community    schedule 18.08.2009
comment
Согласованный! А достойного менеджера проекта даже не должно быть слишком сложно реализовать. К тому же конкуренция довольно слабая. Проект Komodo IDE ошеломляет, противоречит интуиции, а его функции противоречат их собственной интеграции VCS. EPIC / Eclipse не имеют ничего подобного, о чем я знаю. - person innaM; 18.08.2009
comment
У EPIC / Eclipse есть проекты (или, по крайней мере, то, что называется проектом). Я помню, потому что в последний раз, когда я пробовал это, подсветка синтаксиса не работала, если файл не был в проекте, что меня до бесконечности раздражало. - person Michael Carman; 19.08.2009
comment
У Падре есть (частично реализовано), но автоматическое управление проектами. Любая структура каталогов, которая выглядит как модуль CPAN, рассматривается как проект без какой-либо ручной настройки. Это означает, что любой каталог, в котором есть Makefile.PL или Build.PL, считается корнем проекта. Что бы вы хотели видеть в управлении проектами? - person szabgab; 19.08.2009
comment
@ Майкл: Ага! Ты прав. Раньше я использовал проекты как своего рода файловый браузер. Требование, чтобы все было в каком-то проекте и чтобы проектам не нравилось, когда жизнь за пределами вашего рабочего пространства, эээ ... неоптимально. - person innaM; 19.08.2009
comment
@szabgab: основная функциональность - возможность определять набор файлов, каталогов (которые неявно включают их содержимое, возможно, с фильтрацией) и логических группировок (виртуальные папки, которые могут содержать файлы и каталоги). Должно быть древовидное представление для просмотра и открытия файлов в проекте и механизм переключения между проектами. Наличие корневого каталога полезно (особенно, если вы перемещаете данные), но файлы не должны находиться в корневом каталоге, чтобы быть в проекте. Все остальное - подливка: например, сборка, запуск набора тестов или создание дистрибутива. - person Michael Carman; 19.08.2009

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

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

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

person Community    schedule 19.08.2009

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

person Community    schedule 18.08.2009
comment
Поскольку, вероятно, ни у одного из нынешних разработчиков Падре нет Visual Studio, не могли бы вы описать эти инструменты рефакторинга более подробно? Либо сюда, либо по электронной почте? ([email protected]) - person szabgab; 19.08.2009
comment
Я думаю, будет проще, если вы загрузите бесплатную версию для Windows с microsoft.com/express/product /default.aspx. Я лично использую C #. Пожалуйста, дайте мне знать, если вам понадобятся скриншоты. - person weismat; 19.08.2009
comment
Хорошо - она ​​называется Lexically Rename Variable - но мне не удается заставить ее работать, как в C # - я все равно отправил вам несколько снимков экрана. - person weismat; 19.08.2009
comment
спасибо за скриншоты, открыл тикеты padre.perlide.org/trac/ticket/492 padre.perlide.org/trac/ticket/494, но вы должны объяснить, что не работает для вас в Lexically Rename Variable, поэтому мы можем либо объяснить, как это работает, либо исправить это. - person szabgab; 19.08.2009

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

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

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

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.
person Community    schedule 03.05.2011

Возможно, этого можно добиться с помощью 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.

person Community    schedule 18.08.2009
comment
Я думаю, что правильным решением здесь было бы сказать пользователю, что он должен использовать strict с соответствующей ссылкой на аналогию с автомобилем. Что-то вроде запрета отпускать ребенка без ремня. Без этого вы не сможете определить, действительно ли у пользователя есть хэш% и хэш $. (хотя у нас могут быть специальные предупреждения, чтобы не использовать одно и то же имя переменной как для скаляров, так и для хэшей или массивов) - person szabgab; 18.08.2009
comment
Что ж, в этом есть смысл. Описанный мною случай произошел на глазах у двух довольно опытных Perl-разработчиков. Почему-то было очень легко забыть о строгости и готово. С другой стороны - случай демонстрирует некоторые более глубокие проблемы, связанные с самим Perl, такие как слабая безопасность типов. Поэтому я подумал, что такие простые проблемы можно решить с помощью IDE (или плагина для проверки работоспособности). - person D_K; 19.08.2009

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

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

person Community    schedule 18.08.2009

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

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

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

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

person Community    schedule 24.02.2011
comment
Я не видел, чтобы вы сообщали о сбоях в Padre в списке рассылки Padre или на канале IRC. - person szabgab; 25.02.2011
comment
Я не оставался с ним достаточно долго, чтобы понять, почему он не работает. Я вижу, что он установлен как часть CentOS на моем ноутбуке, и, похоже, он работает. Я с нетерпением жду возможности попробовать. - person Tom Legrady; 14.01.2012

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

person Community    schedule 18.08.2009

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

person Community    schedule 19.08.2009

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

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

Я много работаю над вещами, которые переключаются между средами Unix и Win32.

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

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

person Community    schedule 19.08.2009

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

person Community    schedule 09.02.2010

Возможность использовать собственный редактор по выбору (который, насколько мне известно, может быть у него). У этого есть шанс победить людей, работающих с vim / emacs.

person Community    schedule 09.02.2010