2009-08-18 11 views
36

Jak niektórzy z was mogą wiedzieć, że jestem głównym programistą Padre, the Perl IDE. W pierwszym roku rozwoju Padre stał się akceptowalnym edytorem tekstu z dodatkowymi funkcjami do rozwoju Perla.Jakie są najważniejsze cechy IDE dla rozwoju Perla?

Chciałbym poprosić społeczność Stack Overflow o pomoc w kierowaniu projektem, aby uczynić go wyjątkowym środowiskiem IDE dla rozwoju Perla. Czyli z przyjemnością przeczytałbym, co sądzisz o najważniejszych cechach IDE, których wciąż brakuje w Padre ?.

Szczególnie byłbym zainteresowany od ludzi, którzy obecnie używają Eclipse + EPIC, Komodo, Visual Studio lub dowolnego edytora tekstowego dla programistów.

+5

myślę, że należy również dbać o opinię tych, które używają vim (tak, a także Emacs (tam, powiedziałem to)). Będą to najtrudniejsi użytkownicy, którzy mogą wygrać. – innaM

+4

@Manni: jako użytkownik Vima mogę powiedzieć, że jest ogromnie mało prawdopodobne, żebym mógł zostać wygrany. Domyślam się, że wielu (najbardziej?) Vim i Emacs (tutaj, powiedziałem to) użytkownicy czuliby się tak samo. Znamy różnicę między naszym preferowanym edytorem a bardziej "nowoczesnym" IDE. Preferujemy nasze. – Telemachus

+1

Sam jestem użytkownikiem vim - lub byłem nim - i zgadzam się z Telemachus, że nie sądzę, aby użytkownicy vim lub emacs przełączali się w dużych ilościach. Przynajmniej dopóki nie zaimplementujemy emacs i vim keybindings. W międzyczasie zachęcamy ich do kradzieży z Padre: http://code-and-hacks.blogspot.com/2009/07/stealing-from-padre-for-vim-part-3.html – szabgab

Odpowiedz

12

Dwa najbardziej bezcenne cechy znajdę:

  • wiersz po wierszu debugowania watchpoints, punkty przerwania i tak dalej, więc mogę właściwie debugowania mojego kodu.
  • ukończenie kodu, więc nie muszę szukać dokumentów (nawet online).
4

Pierwszą rzeczą, której szukam, jest pewien przegląd nad aktywnym plikiem. Chciałbym zobaczyć metody/funkcje i, jeśli to możliwe, moduły used i szczególnie przydatne instrukcje bazowe.

Rozwiązałeś to całkiem dobrze w Padre.

25

Najważniejszą cechą IDE dla rozwoju Perl (w tym Padre) wynosi:

interaktywny debugger, które faktycznie działa. Na przykład. zapamiętywanie pułapek, umiejętność przechodzenia w skomplikowane struktury danych i kopiowanie (do schowka) powinno działać na obserwowanych zmiennych - w tym polecenie menu Kopiuj specjalne, które pozwala na umieszczanie go w różnych formatach; powiedz CSV, XML lub oddzielone tabulatorami.

9

jestem ciężki Perl EPIC użytkownika i moim największym problemem nie jest jest w stanie przejść do funkcji, która jest jasno określony w bieżącym kontekście (zwykle przez naciśnięcie F3). W tym momencie jest bardzo mocno trafiony lub chybiony.

+2

+1 Padre nie trzeba zaimplementować to od podstaw, albo. Może użyć ctags. –

0

Integracja pętli read-eval-print. Jako ciężki użytkownik Emacsa bardzo doceniam numer Sepia. Bardzo przydatny do wypróbowania rzeczy, zanim polecę im kodowanie.

3

Refaktoryzacja stylu Visual-Studio dla zmiennych i nazw funkcji oraz ekstrakcji funkcji. Visual studio przeszukuje cały moduł pod kątem wszystkich odniesień i pozwala zobaczyć wszystkie zmienione linie na wypadek, gdy nie chcesz zmienić jednej instancji (z jakiegokolwiek powodu).

+0

Jak pewnie żaden z obecnych twórców Padre'a nie ma Visual Studio, mógłbyś opisać te narzędzia refaktoryzacji nieco bardziej szczegółowo? Albo tutaj, albo e-mail do mnie? ([email protected]) – szabgab

+1

myślę, że najłatwiej jeśli pobrać darmowe wersje Windows z http://www.microsoft.com/express/product/default.aspx. Osobiście używam C#. Daj mi znać, jeśli potrzebujesz zrzutów ekranu. – weismat

+0

OK - to nazywa się leksykalnie Zmień nazwę zmiennej - ale nie udało się dostać pracy jak w C# - Wysłałem Ci kilka zrzutów ekranu i tak. – weismat

4

Dobra integracja VCS. To jest coś, co absolutnie kocham w Eclipse: od razu widać, jakie pliki mają lokalne zmiany i które nie zostały jeszcze dodane do repozytorium. Możesz przeglądać różne wersje i mieć ładny widok różnicowy za jednym kliknięciem myszy.

2

Można to ewentualnie osiągnąć poprzez use strict; ale może być również cenną cechą, nawet jeśli nie use „d jawnie, a mianowicie:

drugi dzień spędziliśmy około 10-20 minut debugowania następujące zachowanie:

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 

resume: odpowiedni typ Perl bezpieczeństwo wprowadzone przez IDE.

To może już być realizowane w Padre, chociaż, jak się okazało nie w Eclipse + EPIC

+2

Myślę, że właściwym rozwiązaniem byłoby powiedzenie użytkownikowi, że musi używać ścisłego z odpowiednim odniesieniem do analogii samochodu. Coś w stylu, by nie pozwolić dziecku wyjść bez paska. Bez tego nie można stwierdzić, czy użytkownik rzeczywiście ma zarówno% hasz, jak i $ hasz. (chociaż moglibyśmy mieć specjalne ostrzeżenia, że ​​nie używamy tej samej nazwy zmiennej zarówno dla skalarów i skrótów, jak i tablic). – szabgab

+0

Cóż, to na pewno ma sens. Przypadek, który opisałem, zdarzył się przed zmęczonymi oczami dwóch dość doświadczonych twórców Perla. Jakoś bardzo łatwo było zapomnieć o surowości i proszę. Z drugiej strony - przypadek pokazuje jakieś bardziej głębokie problemy związane z Perl się, jak słaby bezpieczeństwa typu. Pomyślałem więc, że te typy prostych problemów można rozwiązać za pośrednictwem IDE (lub wtyczki do sprawdzania poprawności). –

4

Kierownika projektu. Dla mnie ważne jest, aby móc zdefiniować zestaw plików i folderów, które składają się na określoną bazę kodów. Sesje są przydatne, ale nie zastępcze.

+0

Zgoda! A przyzwoity kierownik projektu nie powinien być nawet zbyt trudny do wdrożenia. Poza tym konkurencja jest dość słaba. Projekt Komodo IDE jest zadziwiający, intuicyjny, a funkcja zderza się z własną integracją VCS. EPIC/Eclipse nie mają czegoś takiego, o czym jestem świadomy. – innaM

+0

EPIC/Eclipse ma projekty (a przynajmniej coś zwanego "projektem"). Pamiętam, ponieważ kiedy ostatnio próbowałem, podświetlanie składni nie działało, dopóki plik nie był w projekcie, co drażniło mnie bez końca. –

+0

Padre ma (częściowo wdrożone), ale automatyczne zarządzanie projektem. Każda struktura katalogów wyglądająca jak moduł CPAN jest traktowana jako projekt bez ręcznej konfiguracji. Oznacza to, że katalog, w którym znajduje się plik Makefile.PL lub Build.PL, jest uważany za główny element projektu. Co chciałbyś zobaczyć jako zarządzanie projektem? – szabgab

2

Możliwość konfigurowania i uruchamiania zewnętrznych narzędzi (wiersza poleceń). Wtyczki są świetne, ale użytkownicy końcowi niekoniecznie będą chcieli je stworzyć tylko w celu integracji z zewnętrznym narzędziem. Umożliwienie użytkownikom konfigurowania własnych narzędzi zapewnia dużą elastyczność i minimalne bariery wejścia.

Mój redaktor z wyboru to UltraEdit. To nie jest IDE, ale dzięki obsłudze narzędzi użytkowników mogłem zintegrować funkcje IDE, takie jak lint, kontrola wersji, debugowanie i inne.

10

OK, oto moja trzecia odpowiedź, chociaż nie lubię tego mówić.

Konkurs jest dość łatwy do zainstalowania. Padre nie jest. Próbowałem zaktualizować do najnowszego wydania już dziś i po raz kolejny dostałem testy niepowodzenia.

+2

Wiemy, że potrzebujemy prostego instalatora, mamy go już na Windowsie i pewnego dnia będziemy go mieli również na systemach Linux i MacOSX. Potrzebujemy tylko pomocy. W międzyczasie: Jakie testy zawodzą? Ci z Padre lub trochę prereq? Na jakim systemie operacyjnym? Czy zgłosiłeś awarię testów? – szabgab

+2

Nie martw się. Wiem, że ludzie nad tym pracują i zamierzałem dzisiaj wystartować z twoim systemem biletowym. Ale ponieważ zapytałeś, jakie funkcje szukam w IDE Perl, odpowiedziałem (z wahaniem). – innaM

+0

Do publicznej wiadomości: błąd został naprawiony kilka minut przed próbą zgłoszenia. – innaM

5

Stabilność. Ludzie szybko się odwracają, jeśli ich wydawca ulega awarii i tracą pracę.

0

Możliwość tworzenia i debugowania kodu XS.

0

Zasady zamykania linii dla plików, według katalogu i całego projektu.

Tak więc, dla danego projektu lub katalogu, chciałbym, aby wszystkie zakończenia linii były tylko LF. Będąc w innym katalogu mogę chcieć mieć mieszankę plików CRLF i LF.

Pracuję dużo nad rzeczami, które pojawiają się w różnych środowiskach Uniksa i Win32.

Typowym rozwiązaniem automatycznego konwertowania wszystkich plików iz powrotem jako jeden ruchy z platformy na platformę, nie działa dobrze dla mnie.

Kiedy plik zostanie utworzony w niewłaściwym formacie przez przypadek, może to być prawdziwy ból.

4

Testowanie integracji.

Perl ma świetne narzędzia do testowania jednostek. Po uruchomieniu zestawu testów i niepowodzeniu chcę zobaczyć kod testu, który się nie powiódł.

Mając dobry sposób, aby przejść przez wyników badań i zobaczyć kod dla nieudanego testu wraz z oczekiwanymi a rzeczywistymi wynikami byłoby wielkim dobrodziejstwem.

0

ja nie wiem, czy Ojciec może to zrobić, ale zdolność do dzielenia ekranu jest dla mnie bardzo ważne. Jako użytkownik VIM I ciągle podzielona mój ekran patrzeć na innego pliku podczas kodowania.

0

Możliwość korzystania z własnego wyboru edytora (który może mieć, o ile wiem). To ma szansę na zwycięstwo nad ludźmi vim/emacs.

5

Pracuję z Komodo. Używam też innych redaktorów, ale w większości przypadków wracam do Komodo. Dobry shuff IDE:

  1. Dobry debugger. Punkty przerwań, listy obserwacyjne, wszystko, czego potrzebujesz.
  2. Zdalne debugowanie. Możliwość debugowania wątków.
  3. Podświetlanie składni, w tym także ważone czcionki (byłem bardzo rozczarowany, na przykład, Oxygen, XSLT IDE, gdzie nie można używać pogrubionych czcionek do podkreślenia zarezerwowanych terminów)
  4. Składnia zakończenia.
  5. Narzędzia do zarządzania projektami, najlepiej z możliwością rozszerzenia za pomocą wtyczek.
1

Używam emacs. Chciałbym systemu, który pomógłby mi w kodowaniu refaktoryzacji, szczególnie gdy pracuję nad brzydkim kodem z 1999, który wykorzystuje filozofię "zaczynać od początku do końca" w połączeniu z duplikowaniem i modyfikowaniem.

Spojrzałem na Eclipse, ale nie mogę pracować z systemem, który wymaga ode mnie utworzenia projektu, zanim będę mógł dokonać jednoznakowej korekty pliku.

Spojrzałem na Ojca, ale jest wolny i się załamuje.

Spojrzałem na Kod, który twierdzi, że jest skonfigurowany przez CSS, ale nie mogę znaleźć strony man, która powie mi gdzie umieścić CSS.

+0

Nie widziałem, żebyś zgłaszał awarie w Padre na liście dyskusyjnej Padre lub kanale IRC. – szabgab

+0

Nie zostałem z nią wystarczająco długo, aby dowiedzieć się, dlaczego to się nie udawało. Widzę, że jest zainstalowany jako nowy element CentOS na moim laptopie i wygląda na to, że działa. Nie mogę się doczekać, żeby spróbować. –

3

Pytanie wydaje się być bardziej dyskusyjne niż wymagalne. Ryzykując, że jestem oskarżony o naruszenie praw autorskich, opublikuję treść, którą pamiętam z książki "Interaktywne środowiska programistyczne" autorstwa Davida R. Barstowa, Howarda E. Shrobe'a, Erika Sandewall.

To nie będzie dokładnie to samo, co przeczytałem książkę wiele lat temu i napisałem ją w innym języku.

ZASADY DOBREGO INTERACTIVE środowisko programistyczne

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. 
Powiązane problemy