129 Stimmen

Wird Emacs mich zu einem besseren Programmierer machen?

Steve Yegge schrieb ein Kommentar in seinem Blog :

Alle großen Ingenieure der Welt Welt benutzen Emacs. Der Weltveränderer Typen. Nicht das tolle Mädchen im Würfel neben dir. Nicht Fred, der tolle Typ am Ende des Flurs. Ich spreche von dem größten Softwareentwickler unserer Branche Berufes, die das Gesicht der Branche Gesicht der Branche verändert haben. Die James Goslings, die Donald Knuths, die Paul Grahams, die Jamie Zawinskis, die Eric Bensons. Echte Ingenieure benutzen Emacs. Man muss sehr klug sein, um ihn gut zu benutzen um ihn gut zu benutzen, und er macht dich unglaublich mächtig, wenn man ihn beherrscht. Schauen Sie sich über Paul Nordstroms Schulter, während während er arbeitet, wenn Sie mir glauben Sie mir. Es ist ein echter Augenöffner für jemandem, der mit Visual Blub NET-ähnliche IDEs ihr ganzes Berufsleben lang benutzt hat.

Emacs ist der 100-Jahre-Editor.

Das letzte Mal, dass ich einen Texteditor zum Schreiben von Code verwendet habe, war vor etwa 1000 Jahren, als ich noch HTML in Notepad geschrieben habe. Seitdem bin ich mehr oder weniger IDE-abhängig und habe in meiner gesamten Laufbahn Visual Studio, NetBeans, IntelliJ, Borland/Codegear Studio und Eclipse verwendet.

Wenn Sie mich fragen, ich haben Ich habe Emacs ausprobiert, und meine Erfahrung war frustrierend, weil es keine Funktionen gibt, die man direkt nach dem Auspacken entdecken kann. (Anscheinend gibt es einen Emacs-Befehl, um andere Emacs-Befehle zu entdecken, den ich übrigens nicht finden konnte - es ist, als würde man seinen eigenen grausamen Zen-Witz leben.) Ich habe einen guten Monat lang versucht, mich mit dem Programm anzufreunden, aber schließlich habe ich beschlossen, dass ich stattdessen lieber Drag-and-Drop-GUI-Designer, IntelliSense und interaktives Debugging haben möchte.

Es ist schwer, Fakten von Fanboyismus zu unterscheiden, daher bin ich noch nicht bereit, Yegges Kommentare für bare Münze zu nehmen.

Gibt es einen messbaren Unterschied in den Fähigkeiten, der Produktivität oder der Freude am Programmieren zwischen Leuten, die auf IDEs angewiesen sind und solchen, die es nicht sind, oder ist das alles nur Fanboyismus?

13voto

Jonas Kölker Punkte 7382

Gibt es einen messbaren Unterschied in den Fähigkeiten, der Produktivität oder der Freude am Programmieren zwischen Leuten, die auf IDEs angewiesen sind und denen, die das nicht tun, oder ist das alles nur Fanboyismus?

Lassen Sie uns das einfach auf Visual Studio vs. Emacs eingrenzen - die Frage ist ansonsten zu breit gefächert, und ich vermute, dass die meisten Leute (zumindest hier auf StackOverflow) mit diesen beiden vertraut sind. (Ich bin, und ich benutze und bevorzuge emacs)

Lassen Sie uns nun die drei Bestandteile der Frage aufschlüsseln.

Spaß am Programmieren bedeutet in erster Linie, dass man das Programmieren an sich mag, und in zweiter Linie, dass es keine störenden Faktoren gibt, wenn man es tut. Die Verwendung von Werkzeugen, mit denen man sich schwer tut, schmälert den Spaß. Ich würde also vermuten, dass der Spaß am Programmieren maximiert wird, wenn man Werkzeuge verwendet, die man mag und mit denen man vertraut ist.

Natürlich kann es sein, dass Sie, sobald Sie sich mit einem neuen Werkzeug vertraut gemacht haben, feststellen, dass Ihnen dieses Werkzeug besser gefällt und Sie daher mehr Spaß am Programmieren haben, wenn Sie es mit Ihrem neu Lieblingswerkzeug. Es ist mir nicht klar, dass die Leute im Allgemeinen VS dem Emacs vorziehen (oder umgekehrt), wenn sie beide gut kennen.

Nächster Punkt: Programmierkenntnisse. Wenn es einen Zusammenhang zwischen Fähigkeiten und der Wahl von VS/Emacs gibt, dann denke ich, dass die Fähigkeiten die Wahl verursachen und nicht die Wahl die Fähigkeiten. Meiner Erfahrung nach habe ich mit keiner der Optionen {VS, emacs} etwas über das Schreiben gelernt. besser Code.

Ein gutes Werkzeug kann mich in die Lage versetzen, denselben Code (und damit dieselbe Qualität des Codes) in kürzerer Zeit; wenn wir davon ausgehen, dass productivity = quality of code `times` code per time dann ist es nur logisch, dass jeder Editor, mit dem man guten Code in kürzerer Zeit schreiben kann, ein Produktivitätsschub ist.

Vielleicht bin ich zu wenig vertraut mit VS, aber ich denke, dass emacs hier einige Stärken hat, die ich in VS nicht gefunden habe. Es mag lächerlich klingen, aber etwas so einfaches wie die Cursorbewegung mit Ctrl-[fbnp] ist ein echter Segen, denn so müssen Sie Ihre Hände nicht zu den Pfeiltasten bewegen. Und noch etwas: Sie können eine Such- oder Ersetzungsfunktion ausführen, die auch Zeilenumbrüche einschließt, was ich so oft verwende, dass ich es nicht missen möchte.

Eine weitere Sache, die mir gefällt, ist die Möglichkeit, eine Shell in meinen Editor einzubetten. Meiner Erfahrung nach ist das auf Nicht-Windows-Plattformen viel wertvoller (und meine ersten "Programmier"-Erfahrungen waren, wenn ich mich recht erinnere, das Schreiben von DOS-.bat-Dateien, ich bin also nicht nur ein flammender Fanboy), aber auf diesen Plattformen ist es ein großer Gewinn. Es macht Emacs "integrierbar" mit "allem" (Dateisuche mit find/locate, Textsuche mit grep, Versionskontrolle mit svn/git/hg/..., was auch immer).

Abschließendes Urteil: Soll man Emacs lernen oder nicht? Und ist das alles Fanboyismus? Wenn Sie die Zeit haben, würde ich sagen, dass es sich immer lohnt, neue Wege zu erlernen, um dieselbe Sache zu tun, denn der neue Weg könnte sich als besser für Sie erweisen. Und ich ermutige Sie, sie nicht als das abzulehnen, was sie zu sein scheint, wenn Sie ganz neu dabei sind. In diesem Sinne ist es wie bei der Umstellung auf das Dvorak-Tastaturlayout: Am Anfang ist man langsamer, aber wenn man sich erst einmal eingearbeitet hat, ist man wahrscheinlich mindestens so schnell wie mit der Qwerty-Tastatur, und es ist bequemer. Ich empfehle den gleichen Ansatz auch für das Erlernen neuer (Programmier-)Sprachen: Da man das Vokabular (Standardbibliothek) nicht kennt, ist es schwierig, etwas zu sagen, aber die Belohnung wartet am Horizont auf einen.

10voto

Joe Casadonte Punkte 14548

Ich persönlich bin ein Fan von Emacs, aber Emacs ist nur ein Werkzeug. Er macht Sie nicht zu einem besseren Programmierer, genauso wenig wie ein superschicker Stift Sie zu einem besseren Schriftsteller macht.

Die Erklärung, dass "großartige Programmierer" ihre Umgebung an sich selbst anpassen, mag einen gewissen Wert haben, aber viele Werkzeuge können das (z.B. vim und SlickEdit), also gibt es in dieser Hinsicht nichts Besonderes an Emacs.

Ich denke, was am ehesten zutrifft, ist, dass "großartige Programmierer" leidenschaftlich gerne programmieren, und Menschen, die leidenschaftlich gerne programmieren, neigen dazu, Werkzeuge zu finden, die diese Leidenschaft fördern. Emacs (und vim und SlickEdit, et al) ist ein solches Werkzeug.

10voto

John Punkte 15906

Die Aussage, die mit "Alle großen Ingenieure der Welt benutzen Emacs" beginnt, würde ich auch nicht für bare Münze nehmen. Kennt er alle größten Ingenieure der Welt? Ist es die gleiche Liste der weltbesten Ingenieure, die Sie oder ich haben?

Einmal erlernt, wird ein leistungsfähiger Editor wie EMACS oder vi Sie effizienter machen, oder zumindest effizienter, wenn Sie zufällig ohne Ihre Lieblings-IDE erwischt werden.

Der "einmal erlernte" Teil ist der Knackpunkt. Es ist eine Menge Arbeit und Übung, diese Werkzeuge produktiv zu nutzen, und am Anfang ist es sehr schwierig.

8voto

Paul W Homer Punkte 2708

Obwohl die IDEs in den letzten zehn Jahren sehr viel besser geworden sind, enthalten sie die Programmierung immer noch in einer kleinen sicheren "Blase", weit weg von einigen der hässlicheren Details. Diese zunehmende Abstraktion führt dazu, dass mehr Programmierer mit weniger Wissen mehr erreichen können. Das gilt natürlich nicht für alle Programmierer, aber einfachere Werkzeuge machen das Programmieren für ein breiteres Publikum zugänglich.

Mehr Wissen über Werkzeuge auf niedrigerer Ebene führt oft zu mehr Stabilität im Code, da es weniger Möglichkeiten gibt, versehentlich "gegen den Strich zu bürsten". Es ist unfair, nur EMACS als einzigen führenden Indikator aufzuführen, da er aus einer ganzen Reihe von Sprachen und Werkzeugen stammt und es wirklich mehr um die Tiefe des Verständnisses geht, nicht um die spezifische Technologie.

Damals lernte man entweder VI oder EMACS auf den UNIX-Systemen oder man spezialisierte sich auf PCs (OK, es gab auch VMS, CMS, AS400 usw., aber das waren ältere Technologien). Beide Richtungen zogen sehr engagierte Leute an, aber die UNIX-Leute wollten eher eine ausgefeilte Lösung, während die PC-Leute einfach nur schnell fertig werden wollten. Die Kulturen waren sehr unterschiedlich.

8voto

Stephane Grenier Punkte 14946

Ich glaube nicht, dass es da einen Unterschied gibt, es ist eher eine Frage der Vorliebe.

Mir ist jedoch aufgefallen, dass die Wahrscheinlichkeit, dass Sie emacs oder vi benutzt haben, umso größer ist, je länger Sie programmiert haben oder je tiefer Sie programmiert haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X