Was rechtfertigt die Verwendung einer IDE gegenüber einem Standardeditor? [geschlossen]

39

Ich benutze meinen Texteditor meiner Wahl (vim, nano, gedit, pick your poison) viel häufiger als jede andere IDE in der letzten Zeit.

Nachdem ich gemerkt hatte, dass meine IDE-Verknüpfungen staubig wurden, begann ich darüber nachzudenken und fragte mich: Was rechtfertigt die Verwendung einer IDE für Sie im Gegensatz zu einem Texteditor ?

Aus welchen Gründen würden Sie keine IDE verwenden und sich lediglich auf einen Editor verlassen?

Chris
quelle
mögliches Duplikat von programmers.stackexchange.com/questions/1003/… ?
Larry Coleman
was tun Sie eigentlich tun in Ihrer Redakteure?
Code schreiben, Anwendungen entwickeln, ... so ziemlich alles wie in letzter Zeit.
Chris
15
Persönlich finde ich IDEs viel nützlicher, wenn ich den Code anderer Leute (besonders große Projekte) lese, als wenn ich meinen eigenen Code schreibe. Mit IDEs können Sie einfacher durch den Quellcode navigieren und so den Quellcode anderer Personen schneller verstehen.
Charles Salvia
3
Ich möchte die Frage umdrehen. Was es rechtfertigt, KEINE IDE zu verwenden.
Nagler

Antworten:

69

Das Ich: Integration . Ein guter Texteditor ist zwar nützlich, um Code zu schreiben, aber der größte Teil Ihrer Programmierung wird nicht für das Schreiben aufgewendet. Es ist ein Test und ein Debugging-Vorgang, für den Sie möchten, dass Ihr Texteditor in Ihren Compiler und Ihren Debugger integriert wird. Das ist die größte Stärke einer IDE.

Mason Wheeler
quelle
Wenn ich nur einen finden könnte, der mir nicht im Weg steht :)
Tim Post
5
Ich bin gerade dazu gekommen, die Bearbeitung unter dem Durchschnitt als den Preis zu akzeptieren, den ich für die Bequemlichkeit der Integration zahle.
TMN
Testen Sie die Programmierung nicht, wenn Sie es richtig machen? Wenn Sie die meiste Zeit mit dem Debuggen und Testen von Affen verbringen, dann sehe ich, wo Ihr Problem liegt.
Tom Hawtin - Tackline
8
@Tom, Testen ist Programmieren, wenn Sie Tests, die Sie ständig durchführen, automatisieren können . Andernfalls überprüfen Sie mit einer beliebigen Methode, ob die höchste Qualität erzielt wird.
Andres Jaan Tack
49

Dies sind meine Lieblingsfunktionen meiner Lieblings-IDE, IntelliJ, die ich gerne für Java, PHP, Javascript, HTML und sogar ActionScript verwende.

  • Fehlerprüfung - Wie die Live-Rechtschreibprüfung für Code. Unbedingt erforderlich.
  • Code-Navigation - Geben SieCtrl+click für eine Funktion, eine Variable oder einen Text ein, um zur Definition zu gelangen. (IntelliJ kann das in allen oben genannten Sprachen sehr gut)
  • Code-Vervollständigung - Ich benutze Ctrl+spaceständig, um den Klassen- oder Methodennamen einzugeben, den ich benötige. Dies beschleunigt die Codierung einer Tonne und hilft sogar dabei, Fehler zu erkennen, bevor sie auftreten, wenn auf etwas, das Sie benötigen, in dem Kontext, in dem Sie sich befinden, nicht Ctrl+spacezugegriffen werden kann. "NoPageError", etc. Das Alt+enterautomatische Hinzufügen importist auch sehr schön.
  • Codegenerierung - Generieren Sie Getter und Setter, implementieren Sie Methoden von einer Schnittstelle mit ein paar Klicks.
  • Sehr gute Codefarbe - IntelliJ färbt nicht nur die Standardfarben für Schlüsselwörter, Zeichenfolgen und Variablennamen, sondern auch Elementvariablen, lokale Variablen und Parameter. In ActionScript wird eine Variable, die tatsächlich ein Setter / Getter ist, wie eine Funktion gefärbt.
  • Refactoring - Das fehlerfreie Umbenennen ist das größte. IntelliJ ist sehr gut darin, auch Setter und Getter oder String-Verwendungen umzubenennen. Natürlich gibt es regex-basiertes Suchen und Ersetzen bei Bedarf sowie die Option "Groß- / Kleinschreibung beibehalten", mit der Sie "myNumber", "MyNumber" und "MYNUMBER" durch "myString", "MyString" und "MYSTRING" ersetzen können. in einem Arbeitsgang
  • Integration der Versionskontrolle - Wir verwenden SVN, und meine bevorzugten IDE VC-Funktionen sind in der Lage, Klassen zu erstellen, zu löschen, zu verschieben, ohne über SVN nachzudenken, den Verlauf einfach zu durchsuchen, ein sehr gutes Diff-Tool, gute Zusammenführungsfähigkeit und das Kommentieren von Dateien (Anzeigen von Zeilen). By-Line-Verlauf) im Editor.
  • Importieren von Abhängigkeiten - Wenn Sie sich auf eine Bibliothek eines Drittanbieters verlassen, für die Sie die Quelle haben, können Sie zum Nachschlagen, Debuggen usw. problemlos zum Code navigieren.
  • Intelligentes Tippen - Einfügen von Code und automatisches Einfügen in die rechte Tabulatorposition, automatische Vervollständigung von Klammern, Klammern, Anführungszeichen usw.
  • Ein sehr guter Test - Läufer für JUnit, Flexunit, PHPUnit
  • Debuggen - natürlich. Debugs JBoss, Jetty, sogar Flash einwandfrei. Klicken Sie bei gedrückter Strg-Taste auf Stapelverfolgungen, um direkt zum Code zu gelangen.

Dinge wie die Codefarbe, die Sie für selbstverständlich halten, aber eine gute Codefarbe ist wie eine periphere Sicht - Sie können sich auf das Wichtige konzentrieren, ohne den Bruchteil einer Sekunde länger zu brauchen, um das vollständige Wort zu identifizieren.

IntelliJ Ctrl+spaceschlägt sogar Variablennamen vor. Wenn Sie in Java eine neue EventMessageItem-Variable deklarieren und drücken Ctrl+space, wird "eventMessageItem", "eventMessage", "item" usw. vorgeschlagen.

All diese Dinge geben mir viel mehr Zeit, um über meinen Code und meine Architektur nachzudenken und weniger über das Korrigieren der Formatierung, den Umgang mit dem Dateisystem, das Korrigieren von Fehlern beim Kopieren und Einfügen, das Wechseln zwischen Anwendungen, das Aufspüren der Dokumentation usw. usw. Ich weiß nicht, wie man eine solche Produktivitätssteigerung ablehnen kann.

Nicole
quelle
4
+ 1 für die Erwähnung von IntelliJ Idea - Ich liebe es einfach
Artjom
3
+1, die meisten Punkte hier gelten für jede anständige IDE, oder sollte :)
Matthieu
21

IDEs verstehen Ihren Code viel besser als ein Editor. Dies ermöglicht beispielsweise das Vervollständigen und Umgestalten von Identifikatoren, was für ausführliche Sprachen wie Java ein Geschenk Gottes ist.

user1249
quelle
1
Beachten Sie, dass für all dieses Verständnis Speicher erforderlich ist. Daher sind IDEs im Vergleich zu einem "Fit-on-a-Floppy" -Editor eher ressourcenhungrig.
19
Ja, aber mein 8-GB-i7-Entwickler muss etwas tun, während ich abtippe. : D
Dominique McDonnell
IDEs nicht haben , um Ressourcen hungrig zu sein. Aber Smalltalk ist wahrscheinlich ein Randfall: die einfache, sehr einfache Syntax von Reflection und so weiter.
Frank Shearar
@Frank, hängt davon ab, was Sie möchten und wie einfach das ist.
18
[To the IDE] You had me at intellisense/autocomplete
JohnFx
quelle
1
+1 Auch wenn es immer beunruhigend ist, festzustellen, dass ich nie mehr einen vollständigen Klassen-, Methoden- oder Eigenschaftsnamen eingebe und genau weiß, wie viele Tastenanschläge erforderlich sind, um die richtige Autovervollständigungsoption auszuwählen ... tic-tic-tic-TAB- Punkt-Tic-Tic-Tic-TAB-Punkt-Tic-Tic-Tic
Grossvogel
5
@groß, aber es ist richtig ! Manuelles Tippen bedeutet häufig Tippfehler.
@ TThorbjørnRavnAndersen Es sei denn, Sie haben zwei gleichnamige Elemente und geben versehentlich nicht genügend Zeichen ein, um das richtige zu erhalten. Ich habe versehentlich eine "NumberOfPoints" -Eigenschaft in einige Bereiche eingefügt, für die "NumberOfSegments" erforderlich war, da ich der automatischen Vervollständigung nicht genügend Aufmerksamkeit geschenkt habe: p. Davon abgesehen hätte ich lieber eine automatische Vervollständigung als keine.
KChaloux
14

Produktivität. Gibt es eine andere Rechtfertigung, die Sinn macht? Für mich eine gut konzipierte IDE, die viele der Funktionen zentralisiert, die ich beim Programmieren ausführe - Erstellen und Bearbeiten von Code, Verwenden der Quellcodeverwaltung, Debuggen, Interagieren mit Projektmanagement-Tools, Kommunizieren mit anderen Programmierern, Erstellen von Dokumentation und Ausführen automatisierter Tests - reduziert drastisch die Prozessreibung, die meine Produktivität verringert.

Auch wenn ich das Gefühl habe, jedes Tool einzeln verwenden zu müssen, möchte ich das nicht müssen. Zumindest für mich ist ein rechter Mausklick dem Öffnen einer CLI und dem Tippen unendlich vorzuziehen.

Ich habe viele verwendet, aber die IDEs, auf die ich immer wieder zurückkehre, sind Visual Studio, Wing IDE und NetBeans. Alle tragen erheblich zur Zeit bei, die ich mit Programmieren verbringe.

Adam Crossland
quelle
9

In der Vergangenheit waren IDEs auf einem Single-Tasking-Computer unübertroffen praktisch. Mein erster C-Compiler benötigte die folgenden Schritte im Zyklus zum Bearbeiten, Kompilieren und Ausführen:

  • Starten Sie den Editor
  • Programm bearbeiten
  • Programm speichern, Editor beenden
  • Programm kompilieren
  • Kompiliertes Programm zusammenstellen
  • Link kompiliertes und zusammengestelltes Programm
  • Programm ausführen

auf meinem CP / M-System. (Ich hätte vieles davon als Batch-Programm automatisieren können, wenn meine Festplatten größer gewesen wären.)

Als ich Turbo Pascal bekam, war ich erfreut, den Editor während des Kompilierens und Debuggens verfügbar zu halten.

Ich glaube, das hat IDEs überhaupt erst populär gemacht.

David Thornley
quelle
Aber all diese Dinge können von vielen Redakteuren erledigt werden. Zum Beispiel Emacs.
JasonFruit
@JasonFruit: Auf jeden Fall. Ich erkläre, was mich zuerst zu ihnen hingezogen hat. Damals habe ich CP / M auf einem TRS-80 Mod 4 ausgeführt, und ich glaube, Emacs war damals noch TECO-basiert.
David Thornley
Okay, Punkt. :-) (Emoticon, um die erforderliche Anzahl von Zeichen auszufüllen.)
JasonFruit
2
@ JasonFruit, CP / M-80-Maschinen hatten ein Maximum von 64 KB RAM. Überlegen Sie, wie viel Emacs Sie hineinpassen können.
7

Wenn Sie in Lisp programmieren, verfügt Emacs über Intellisense-ähnliche Funktionen wie das Nachschlagen von Methodenparametern und die automatische Vervollständigung. Sie können also sagen, dass es sich um die ursprüngliche IDE handelt. Es ist auch schön, ein Programm für mehrere Aufgaben verwenden zu können (Bearbeiten im Allgemeinen, Shell / Eingabeaufforderung, Nachrichten lesen).

Im Allgemeinen scheint die Frage Editor vs. IDE von der Programmiersprache abzuhängen. Nach allem, was ich gesehen habe, scheinen die Programmierer Ruby und Haskell ihren bevorzugten Texteditor zu bevorzugen.

Larry Coleman
quelle
Emacs kann das in fast jeder Sprache. Der PHP-Modus ist ganz gut, sind die Modi für Javascript, Haskell, Erlang und SQL. (Die anderen mögen auch gut sein, aber ich habe sie nicht benutzt).
Zachary K
Sobald Sie all diese Schnickschnack zu Emacs (oder einem Editor für diese Angelegenheit) hinzugefügt haben, ist das, was Sie haben, eine IDE. Integrierte Entwicklungsumgebung. Ich vergleiche es einen Kuchen aus einer Bäckerei (IDE) zum Kauf gegen es von Grund auf neu zu machen (ausgetrickst Editor)
sal
+1, Für Coq, Haskell und Lisp Emacs ist das einzige, was anständige Unterstützung findet
jozefg
4
  • Ein-Klick-Zusammenstellung
  • Debuggen
  • Code-Vorlagen
  • Code-Vervollständigung
  • Integration mit Versionskontroll- und Refactoring-Tools
  • Einfacher Unit-Test

um ein paar zu nennen

ysolik
quelle
3

Ich denke, die Antwort hängt stark davon ab, welche Programmiersprache Sie verwenden und wie gut Sie darin sind. Für Sprachen wie JAVA ist eine IDE ein Muss, wenn Sie etwas Ernstes tun. Überall dort, wo Skriptsprachen wie JS oder Ruby IDES nicht viel bringen.

Ich benutze Notepad ++ und eine Reihe von Shell-Skripten (für Backups, Git-Commits) für meine Entwicklung und es funktioniert einwandfrei.

Östlicher Mönch
quelle
Ich benutze GVIM für Javascript und finde, dass es VIEL schneller ist als mit einer IDE. Es wird auch viel weniger Speicher benötigt. Fügen Sie 3-4 Shell-Skripte für Dinge wie jsLint, Formatierung und Steuerung von Selen hinzu, und ich stelle fest, dass ich fast nie meine Hand von der Tastatur nehmen muss. (Und um ehrlich zu sein, könnte ich wahrscheinlich alle diese Skripte in VIM-Plugins umwandeln, wenn es mich interessiert.)
Zachary K,
3

Einige Argumente für "Redakteure":

  1. Es gibt Fälle, in denen eine IDE noch nicht entwickelt wurde oder nie entwickelt werden wird.
  2. Mit einem Editor können Sie Änderungen "schneller" und chirurgischer vornehmen.
  3. Es benötigt weitaus weniger Ressourcen (so dass es einfacher ist, viele offene gleichzeitig zu verwenden)
  4. Weil es die einzige Möglichkeit ist, einige Probleme wie die hier beschriebenen zu lösen .
  5. (persönlich) Manchmal, wenn ich alles tippen muss, arbeite ich mehr mit meinem Bewusstsein und beschäftige mich mehr mit dem, was ich tippe. Oft habe ich zum Beispiel einen Rechtschreibfehler in einer Methode (formaqString) gefunden, der mit einer IDE unbemerkt geblieben wäre.
  6. Es macht es einfacher, nur mit der Tastatur zu arbeiten (Geschwindigkeit / Fluss)
  7. Mentalität der Verwendung von Makros oder anderen Zeitersparnissen.

Ich benutze jeden Tag eine IDE, um zu arbeiten, sonst ist es schwierig, Java / C # zu schreiben.

(2) im Vergleich zu (3): Grundsätzlich nur die Option, Dateien remote zu bearbeiten (über ssh / remote desktop) und minimale Änderungen an der Konfiguration oder den Dateien eines entfernten Servers vorzunehmen.

Dimitrios Mistriotis
quelle
2

Abhängig von Ihrer Sprache enthalten einige IDEs auch visuelle Formular- / Fensterdesigner.

Obwohl darauf hingewiesen werden sollte, ist die Grenze zwischen dem Texteditor eines Programmierers und einer IDE nicht genau definiert. Viele Editoren können erweitert werden, um Kompilierung, Code-Vervollständigung, Debugging usw. zu erledigen.

GroßmeisterB
quelle
2

Ich verwende die IDE zum Testen / Debuggen / Integrieren und KEDIT zum Bearbeiten, da die IDE in ihren Bearbeitungsmöglichkeiten stark eingeschränkt ist.
Da die .NET-IDE externe Änderungen erkennt, muss ich nur im Editor speichern und die Aufforderung zum erneuten Laden der Quelle akzeptieren. Dadurch kann ich gleichzeitig meine Bearbeitungs- und Debugging-Funktionen optimieren.
Für andere IDEs verwende ich KEDIT als Vorlagenprozessor und Quellensuchprogramm und kopiere / füge diese Quelle in die IDE ein.

Dave
quelle
Was machen Sie in kedit, was die IDE nicht kann? Ich bin wirklich neugierig, weil ich für die meisten meiner ernsthaften Codierungen nie etwas anderes als eine IDE verwendet habe ...
Dean Harding
KEDIT verfügt wie andere intelligente Editoren über Skriptfunktionen, die es mir ermöglichen, Dinge zu tun, die die IDE nicht kann. Zum Beispiel verwende ich KEDIT, um mehrere Puffer (bis zu 100 pro Kedit-Sitzung) zu kopieren, einzufügen und Spalten zu bearbeiten, an die die IDE nicht einmal herankommen kann.
Dave
1

Für IDE: -
Erweiterte Funktionen sind ab Werk verkabelt.
--Einige Funktionen sind für Ihr Framework so spezifisch, dass Editoren keine Entsprechung haben.

Für den Redakteur:
--Halten Sie Ihre Hände auf der Tastatur.
- Ihre Entwicklungsumgebung ist auf allen Systemen gleich -
Bessere Skripterstellung für Ihren Editor -
Einige Funktionen einer IDE sind mit externen Tools oder Skripten verfügbar. (Intellisense, gehe zu Definition, finde Referenzen)

mike30
quelle
0

Kurze Lernkurve. Das ist es.

nate c
quelle
4
Ich nehme an, Sie haben noch keine IDE
ausgereizt
4
Mit vim als Co-Pilot muss ich nicht.
Nate C
Kurze Lernkurve für ....? entschuldigung aber das war mir nicht klar.
Chris
0

Das einzige, was ich wirklich empfehlen würde, ist der Debugger. Eine IDE ist eigentlich ein Editor mit einer Menge weiterer hinzugefügter Gubbins. Wenn Sie jedoch make (oder den Aufwärtspfeil + die Eingabetaste) in eine Eingabeaufforderung eingeben, benötigen Sie keine IDE. Wenn Sie SCM aktivieren können, indem Sie mit der rechten Maustaste auf den Explorer klicken und das richtige Menüelement auswählen, benötigen Sie keine IDE.

Jetzt weiß ich, dass einige Leute Dinge wie Refactoring-Unterstützung (Schreiben Sie Ihren Code gleich beim ersten Mal :) oder einen integrierten GUI-Designer benötigen (aber selbst dann, wenn ich Visual Studio verwende, verwende ich Expression, um meine GUI-Arbeit zu erledigen, nicht die beschissene XAML-Unterstützung in VS) ), und viele Menschen brauchen Intellisense und Autocomplete (insbesondere für ausführliche Sprachen wie Java und C #, die sehr lange Namen haben).

Für mich ist der GUI-Debugger der einzige wirklich gute Grund, die IDE zu verwenden. Ich benutze immer noch einen 'Kommandozeilen'-Debugger (naja, windbg), aber für den täglichen Gebrauch ist es der eingebaute für VS.

gbjbaanb
quelle
0

Eine IDE bietet Vorteile. Es gibt nicht in allen Sprachen eine umfassende IDE, um wirklich den Ausschlag zu geben, oder es könnte unerschwinglich sein, eine für diese Sprache zu erstellen. Gründe, warum würde eine IDE wollen? Nun fangen wir mit diesen an:

  • Die Sprache verfügt über eine umfangreiche Standard-API, die in IDE-Popups die Entwicklung beschleunigen kann.
  • Es gibt eine Menge Code für Kesselschilder. (Erzwungener Versuch / Fang, Getter / Setter usw.)
  • Autocomplete kann Ihre Codierungsanforderungen genau erfüllen
  • Ihre Spracheinheitentestsuite ist in diese IDE integriert.
  • IDE ist sich der zahlreichen gängigen Sprachbibliotheken in Bezug auf Best Practices bewusst und unterstützt diese.
  • Plugins zur Verfügung, um Arbeit mo'betta zu machen
  • Es ist nicht so schwer, dass es Ihr System verlangsamt
  • Hochintegrierter Debugger? Das hilft.

Das Problem ist, dass nicht alle Sprachen mit einer umfassenden IDE wirklich einen großen Produktivitätsgewinn erzielen. Ich verwende IDEs für einige meiner Arbeiten (Java, C #), aber nicht für andere (Python, Ruby, Coldfusion). Alles ist wirklich ein Balanceakt. Einige Sprachen erfordern einfach keine so umfassende Suite.

Gibt es IDEs für jeden? Sicher. Benötigen Sie immer einen? Nicht wirklich.

Rig
quelle