IDE-abhängig sein. Wie kann es mir schaden?

27

Ich bin stark IDE-abhängiger Entwickler (NetBeans und Eclipse, da ich ein JAVA-Entwickler bin). Ich kann richtig codieren, wenn ich eine IDE habe. Darauf kann ich mich beim Entwickeln, Debuggen und Bereitstellen sehr verlassen. Aber ohne IDE kann ich nichts machen. Kann ein einfaches Hallo-Welt-Programm oder ein einfaches UI-Arrangement codieren, aber ich benötige eine IDE, um komplexe Dinge zu erledigen oder einfachere Dinge lang zu codieren.

Glaubst du, es schadet mir? Einige Programmierer mit mehr als sechsjähriger Entwicklungserfahrung sind der festen Überzeugung, dass dies schädlich sein kann, aber ich denke, wenn ich einige komplexe Dinge schnell und richtig ausführen kann, warum sollte ich mich dann an Notizblock- und Befehlszeilen-Tools halten, um eine zeitaufwändige Aufgabe auszuführen IDEs haben einen Klick auf die Schaltfläche, um dies zu tun?

Prasham
quelle
29
Ich füge dies nicht als Antwort hinzu, aber es kann Ihnen schaden, (nur) Java-Entwickler zu sein. Lernen Sie eine echte Sprache und seien Sie nicht nur mit Java ein weiterer Code-Affe, nur weil es billiger ist, schlechte Programmierer zu verwenden. Bitte?
Lacrymology
5
Das ist eine faszinierende Frage für mich; Ich habe noch nie etwas anderes als Emacs oder Vi programmiert. Infolgedessen habe ich keine Ahnung, was eine IDE Ihnen bietet, von der Sie sogar abhängig werden könnten.
Kasterma
8
@kasterma Mal sehen: Code-Hilfe, Refactoring-Tools, Code-Gliederung, Debugging, parametrisiertes Debugging, Stapelverfolgung, Parameterüberwachung, Lösungsstrukturierung, Rad, Intellisense, Code-Snippets, Kompilierung und Compiler-Fehlerhilfe, Durchsetzung von Standards, Schnellstart-Vorlagen, Syntax Hervorheben und vieles mehr ;-)
Syg
2
Ich denke, @Lacrymology kommt einem anderen Punkt sehr nahe: Java ist IDE-abhängig. Versuchen Sie, eine Sprache zu lernen, in der die meisten Programmierer keine IDE verwenden, z. B. Python, Scheme oder Common Lisp. das gibt dir eine neue Fähigkeit und hält dich manchmal von der IDE fern.
JasonFruit
7
@Lacrymology: Java ist nicht IDE-abhängig und eine der beliebtesten Sprachen. Ich finde es schockierend, dass du es nicht für "echt" genug hältst.
Josh K

Antworten:

15

Wie andere gesagt haben, ist es in Ordnung, in Ihrer IDE schneller zu sein als ohne, das ist der springende Punkt. Komplexe Werkzeuge richtig einsetzen zu können, um Ihre Produktivität zu steigern, ist eine wichtige Fähigkeit.

Eine übermäßige Abhängigkeit von IDEs kann jedoch Probleme verursachen. Fähigkeiten und Kenntnisse, die Sie nicht mehr ausüben, werden nachlassen und Ihr Verständnis für einige Aspekte kann gering sein. Ein klassisches Beispiel ist das Kompilieren und Ausführen auf der Kommandozeile - fast jedes Mal, wenn ich das mache, störe ich etwas (normalerweise im Zusammenhang mit Klassenpfaden), weil ich Eclipse 99% der Zeit überlasse, dies für mich zu tun.

Dies betrifft Sie nicht nur, wenn Sie sich nicht in der IDE befinden. Wenn Ihr Wissen über die Komplexität, vor der sich die IDE versteckt, gering ist, werden Sie feststellen, wenn es schief geht (und es wird irgendwann schief gehen) es ist viel schwieriger zu beheben.

Ich gehe auf zwei Arten vor:

  1. Lernen Sie neue Werkzeuge in ihrer grundlegendsten Form. Zum Beispiel habe ich von SVN zu Mercurial gewechselt, aber mit dem Befehlszeilen-Client anstatt mit dem Eclipse-Plugin begonnen. Dadurch verstand ich viel besser, was vor sich ging, was bedeutete, dass ich wusste, was falsch lief und wie ich es beheben konnte, wenn die IDE Fehler verursachte.

  2. Üben Sie Ihre grundlegenden Codierungsfähigkeiten in der Befehlszeile. Ein schöner Ort, um dies zu tun, ist CodingBat, wo Sie keine Syntaxhervorhebung, keine Klammerabstimmung, keine roten Unterstreichungen, nichts bekommen. Vergessen Sie jedoch nicht, auch diese Java- und Javac-Kommandozeilenfähigkeiten zu üben! (Und alle anderen, die für Ihren Workflow geeignet sind - für mich gehören dazu auch hg und ameise)

Machen Sie sich zum Schluss keine allzu großen Sorgen. Es ist unwahrscheinlich, dass Sie jemals ein großes Stück Arbeit ohne NetBeans oder Eclipse erledigen müssen, solange Sie in der Lage sind , ohne sie zu codieren und zu verstehen, was die IDE für Sie tut. Sie sind langsamer oder machen mehr Fehler ohne sie.

ZoFreX
quelle
2
Als Hobby macht es Spaß, die Zeit und die Gehirnzellen darauf zu verwenden, die Details auf niedriger Ebene zu kennen. Kommerziell verliert es viel an Wert. Diese Zeit wird besser für das Erlernen des Geschäfts aufgewendet, als für die Implementierung mit der zusätzlichen Effizienz, die die IDE bietet.
Brian Knoblauch
CodingBat hat jetzt eine Syntaxhervorhebung.
Masterxilo
29

Nein, ich denke, es ist genau umgekehrt. Die IDE beseitigt die Notwendigkeit, ein Framework auswendig zu kennen (über Intellisense), und vereinfacht ansonsten langweilige / sich wiederholende / komplexe Aufgaben (Debugging, Deployment), die Ihnen wirklich egal sind. Auf diese Weise können Sie sich auf die Lösung des vorliegenden Geschäftsproblems konzentrieren . Das Wissen und die IDE und das Wissen darüber können Ihnen wirklich helfen, wartbaren Code schneller zu schreiben.

Und natürlich geht es nicht nur darum, Entwickler zu sein. Die Erfahrung, die Sie als Entwickler haben, hilft Ihnen, die richtige Lösung für ein Problem zu finden, das Ihren Weg kreuzt. Ich denke, das ist die wahre Fähigkeit.

Syg
quelle
2
+1 für Intellisense! Es tut mir leid für die Leute, wenn ich sehe, wie sie die einzelnen Zeichen in einem Programm tippen, wenn Intellisense das so sehr beschleunigt.
David
8
Das nennt man Autocomplete für den Rest von uns :)
mhitza
4
@David: Es tut mir weh, Leute zu beobachten, die zwei Zeichen eingeben, und dann eine halbe Sekunde zu warten, bis die Autovervollständigung auftaucht und sie fragt, was sie eigentlich bedeuten. Dann werden sie auf die Maus übertragen und durch die verfügbaren Auswahlen scrollen, bis sie schließlich auf eine von ihnen klicken. Nein, Autocomplete ist kein Geschenk des Himmels oder sogar wirklich nützlich. Es ist ein Werkzeug der Faulen.
Josh K
1
@Josh K: Das stimmt. Autocomplete kann schlechte Programmierer verschlimmern, aber auch gute Programmierer dabei unterstützen, effizienter zu sein. :)
David
2
@Josh Aber es gibt doch mehr zu verstehen / zu vervollständigen, als den Namen Ihrer Methode zu vervollständigen? Wie wäre es mit Inline-Methodenbeschreibungen (was ist und welche Parameter es benötigt), verfügbaren Methodenüberladungen, Zugriff auf Codeausschnitte, Einsicht, welche Methoden Sie überschreiben können usw. Es ist wirklich hilfreich, nichts damit zu tun, faul zu sein ...
Syg
24

Nein, es "schadet" dir nicht. Natürlich sollten Sie verstehen, wie Dinge ohne eine IDE funktionieren (dh Sie sollten den grundlegenden Kompilierungsprozess usw. verstehen), aber lassen Sie uns dies nicht masochistisch sehen ... Wenn eine IDE Sie produktiver macht als keine, warum dann nicht? du nicht?

Dean Harding
quelle
17

IDE-abhängig zu sein birgt die folgenden Risiken:

  • Am Ende erstellen Sie einen Software-Build, der eine bestimmte IDE und Version erfordert.
  • Sie zwingen andere Personen in Ihrem Team, diese IDE zum Erstellen des Systems zu verwenden.
  • Sie können die Erstellung Ihrer Software nicht einfach automatisieren.
  • Sie haben keine Ahnung, was Ihre Software-Abhängigkeiten sind.

Stellen Sie also sicher, dass Sie Ihre Software auch über die Befehlszeile erstellen können. ZB In Java Maven oder Ant verwenden. Dann mindern Sie die oben genannten Risiken.

Andere IDE-Abhängigkeitsrisiken:

  • Die IDE kennzeichnet Fehler und Warnungen in Ihrem Code und gibt Ihnen schnelle Lösungen. Diese sind möglicherweise nicht angemessen - möglicherweise liegt ein Entwurfs- oder Anforderungsproblem vor.
  • Sie vergessen die Grundlagen - Sie müssen die Grundlagen der von Ihnen gewählten Sprache kennen, damit Sie diese beherrschen und in Interviews Ihre Kompetenz vermitteln können.
  • Sie bleiben in einer IDE-Sandgrube stecken und haben Angst, etwas Neues oder etwas zu probieren, das von Ihrer IDE nicht unterstützt wird. Beispielsweise kann Ihre IDE sehr umfangreiche Funktionen zum Suchen und Ersetzen enthalten. Dies ist jedoch nichts im Vergleich zu der Leistung und Geschwindigkeit von Befehlszeilentools wie grep und sed. Möglicherweise können Sie keine Android-Entwicklung durchführen, da die von Ihnen gewählte IDE (z. B. Netbeans) dies nicht gut unterstützt.
  • Einige IDEs können keine großen Dateien verarbeiten. Versuchen Sie beispielsweise, eine große Serverausgabedatei in Eclipse zu öffnen. Es dauert ewig und / oder der Speicherplatz geht zur Neige.
Conor
quelle
3
Ich stimme Ihren Punkten zu, glaube aber nicht, dass sie die eigentliche Frage ansprechen. Der Fragesteller ist beispielsweise nicht nur von Netbeans abhängig. Wenn er / sie es wäre, dann könnten all diese Punkte zutreffen, aber die Frage, wie ich es verstehe, war, im Allgemeinen nur eine IDE zu verwenden, im Gegensatz zu einem einfachen Texteditor und der Befehlszeile.
JZD
2
Verweise auf IDE-Instanzen in meiner Antwort sind nur Beispiele dafür, wie die IDE-Abhängigkeit riskant sein kann. Ich weise nicht speziell auf Netbeans oder Eclipse hin.
Conor
Ich verwende Netbeans bei der Arbeit, aber ich habe alle meine Ant-Skripte von Hand geschrieben, damit jeder das Projekt erstellen kann, ohne Netbeans zu benötigen. Ich mag die Editorfunktionen und die einfache Navigation im Code, aber ich tue alles, um die IDE unabhängig zu halten.
Jonescb
9

Es ist nichts Falsches daran, mit dem von Ihnen gewählten Werkzeugsatz produktiver zu sein. Aber wenn Sie ohne es einfach nicht arbeiten können, wäre ich sehr misstrauisch in Bezug auf Ihr inneres Wissen.

Verlassen Sie die IDE nicht. aber von Zeit zu Zeit versuchen Sie, ein paar 'einfache' Kurse mit nur einem Editor und Dokumentation in einem Browser zu machen.

Denken Sie daran, dass Sie noch schneller als die besten Werkzeuge diese nicht verwenden müssen.

Javier
quelle
Ich bin nicht gestoppt oder verblüfft (in 40% der Fälle), wenn ich keine IDE habe, aber meine Geschwindigkeit wird drastisch reduziert, wenn ich keine IDE in der Nähe habe. Um eine zehnminütige Aufgabe mit IDE zu erledigen, habe ich einen ganzen Tag mit Notepad und Javac verbracht, als meine Idee abgestürzt ist.
Prasham
Nun, der Notizblock ist zu niedrig. Versuchen Sie es mit einem Programmierer-Editor wie Notepad ++. Stellen Sie sich das als Übung vor: Es macht keinen Spaß, macht Sie aber besser, wenn Sie es regelmäßig machen.
Javier
4

Aber ohne IDE kann ich nichts machen.

Ich brauche eine IDE, um komplexe Dinge zu erledigen oder einfachere Dinge lang zu programmieren.

Sie können das beheben, wissen Sie.

Sie könnten tatsächlich die Sprache und den Rahmen lernen.

Nichts hält dich auf.

Es sei denn, Sie geben damit an, von der IDE abhängig zu sein.

Warum sollte ich mich an Editor- und Befehlszeilentools halten, um eine zeitaufwändige Aufgabe auszuführen, wenn IDEs dazu einen Klick auf eine Schaltfläche haben?

Ist nicht verwandt. "Stick to Notepad" hat nichts mit "Ohne IDE kann ich nichts machen" zu tun. Nichts im Editor zu tun ist nichts anderes als sich an den Editor zu halten. Welches ist es?

S.Lott
quelle
3

Sie sind nicht so "abhängig", da beide IDEs Open Source sind und nicht einfach verschwinden oder versehentlich "verbessert" werden, bis sie unbrauchbar werden. Und die Sprache Ihrer Wahl lässt Ihnen keine Optionen offen - Sie sind auf eine Unmenge von Bibliotheken angewiesen, und es ist einfach dumm, sich an all diese unwichtigen Dinge zu erinnern, wenn es eine IDE gibt, die Ihnen hilft. Java ist wortreich, ausführlich und Sie können ohne intelligente Tools, die die redundante Ausführlichkeit nutzen, nicht produktiv sein.

SK-Logik
quelle
Würden Sie dasselbe für eine andere Sprache sagen? (Ich denke in meinem Fall an PHP.) Aber ich bin mir nicht sicher, ob es in der Regel ein guter Rat ist. JAVA könnte hier eine Ausnahme sein
Quamis
1
Ich würde dasselbe für C # sagen, vielleicht auch für PHP. Für jede Kombination aus einer Sprache und einer Problemdomäne, in der Sie eine Vielzahl unterschiedlicher Bibliotheken verwenden müssen, sind intelligente Tools erforderlich. Einige Sprachen sind leistungsfähig und ausdrucksstark genug, um ohne zahlreiche Bibliotheken verwendet werden zu können - und Sie können einfache Dinge ohne IDEs codieren. Einige Sprachen brauchen immer Unterstützung, auch für einfachste Dinge. Wenn ich in Lisp programmiere, kann ich Emacs oder sogar eine CLI REPL verwenden. Wenn ich in C # oder Java codiere, kann ich nichts ohne eine anständige IDE (msvs oder eclipse) tun.
SK-logic
Aber sollte die Notwendigkeit von "Intellisense" oder "Form Designer" nicht eine Warnung für schlecht organisierte (oder benannte) Objektmitglieder sein? Ich habe beobachtet, dass Leute, die viel Intellisense verwenden, dazu neigen, längere und ausführlichere Namen für Objekte / Funktionen / Variablen zu verwenden, was es schwieriger macht, sich diese Namen überhaupt zu merken. Soll ich verstehen, dass dies auch eine gute Angewohnheit ist?
Quamis
Quamis: Ist es nicht umgekehrt? Wenn Sie tippen müssen, wählen Sie kurze Namen, die die Klasse / Methode nicht beschreiben, sowie einen langen Namen.
DistantEcho
@Niphra: Ja, und ich mag eher kürzere Namen :) Meiner Meinung nach ist der Code leichter zu lesen. Wenn die Methode etwas tut, das nicht kurz beschrieben werden kann, dann ist ein längerer Name akzeptabel, aber ich Ich versuche es kurz zu halten, und ich sehe nichts falsch daran.
Quamis
3

Ich denke, der Schaden durch übermäßige Abhängigkeit von einer IDE entsteht, wenn Sie sich gedankenlos auf die Assistenten verlassen, um Code für Sie zu generieren. Sowohl NetBeans als auch Eclipse sind ziemlich leicht für diese, was meiner Meinung nach eine gute Sache ist. Ein weiterer Schaden wäre, wenn Sie nur eine IDE kennen und andere nicht verwenden können. Einige Unternehmen haben Richtlinien, die vorschreiben, was Sie verwenden. Zum Guten oder Schlechten ist es das, was es ist.

Ich würde behaupten , dass , wenn ein IDE Sie macht nicht mehr produktiv, es nicht lohnt. Zum Beispiel bin ich mit JetBrains IDEA am produktivsten, aber Eclipse hat einen langen Weg hinter sich und ich kann damit ziemlich produktiv sein. Eclipse wurde auch für eine Vielzahl von Anwendungen angepasst - ein doppelter Vorteil. Während ich mich in VIM oder einem anderen Texteditor zurechtfinden kann, gibt es andere Funktionen, die ich in den meisten aktuellen IDEs für unersetzbar halte, wie beispielsweise die Refactoring-Unterstützung.

Berin Loritsch
quelle
2

Ich glaube nicht, dass Sie sich einen Gefallen tun. Zugegeben, Sie verwenden Eclipse, das frei verfügbar ist und überall dort ausgeführt wird, wo Sie eine JVM haben. Aber ich habe schon Situationen erlebt, in denen ich über eine Terminalsitzung ohne X-Server auf einen anderen Computer zugreifen musste, was bedeutete, dass ich einen einfachen Texteditor wie vi verwenden und auf der Befehlszeile aufbauen musste. Ich arbeite auch in einer Umgebung, in der das Entwicklungsnetzwerk physisch vom Rest der Welt isoliert ist und alle Übertragungen zwischen ihm und dem öffentlichen Netzwerk über physische Medien erfolgen. Der einzige Grund, warum wir Eclipse in diesem Netzwerk haben, ist, dass es zuerst mehrere Genehmigungsebenen durchlaufen hat.

Ich habe meine Zähne auf C und Fortran 77 in einer Befehlszeilenumgebung (VAX / VMS) geschnitten, daher finde ich die Vorstellung , eine IDE zu benötigen, etwas verdächtig. Dies sind jedoch winzige Sprachen im Vergleich zu dem Tier, das Java ist. Angesichts der Tatsache, dass Sie einen Gabelstapler benötigen, um das neueste Java Nutshell-Buch zu transportieren, kann ich sehen, wie die Verfügbarkeit der IDE das Leben erheblich erleichtert.

John Bode
quelle
2

Es kann Ihnen nicht wirklich "schaden", aber Sie würden davon profitieren, wenn Sie auch mit Dingen ohne die IDE vertraut sind . Haben Sie keine Angst, Ihren Horizont zu erweitern.

Denken Sie daran, dass die meisten Entwickler-Tools zuerst als Befehlszeilen-Tools geschrieben werden. IDEs sind Nachgedanken, was in Ordnung ist. Auf der anderen Seite finden Sie häufig einige "Hidden Gem Command Line Switches" oder "Advanced Tricks", die Sie nie herausfinden können, wenn Sie weiter darauf klicken.

Also, um die Frage zu beantworten: "Wie kann es mir schaden?" Ich denke, es würde Ihnen schaden, wenn Sie sich so sehr daran binden, dass Sie glauben, dass alle Befehlszeilen-Tools langsamer sind als das Klicken auf Schaltflächen, bis zu dem Punkt, an dem Sie das Erlernen der Befehlszeilen-Tools (die die Ursprünge sind) vermeiden.

Es ist so, als würde man als Programmierer Assembler lernen - nur wenige von uns schreiben Assembler heute von Hand, aber ich glaube, diejenigen, die Assembler verstehen, sind bessere Programmierer in jeder Sprache, die sie verwenden.

kizzx2
quelle
2

Computerabhängigkeit ist schon ziemlich schädlich. Ich programmiere immer in einem Lendentuch mit einer großen Steintafel und einem Hammer. Es dauert eine Weile, bis der Code zerschlagen ist, aber wenn Sie eine besonders große Methode abgeschlossen haben, essen Sie normalerweise etwas. Dort versuche ich, unabhängig vom Supermarkt und dergleichen zu sein, also baue ich all meinen Weizen zu Hause an und esse ihn einfach. Natürlich haben mich die Weizensamen- und Wasserversorger so ziemlich begeistert, dass ich denke, dass es keinen Ausweg aus diesem Kreislauf der Abhängigkeit gibt.

Im Ernst: Wenn <disclaimer>Sie eine IDE verwenden und </disclaimer>sich selbst ohne IDE befinden und Sie MÜSSEN programmieren, sollten Sie sich das Spiel überlegen

  1. IT anrufen oder
  2. Beheben Sie das Problem selbst, wenn Sie IT sind

Sie sollten nicht nur ohne die Werkzeuge programmieren, die Sie für notwendig erachten, sondern Sie können auch keine Zahnpasta als Wärmeleitpaste verwenden.

Dan Rosenstark
quelle
1

IDE-abhängig zu sein, schadet Ihnen vielleicht nicht unbedingt, aber die Fähigkeit, ohne die von Ihnen gewählte Umgebung zu arbeiten, ist eine entscheidende Fähigkeit.

IDEs können Sie davon abhalten, „kleine Dinge“ zu lernen, die in der Regel unbedeutend sind, und Ihnen dabei helfen, die Arbeit schneller zu erledigen, da Sie unnötiges Tippen / Boilerplate vermeiden. In der Regel können Sie auch Probleme beheben, die auftreten, z. B. wenn Sie eine Funktion falsch geschrieben haben.

Meine persönliche Regel beim Erlernen einer Sprache / eines Frameworks oder Ähnlichem ist, es zuerst auf die harte Tour zu lernen. Wenn ich es dann gemeistert habe, bin ich hingefallen und habe mir das Recht verdient , es auf einfache Weise zu tun. Die Sache ist, wenn Sie einige der winzigen Details nicht kennen, werden Sie SOL, wenn Ihre Kanalisation anfängt, Müll aus dem Spülbecken zu spucken. Wenn Sie die zugrunde liegenden Vorgänge kennen, die eine potenzielle Ursache sein können, können Sie das Problem wahrscheinlich beheben oder das Auftreten ganz verhindern.


quelle
0

Versuchen wir einen guten Texteditor, zB PSPad für MS-Windows (Freeware), TextMate für Mac OS X, Geany für GNU Desktop (OpenSource) oder Kate für KDE (OpenSource).

MultiEdit4.0 für MS-DOS hat mein Leben vor einigen Jahren verändert, seitdem bin ich für Texteditoren sehr vernünftig.

ern0
quelle