Jakie cechy IDE sprawiłyby, że byłby bardziej użyteczny niż edytor ogólnego przeznaczenia

10

Tworzę IDE dla języka Lua. Uważam, że wielu programistów nie lubi używać IDE i woli VIM (który jest obecnie w modzie), SCiTE lub.

Próbując wygrać dzielenie myśli, jestem zainteresowany tym, jakie funkcje IDE mogłyby zapewnić, co uczyniłoby go atrakcyjną alternatywą dla edytora ogólnego przeznaczenia.

Czy istnieje „aplikacja-zabójca”, że tak powiem dla IDE, która sprawi, że będzie to „must have”?

Można to uznać za odwrotność

Najbardziej przydatne funkcje VIM, które nie są standardowe w IDE

Nie będę linkować do mojego IDE, chyba że ktoś o to poprosi - ale możesz po prostu wyszukać moje imię i nazwisko w Google.

EDYCJA: Moje IDE jest w rzeczywistości wtyczką językową dla istniejącego IDE, więc dziedziczę wiele funkcji z IDE hosta - na pewnym poziomie, chociaż moja obsługa języków jest sama w sobie IDE - przynajmniej w zakresie aspektów specyficznych dla języka zaniepokojony.

sylvanaar
źródło

Odpowiedzi:

19
  1. Funkcje refaktoryzacji (zmiana nazwy wpływa na zależności / metodę wyodrębniania / interfejs wyodrębniania itp.)
  2. Intellisense (lub dowolna inna funkcja uzupełniania kodu)
  3. Sprawdzanie błędów (IDE faktycznie zna swoje symbole)
  4. Bez kłopotów z konfiguracją
  5. Zintegrowany kompilator
  6. Zintegrowany debugger
  7. Lepsza nawigacja do iz referencji / deklaracji
  8. Szablony projektów / szablony plików
  9. Konstruktorzy GUI
  10. Potrafi automatycznie generować kod płyty kotłowej
  11. Jest intuicyjny i można go używać bez znajomości wszystkich magicznych kluczy (hej, dlatego właśnie GUI odniosły sukces)

Ogólnie, jak stwierdził @Thomas Owens, największą zaletą IDE jest integracja narzędzia z efektami synergii jako całości, a jednocześnie jest intuicyjny i łatwy w użyciu.

Sokół
źródło
3
Ogólnie rzecz biorąc, powiedziałbym, że integracja narzędzi jako całości - integracja z kontrolą wersji, serwerem ciągłej integracji, śledzeniem błędów, kompilatorem, debuggerem, profilerem, analizą statyczną i tak dalej. Powiedziałbym, że zintegrowany kompilator i debugger to wielka sprawa, ale posiadanie wszystkiego w jednym ładnym, zgrabnym małym pakiecie jest pomocne.
Thomas Owens
@Thomas Owens: Bardzo prawda, ale nie wymieniłem na przykład kontroli źródła, ponieważ możesz łatwo zintegrować kontrolę źródła w vimie, więc to nie jest wielka sprawa, w końcu to tylko wywołanie z linii poleceń i na przykład wolę Tortoise niż AnkhSVN. Wymieniłbym profile, ale nie wszystkie IDE są dostarczane z jednym (na przykład VS nie ma już gotowych). Miary są miłym punktem, ale znowu tylko najnowszy VS oferuje to po afaik.
Falcon,
W Eclipse i NetBeans wiele z tych, o których wspomniałem, jest opartych na wtyczkach, chociaż istnieje wiele wtyczek (lub modułów lub rozszerzeń) dla vimów i emaców, które mają różne możliwości. Myślę, że to właśnie jest miłe w przypadku wszystkich narzędzi - łatwo wybrać to, co chcesz, abyś był produktywny.
Thomas Owens
Myślę, że mam większość tej listy do tego stopnia. Również formatowanie kodu. a nawet wsparcie zintegrowanej pomocy dla niestandardowych interfejsów API i bibliotek. Twoja lista jest jednak dość wyczerpująca. Być może ostatecznie sprowadza się to do osobistych preferencji i niewiele mogę zrobić. (Moje IDE to wtyczka IntelliJ - być może dla niektórych to za dużo)
sylvanaar
2
Chciałbym wyjaśnić, że takie rzeczy jak byłaby / przenoszenia są wielo-file (projekt-wide) - kiedy zmienić nazwę metody lub zmiennej pycharm (na przykład) zastosuje zmiany nazwy w poprzek każdego pliku w projekcie, nie tylko aktualnie edytowany jeden jak zrobiłby to redaktor. W przeciwnym razie z pewnością zgadzam się z tą listą. Kupiłem i zacząłem ostatnio używać PyCharm, a im więcej się tego uczę, tym bardziej mi się podoba (pomimo sporadycznych usterek :)
Cyclops
8

Duża różnica między IDE a ogólnym edytorem tekstowym polega na tym, że IDE rozumie język programowania, z którym pracujesz, i może automatycznie uzupełniać funkcje / metody, sprawdzać błędy, takie jak niewłaściwy typ i niepoprawna gramatyka. IDE ma również zintegrowane narzędzia, takie jak kompilator, dzięki czemu można kompilować i uruchamiać program za pomocą poleceń w IDE.

Ale myślę, że VIM może zrobić coś więcej niż zwykły edytor tekstów, może w niektórych przypadkach można go postrzegać jako IDE.

Jonas
źródło
2
+1 za „rozumienie języka”. Myślę, że większość wszystkiego wynika z tego.
Dean Harding
tak - moja implementacja obsługi języka jest świadoma zarówno syntaktycznie, jak i semantycznie.
sylvanaar
4

Narzędzia do refaktoryzacji

Jedyny powód, dla którego nie używam mojego ulubionego ogólnego edytora tekstowego do kodowania. Ponieważ jeśli potrzebujesz makroryzować wspólne refaktoryzacje kodu w swoim ulubionym ogólnym celu, równie dobrze możesz użyć IDE z zainstalowanymi tymi narzędziami.

Najprościej powiedzieć, że większość IDE ma użyteczną funkcjonalność, jaką posiada emacs, jest po prostu ukryta w dowolnej kombinacji klawiszy.

Łup
źródło
2

Fajnie jest mieć funkcje IDE, których nie ma w edytorze tekstu: 1. Intellisense (autouzupełnianie i sugestie)

  1. Integracja z kompilatorem

  2. Integracja z systemem debugowania

  3. Integracja z kontrolą wersji

  4. Integracja z systemem baz danych

  5. Sprawdzanie składni w czasie rzeczywistym i pomoc

  6. Kolorowanie składni

  7. Obsługuje projekty nie tylko plików kodu

  8. Znajduje, gdzie stosowana jest metoda, i rysuje wykres (dotychczas nie spotykany w większości IDE)

  9. Rejestruje komponenty (w zależności od języka)

  10. Integracja z edytorami GUI

  11. Segmenty kodu zakładek

  12. Źródło bezpieczeństwa i dzielenie się między programistami

  13. Przywracanie projektu do poprzednich wersji

  14. Wiele konfiguracji projektu (test, rozwój, produkcja)

  15. Funkcje IDE można skonfigurować

  16. Inteligentne porównanie kodu źródłowego

  17. Automatyczna zmiana nazw zmiennych, metod itp.

Nie sądzę, aby tworzenie nowego IDE było przydatne.

Bez szans
źródło
Powinienem wspomnieć, że jest to wtyczka do istniejącego IDE. Zmienię moje pytanie.
sylvanaar
2

Chciałbym mieć IDE z edytowalnym edytorem, takim jak Emacs. Nie chcę pisać wtyczek, a następnie ponownie uruchomić IDE, aby je przetestować. Chcę zdefiniować działania w języku skryptowym (np. Python, ruby) i być w stanie natychmiast ich użyć, powiązać je z sekwencjami klawiszy itp. Język powinien być w stanie manipulować całym obszarem roboczym.

Kevin Cline
źródło
1

3 rzeczy zawsze decydują, czy użyję określonego IDE:

  • autouzupełnienie
  • Wizualny konstruktor GUI
  • Narzędzia danych dla pewnego rodzaju zintegrowanego ORM

Zasadniczo używam IDE, które ma większość tych funkcji lub najlepiej je wykonuje. Są to trzy rzeczy, które mają tendencję do zwiększania produktywności najbardziej poprzez ograniczenie kodowania na płytce drukowanej (GUI i DAL) oraz przez skrócenie czasu myślenia (autouzupełnianie pozwala mi ominąć wiele błędów związanych z API).

Morgan Herlocker
źródło
Oceniłbym narzędzia refaktoryzacyjne znacznie wyżej niż konstruktory GUI. Nie wszystkie programy mają GUI, ale mogą one wszystkie być przedmiotem refactoring w pewnym momencie.
FrustratedWithFormsDesigner
@FrustratedWithFormsDesigner - Sądzę, że każdemu odpowiada. Rzadko używam narzędzi do refaktoryzacji. Tak naprawdę nie mam nic przeciwko nim; Po prostu często wolę ręcznie refaktoryzować, aby upewnić się, że niczego nie popsuję.
Morgan Herlocker
Robiłem to też, chyba na początku nie ufałem takim narzędziom. I prawdą jest, że jeśli są źle wdrożone, często lepiej jest ręcznie refaktoryzować, ale kiedy te narzędzia są wykonane prawidłowo, są NIESAMOWITE !
FrustratedWithFormsDesigner