2009-08-18 2 views
36

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

Я хотел бы попросить сообщество «Переполнение стека» помочь вам в продвижении проекта, чтобы превратить его в исключительную среду разработки для Perl. Поэтому я был бы рад узнать, что вы думаете о том, какие наиболее важные функции IDE, которые все еще отсутствуют в Padre ?.

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

+5

Я думаю, вы должны также заботиться о мнении тех, которые используют Vim (да, а также EMACS (там, я это сказал)). Это самые трудные пользователи, чтобы выиграть. – innaM

+4

@Manni: как пользователь Vim, я могу сказать, что это невероятно маловероятно, что я могу выиграть. Я предполагаю, что многие (большинство?) Vim и Emacs (там, я сказал) пользователи будут чувствовать то же самое. Мы знаем разницу между нашим предпочтительным редактором и более «современной» IDE. Мы предпочитаем нашу. – Telemachus

+1

Я сам пользователь vim - или раньше был - и я согласен с Telemachus, что я не думаю, что пользователи vim или emacs будут переключаться в больших количествах. По крайней мере, пока мы не реализуем клавиши emacs и vim. Тем временем мы призываем их украсть у Падре: http://code-and-hacks.blogspot.com/2009/07/stealing-from-padre-for-vim-part-3.html – szabgab

ответ

12

Два наиболее бесценные возможности я найти:

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

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

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

25

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

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

9

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

+2

+1 Падре тоже не нужно было бы реализовывать это с нуля. Он может использовать ctags. –

0

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

3

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

+0

Насколько возможно, ни один из нынешних разработчиков Padre не имеет возможности Visual Studio описать эти инструменты рефакторинга более подробно? Либо здесь, либо по электронной почте мне? ([email protected]) – szabgab

+1

Я думаю, что это проще всего, если загрузить бесплатную версию Windows с http://www.microsoft.com/express/product/default.aspx. Я лично использую C#. Пожалуйста, дайте мне знать, если вам нужны скриншоты. – weismat

+0

ОК - он называется Lexically Rename Variable - но мне не удается заставить его работать как на C# - я отправил вам несколько скриншотов в любом случае. – weismat

4

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

2

Возможно, это возможно посредством use strict; но может быть также ценная особенность, даже если не use «d явно, а именно:

другого дня мы провели около 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.

Это может быть реализована уже в Падре, хотя, как оказалось, не в Eclipse, + EPIC

+2

Я думаю, что правильное решение здесь должно было бы сказать пользователю, что он должен использовать строгую ссылку с соответствующей ссылкой на аналогию с автомобилем. Что-то вроде того, что вы не пускаете своего ребенка без пояса. Без этого вы не можете определить, действительно ли у пользователя есть как хэш, так и хэш. (хотя у нас могут быть специальные предупреждения для того, чтобы не использовать одно и то же имя переменной для скаляров и хэшей или массивов) – szabgab

+0

Ну, это, безусловно, имеет смысл. Случай, который я описал, случился перед усталыми глазами двух довольно опытных разработчиков Perl. Как-то было очень легко забыть о строгих правилах, и там вы идете. С другой стороны - случай демонстрирует некоторые более глубокие проблемы, связанные с самим Perl, такие как безопасность слабых типов. Поэтому я думал, что эти типы простых проблем могут быть решены с помощью IDE (или плагина для проверки работоспособности). –

4

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

+0

Согласен! И достойного менеджера проекта не должно быть слишком сложно реализовать. Кроме того, конкуренция довольно слабая. Проект IDC Комодо ошеломляет, контрастирует с интуицией, а функция сталкивается со своей интеграцией VCS. EPIC/Eclipse не имеют ничего подобного, о котором я знаю. – innaM

+0

EPIC/Eclipse имеет проекты (или, по крайней мере, что-то называемое «проектом»). Я помню, потому что в прошлый раз, когда я попробовал, подсветка синтаксиса не работала, если файл не был в проекте, что раздражало меня до конца. –

+0

Padre имеет (частично реализованное), но автоматическое управление проектами. Любая структура каталогов, которая похожа на модуль CPAN, рассматривается как проект без какой-либо ручной настройки. Значение любой директории, где есть Makefile.PL или Build.PL, считается корнем проекта. Что бы вы хотели видеть в качестве управления проектами? – szabgab

2

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

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

10

ОК, вот мой третий ответ, хотя я ненавижу говорить об этом.

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

+2

Мы знаем, что нам нужен простой установщик, у нас уже есть его на Windows, и в один прекрасный день мы будем иметь его на Linux и MacOSX. Нам просто нужна помощь. В то же время: какие тесты не выполняются? Те из Падре или какой-то пререк? На какой ОС? Вы сообщили о неудачных тестах? – szabgab

+2

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

+0

Для общедоступной записи: ошибка была исправлена ​​за пару минут до того, как я попытался сообщить об этом. – innaM

5

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

0

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

0

Линии, завершающие политику для файлов по каталогу и по всему проекту.

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

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

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

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

4

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

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

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

0

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

0

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

5

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

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

Я использую emacs. Я бы хотел, чтобы система помогла мне преобразовать код, особенно когда я работаю над уродливым кодом 1999 года, который использует философию begin-at-the-begin-go-to-end в сочетании с duplicate-and-modify.

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

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

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

+0

Я не видел, чтобы вы сообщали о сбоях в Падре в списке рассылки Падре или IRC-канале. – szabgab

+0

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

3

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

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

ПРИНЦИПЫ ХОРОШЕГО INTERACTIVE среда программирования

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. 
Смежные вопросы