Hallo Leute,
Neben dem Studium programmiere ich recht viel, hauptsächlich in Perl und
C unter Linux. Inzwischen bin ich total frustriert über das Angebot
herkömmlicher IDE's und Texteditoren. Immer finde ich irgendwas, was
mich absolut stört. Dabei sind das oft ganz simple Dinge (kein
Fullscreen Coding möglich, kein Splitscreen, schlechtes
Syntaxhighlighting, Man wählt ein anderes Colorscheme aber z. B. der
Explorer wird weiterhin in knall weiß angezeigt weil es auf irgendwelche
Farbresourcen des Systems zurückgreift etc...). Ich weiß nicht wie viele
IDE's und Editoren ich schon ausprobiert habe, aber es sind gewiss
dutzende und ich bin es Leid.
Ich glaube, ich muss man mich langsam mit Vim oder Emacs auseinander
setzen. Jetzt frage ich mich aber, was von beiden ich lernen soll. Vor
allem, welches der beiden für Anfänger zugänglicher ist und mich schnell
zu dem Punkt bringt, wo ich wirklich produktiv arbeiten kann.
Was mich auch noch interessieren würde. In eurem Job, falls es so sein
sollte, was bringt euch mehr? Emacs oder Vim?
Viele Grüße
Oder vielleicht doch eine vollwertige IDE wie Eclipse? Oder einen
Texteditor wie gedit? Der bietet auch "Syntaxhighlight".
vi, vim oder emacs braucht man, wenn nur mit der Konsole gearbeitet
wird.
Ich nutze den vi nur, wenn ich auch nur die Kommandozeile habe. Sobald
ich eine graphische Oberfläche habe, nehme ich gedit, im Moment aber nur
für kleinere Dinge. Früher im Beruf habe ich mal sehr intensiv nedit
genutzt. Der war richtig gut.
Ich bin ein Emacs-Hasser.
min schrieb:> Oder vielleicht doch eine vollwertige IDE wie Eclipse? Oder einen> Texteditor wie gedit?
IDE's schon mal gar nicht. Die sind mir viel zu aufgebläht. Und Gedit
und Konsorten habe ich schon ausprobiert. Wäre etwas passendes dabei,
hätte ich es benutzt :( ..
Ich finde KDevelop recht gut, als reinen Editor ohne IDE nehme ich
normal Kate.
Wenn mich da irgendwas dran massiv stören würde - es wäre kein Problem
das nach meinen Wünschen umzuprogrammieren. Der Code ist ja zum Glück
frei zugänglich.
Was meiner Meinung nach mir für die Bequemlichkeit beim Programmieren am
meisten gebracht hat: Multi-Monitor. Ich hab 3 20"-Monitore mit je
1600x1200 nebeneinander. Da muss ich nicht immer auf begrenztem Platz
hin- und herspringen, sondern kann mich ausbreiten und hab alles
wichtige im Blick.
Dann benutz vi und seine Kollegen.
Das ist zwar aufwendig zulernen meine Meinung.
Aber wenn du es verstanden hast.
Dann kannst unter die Schale schauen und deine Schreibmaschine so
ummodelieren das alles geht was dir bei den anderen Programmen gestört
hat.
Gruß,
Matthias K.
Tomboy schrieb:> Und Gedit> und Konsorten habe ich schon ausprobiert. Wäre etwas passendes dabei,> hätte ich es benutzt :( ..
Wenn du alles graphischen Texteditoren schon ausprobiert hast, und
unzufrieden bist, dann wirst du mit vim oder emacs auch nicht zufrieden.
vim und emacs ist doch ein Rückschritt im Vergleich zu den graphischen.
So, wie es aussieht, wirst du dein Problem nicht lösen können.
Gerd E. schrieb:> Was meiner Meinung nach mir für die Bequemlichkeit beim Programmieren am> meisten gebracht hat: Multi-Monitor. Ich hab 3 20"-Monitore mit je> 1600x1200 nebeneinander. Da muss ich nicht immer auf begrenztem Platz> hin- und herspringen, sondern kann mich ausbreiten und hab alles> wichtige im Blick.
Das ist natürlich nice :-) ...
Benutze leider nur 2 Monitore. 1x 22" zum Fullscreen programmieren und
den rest mache ich dann auf meinem 14" Thinkpad Notebook der daneben auf
dem Notebook Ständer steht.
Gerd E. schrieb:> Wenn mich da irgendwas dran massiv stören würde - es wäre kein Problem> das nach meinen Wünschen umzuprogrammieren. Der Code ist ja zum Glück> frei zugänglich.
Da fehlt mir leider die Erfahrung, da einfach mal was umzuprogrammieren.
user schrieb:> Also ich kann gvim empfehlen. Das hast du syntax highlighting,> Codevervollständigung, make ausführen und an Fehler springen usw.Matthias K. schrieb:> Dann benutz vi und seine Kollegen.>> Das ist zwar aufwendig zulernen meine Meinung.> Aber wenn du es verstanden hast.>> Dann kannst unter die Schale schauen und deine Schreibmaschine so> ummodelieren das alles geht was dir bei den anderen Programmen gestört
Ja ich glaube das werde ich machen. Danke euch :) !
Gerd E. schrieb:> vim und emacs ist doch ein Rückschritt im Vergleich zu den graphischen.
Nö. Ganz im Gegenteil. Von dem was ich bis jetzt gelesen und gesehen
habe, ist es eine Offenbarung. Endlich alles mal so anpassen zu können,
wie man es braucht - und dazu auch noch für jede Sprache. Und es gibt
massig Shortcuts, wodurch man nicht mehr zur Maus greifen muss. Genau
das richtige. Es ist nur sehr aufwendig zu lernen, aber 1x gelernt, dann
brauch ich wahrscheinlich bis zum Lebensende nichts anderes mehr :-) ...
Rolf schrieb:> vim und emacs ist doch ein Rückschritt im Vergleich zu den graphischen.> So, wie es aussieht, wirst du dein Problem nicht lösen können.
Wie es aussieht. Hat der Rolf keine Ahnung. Einfach ignorieren.
Vim und Emacs ist genau das richtige für Power-Programmierer.
Palette W. schrieb:> Wie es aussieht. Hat der Rolf keine Ahnung.
Ich würde es eher so ausdrücken, dass ich eine andere Meinung oder einen
anderen Geschmack habe.
Der (x)emacs hat den Vorteil, dass man klicken und im Menü suchen kann
wenn einem der Shortcut nicht einfällt. Das brauche ich bei den
selteneren Befehlen öfters mal.
Vielleicht geht das beim vi auch ähnlich, aber ich stand mit dem immer
auf Kriegsfuss :-)
> was bringt euch mehr? Emacs oder Vim?
Beide sind die Steinzeit der Computerei und seit 30 Jahren überholt.
Genau das richtige für Masochisten die den Schuss nicht mehr gehört
haben.
Emacs ist sehr mächtig, kann fast alles. Was er nicht kann, kann man
ergänzen. Es ist nur eine Frage des Aufwandes. Allerdings wird er nur
noch von einigen Freaks verwendet und wohl selten für größere
Programmierprojekte. Das Bedienkonzept stammt aus dem vorigen
Jahrtausend und jeder der die heute bekannten grafischen IDEs
kennengelernt und verstanden hat, will nicht mit emacs oder vi arbeiten.
Bis auf die unverbesserlichen Freaks aus den älteren Jahrgängen.
Dazu kommt, dass es keine ausführlichen Dokumentationen zu emacs gibt,
auch nicht in käuflicher Buchform. Das bekannte Tutorial der
Fernuni-Hagen kratzt nur etwas an der Oberfläche.
Alles gesagte gilt im wesentlichen auch für vi. Nur dass bei vi die
Bedienung noch gewöhnungsbedürftiger ist.
Verstehe nicht, warum so ein Theater um die Editoren gemacht werden.
Tippen muss man nämlich überall noch selbst, denken sowieso. Und selbst
bei sperrigen Programmiersprachen macht die Tipparbeit nur einen sehr
kleinen Anteileil der Softwareentwicklung aus. Der automatisierbare Teil
einen noch kleineren Anteil.
Zur Ausgangsfrage: Beides, oder keinen. Beide haben ihre Vorteile. Beide
kosten viel Zeit um reinzukommen.
VI startet sehr schnell und ist auf fast jedem Unix verfügbar. Das ist
dann nicht notwendigerweise VIM, aber eben irgendein anderer VI-Klon
oder gar das Original. Wer öfter mal auf der Kommandozeile arbeitet und
das vielleicht noch in beschränkten Umgebungen (Recovery-Modus,
uralt-Hardware, unbekanntes Unix) wird ihn nicht missen wollen. Dass man
den Cursor sogar per Buchstabenkürzel bewegen kann, ist eine
unschätzbare Hilfe bei Terminalproblemen oder Tastaturen ohne
Cursortasten (Smartphone). Die Bedienung ist aber wirklich sehr anders
als alle anderen Editoren. Große Projekte würde ich damit nicht angehen.
Emacs ist das Ultimum an Personalisierbarkeit. Ich mache in Emacs Dinge,
die kein Eclipse kann, es sei denn ich würde Eclipse umprogrammieren.
Und das ist der wesentliche Vorteil vom Emacs: Die Hürde, ihn
umzuprogrammieren ist so niedrig, dass man das "mal eben so nebenbei"
erledigt -- kein Editor-Neustart nötig, man kann seinen Code verändern
und immer wieder ausprobieren. Das, und der Umstand, dass es tausende
Webseiten mit Codebeispielen zu allen möglichen Funktionen gibt, macht
Emacs so besonders und mächtig.
Leider ist Emacs auch die denkbar schlechteste Wahl: Er ist lahm, er
wird in LISP programmiert (und einem unkomfortablen Dialekt noch dazu),
er trägt Altlasten von 30 Jahren mit sich rum, und man braucht Wochen,
bis man sich den Komfort eingerichtet hat, den man von herkömmlichen
IDEs gewohnt ist. Und wenn Englisch eine Hürde für dich ist (als
Programmierer eigentlich ein totales no-go), wirst du auch nicht viel
Dokumentation haben. Und man muss sich an viele Tastenkombinationen
gewöhnen -- Emacs hat Menüs, aber seine Stärke ist die
Tastaturbedienung, darauf muss man sich einlassen.
Wenn du ohnehin nur in einer oder zwei Programmiersprachen arbeitest,
und dich nicht an fremdes Projektmanagement anpassen musst, dann such
dir eine IDE, die diese Sprachen vernünftig umsetzt. Eclipse ist da
immer ein gut erster Versuch. Hast du aber klare eigene Vorstellungen,
was dein Editor machen soll und bist nicht bereit, dich dem Diktat
deiner IDE zu unterwerfen, könnte Emacs für dich sein.
Sei dir der oben genannten Nachteile bewusst, aber lass es dir auch
nicht mies reden: Mein Emacs findet automatisch heraus, zu welcher Sorte
Projekt eine Datei gehört (Autoconf, Perl, plain Make usw.) und passst
sich jedem Buildsystem an, er hat für 8 Sprachen Code-Completion,
Call-Tips (wie IntelliSense) und kontinuierliche Syntaxüberprüfung. Dazu
kommt, dass Emacs von allen Editoren und IDEs die ich kenne das
solideste Syntax-Highlighting hat -- gerade als Perl-Programmierer
kennst du das Problem bestimmt. Emacs hat eine aktive Community mit
eigenem Wiki und neuerdings auch Erweiterungen per integriertem
Paketmanagement, dazu tausende Webseiten von Anwendern mit deren kleinen
Codeschnippseln. Durch die durchgängige Tastaturbedienung kann man nach
der Einarbeitung schneller arbeiten als in einer menügeführten IDE. Und
da Emacs sowohl per GUI als auch per Text-Terminal läuft, kann man sein
erlerntes Wissen auch mal über eine SSH-Verbindung anwenden.
Zusammenfassung:
Meiner Meinung nach braucht man früher oder später auf jeden Fall
VI-Kenntnisse, wenn man gelegentlich mit der Kommandozeile arbeitet.
Emacs lohnt sich nur, wenn der hohe Aufwand für Einarbeitung und
Personalisierung (in LISP-Code) auch durch einen persönlichen Mehrwert
ausgeglichen wird. In dem Fall ist er aber das Ultimum an Flexibilität.
Wer den Aufwand (und das Lernen neuer Tastenkürzel und gleichzeitig
einer funktionalen Programmiersprache) scheut, wird bei soliden
Fertiglösungen wie Eclipse glücklicher.
MaWin (Gast) schrieb:
>> was bringt euch mehr? Emacs oder Vim?> Beide sind die Steinzeit der Computerei und seit 30 Jahren überholt.> Genau das richtige für Masochisten die den Schuss nicht mehr gehört> haben.
Sehe ich auch so. Vielleicht kommt noch hinzu, dass man mal darüber
nachdenken sollte, warum einen das eigene OS zu solch einer Wahl
zwischen Pest und Colera nötigt. Der Fisch stinkt bekanntlich am Kopf
zuerst. Alles was auch heutzutage sich noch beharrlich weigert intuitiv
zu sein, gehört ins Museum und nicht auf einen modernen Desktop (mit
Ausnahme von sehr spezieller Software die quasi "alternativlos"
daherkommt, dann aber auch meistens entsprechend teuer ist).
Schon mal Scite probiert?
Ich hatte mich letztens mal ein wenig mit vim beschäftigt und bin zu
folgendem Schluss gekommen: Um mal schnell Konfigurationsdateien und
Einmalskripte zu schreiben perfekt (besser als nano), aber für den
täglichen Einsatz mir persönlich zu umständlich. Oder will mir wer weiß
machen, dass ESC :w schneller geht als CTRL-s?
> Oder will mir wer weiß> machen, dass ESC :w schneller geht als CTRL-s?
Völlig unerheblich, wie schnell ein bestimmter Befehl ist. Wie schnell
ist denn in deinem Editor das Kopieren der nächsten 3 Zeilen, das
Löschen der nächsten 2 Wörter, oder der Sprung zum Ende der gerade
geöffneten Klammer?
Wenn man so versucht zu argumentieren, welcher Editor der beste ist,
wird man zurecht nicht ernstgenommen.
Was in erster Linie zählt, ist dass man das Programm beherrscht, egal
welches es ist.
wlad
vim kann Suchen + Ersetzten mit regex und andere funktionen, die ich
nicht mehr missen will. Du brauchst etwas zum reinkommen, aber sobald du
drin bist ist es genial, und ich kenne vielleicht 5% des Funktionsumfang
von vim.
zB. ctrl-x ctrl-f möchte ich nicht mehr missen, damit kannst du nach
Dateinamen suchen.
Adler schrieb:> Sehe ich auch so. Vielleicht kommt noch hinzu, dass man mal darüber> nachdenken sollte, warum einen das eigene OS zu solch einer Wahl
Was hat das Betriebssystem mit der Programmierumgebung zu tun?
> zuerst. Alles was auch heutzutage sich noch beharrlich weigert intuitiv> zu sein, gehört ins Museum und nicht auf einen modernen Desktop (mit
Das richtige Werkzeug für den richtigen Zweck. Übliche IDEs haben zwar
schöne Komfortfunktionen, der Editor selbst ist aber der letzte Scheiss.
Mal eben einen Bereich korrekt Einrücken, um den man gerade eine
Schleife hinzugefügt hat? Einrückung vergrößern/verkleinern, das können
die besseren gerade noch. Aber welcher kann vollautomatisch korrekt
einrücken und sich dabei jedem denkbaren Einrückungsstil anpassen?
Dazu kommt: Eine IDE, die einen zwingt, die Maus in die Hand zu nehmen,
ist kein ernstzunehmendes Werkzeug. Das ist was für
Gelegenheitsprogrammierer. Wer wirklich ohne Störung des Gedankenflusses
programmieren will, der braucht etwas, was sich blind bedienen lässt,
und das geht nunmal nur über geeignete Tastenkürzel.
Tasten sind irgendwann im Kleinhirn gespeichert, man benutzt sie blind,
ohne Nachzudenken. Für Mausklicks muss man vom Code wegsehen, von der
Tastatur zur Maus greifen, zielen und ggf. mehrfach die Reaktion des
Programms abwarten (Menüs, Untermenüs, Dialoge). Für "Suchen und
Ersetzen" muss man das Maus-Tastatur-hin-und-her gleich mehrfach machen.
Und nein, die universell verfügbare Tab-Taste zum Wechsel zwischen
Eingabefeldern zählt nicht, weil man dann immer noch auf das visuelle
Feedback vom Programm warten muss. Änderungen an der Benutzeroberfläche
ändern automatisch auch Tab-Positionen. Buchstabenkürzel (Alt+Buchstabe)
sind manchmal auch vorhanden und etwas besser, aber in der Praxis war
noch jedes "intuitive" Programm umständlicher zu bedienen als ein gut
erlerntes textbasiertes Programm.
Das ist das gleiche Spiel wie mit 3D-Modellierern, Schaltplan-Editoren
oder Echtzeit-Strategiespielen: Der Einsteiger ist auf "Entdeckbarkeit"
angewiesen, benutzt Menüs, Icons, Dialogfenster. Der Profi will vor
allem schnell und direkt jede gewünschte Funktion aufrufen können. Jeder
Wechsel des Eingabegeräts, jede Schleife
Programm-Auge-Hirn-Hand-Programm ist verlorene Zeit und verlorene
Konzentration.
Wer also hin und wieder mal ein kleinen Programm für Mikrocontroller
schreibt, kriegt mit einem Werkzeug wie Emacs nicht das, was am meisten
nützt. Wer täglich stundenlang programmiert, tut sich mit einer IDE mit
minderwertigem Editor keinen Gefallen. Es behindert die Produktivität
erheblich.
Oder als Analogie aus der Elektronik: Wer nur ein paar einfache
Steuerungsaufgaben erledigen will ohne gleich ganze Geräte und
Schaltungen zu entwerfen, ist mit Arduino oder mbed bestens bedient. Wer
flexibel sein will und alle seine Vorstellungen exakt umsetzen will,
wird eher auf Steckbrett oder Lochraster experimentieren, auch wenn die
weniger Komfort bieten und einen zwingen, mehr per Hand zu machen.
Also ich will eine IDE, die die Semantik meiner Sprache versteht, nicht
mehr missen. Es geht einfach so viel schneller, auf einem Klassennamen
Ctrl+. zu drücken, als von Hand irgendein Header-File rauszusuchen...
das ist für mich persönlich wesentlich produktiver, als da mit vim
irgendwas rumzubasteln.
Natürlich ist vim ein feiner Editor, aber ich benutze ihn in der Praxis
nur zum Editieren von z.B. Konfigurationsdateien.
Lukas K. schrieb:> Ich hatte mich letztens mal ein wenig mit vim beschäftigt und bin zu> folgendem Schluss gekommen: Um mal schnell Konfigurationsdateien und> Einmalskripte zu schreiben perfekt (besser als nano), aber für den> täglichen Einsatz mir persönlich zu umständlich. Oder will mir wer weiß> machen, dass ESC :w schneller geht als CTRL-s?
Na ja, wenn man eine GUI hat, dann nimmt man wohl eher gvim -- und der
ist schon sehr gut. Ich habe die letzten Jahre meist gedit benutzt, bin
dann vor einem halben Jahr auf gvim umgestiegen. Hat sich gelohnt.
Emacs ist wohl noch etwas mächtiger, für Leute die Scheme können und
lieben vielleicht die erste Wahl. Emacs kann Proportionalfonts
verwenden, das wäre für mich ein Plus gewesen.
Sam P. schrieb:> Das richtige Werkzeug für den richtigen Zweck. Übliche IDEs haben zwar> schöne Komfortfunktionen, der Editor selbst ist aber der letzte Scheiss.> Mal eben einen Bereich korrekt Einrücken, um den man gerade eine> Schleife hinzugefügt hat? Einrückung vergrößern/verkleinern, das können> die besseren gerade noch. Aber welcher kann vollautomatisch korrekt> einrücken und sich dabei jedem denkbaren Einrückungsstil anpassen?
Welche brauchbare IDE kann das nicht? VS, Eclipse, Netbeans können das
alles.
Als vim damals auf dem Amiga erschien, hätte es lebenslanges
Computerverbot für den "Programmierer" geben müssen und religiös
verblendete Fanatiker (emacs) muss ich nicht unterstützen.
> Moin, wie wärs alternativ mit Joe? Den verwende ich am liebsten
Der Joe hat ein alter-ego, nämlich jmacs. Das ist Joe aber mit den
wichtigsten Emacs-Kommandos. Für schnelle Editieraktionen (config-File,
...) ist das super, ist sofort da und man kommt mit den Tastenkombis zum
Emacs nicht durcheinander...
Ansonsten nehm ich (x)emacs (was halt installiert ist), obwohl ich
eigentlich da nicht gross rumkonfigurier oder gar Lisp mache. Ich finde
es sehr schön, für ALLE Anwendungen (C, ASM, VHDL, Perl, TeX, XML, XSL,
...) dieselbe Editor-Umgebung zu haben und das auf allen Platformen und
mit oder ohne GUI. Finde ich persönlich wichtiger, als die
Unterstützungen von Classbrowsern, Symbol-Datenbanken etc. Wenn jemand
zB. nur C++ macht, mag das natürlich anders sein, mein Portfolio lebt
jedenfalls vom Universal-Diletantismus :)
Beim vi weiss ich im wesentlichen nur, wie ich was abspeichere bzw. OHNE
Abspeichern rauskomme... Das Verhalten der vi-Varianten auf Cursortasten
ist mir jedenfalls suspekt. Man weiss nie, ob man im Insert-Mode
gefahrlos eine drücken kann, ohne dass Control-Code-Dreck im Text
landet.
Sam P. (Gast) schrieb:
Adler schrieb:
>> Sehe ich auch so. Vielleicht kommt noch hinzu, dass man mal darüber>> nachdenken sollte, warum einen das eigene OS zu solch einer Wahl> Was hat das Betriebssystem mit der Programmierumgebung zu tun?
Anscheinend sehr viel, denn unter Windows würde niemals jemand auf die
Idee kommen, einen so krankhaften Scheiss wie die beiden genannten
"Editoren" (die den Namen heutzutage nicht mehr nicht verdienen) zu
empfehlen.
> Übliche IDEs haben zwar> schöne Komfortfunktionen, der Editor selbst ist aber der letzte Scheiss.
Der Editor von MS Visual Studio ist sehr gut. Man muss auch nicht jeden
Krampf mit dem Editor anstellen, den man von vi sich einmal ins Gehirn
gefräst hat. Wenn's ums programmieren geht verbringt man die Zeit mit
ganz anderen Dingen als mit kryptischen Editoren-Kommandos und die Maus
stört dabei auch nicht wie immer behauptet wird, egal ob man layoutet
oder Quelltexte verfasst. Hier wird immer krampfhaft versucht zu
verkaufen es ginge bei den genannten Themen um Akkordarbeit, aber genau
das ist i.d.R. nicht der Fall, sondern die Zeit wird hauptsächlich mit
ÜBERLEGUNG verbracht.
Also den Eclipse-Editor mag ich wirklich gar nicht, aber "bei üblichen
IDEs ist der Editor der letzte Scheiß" finde ich auch wesentlich zu weit
gegriffen. ;)
Adler schrieb:> Der Editor von MS Visual Studio ist sehr gut. Man muss auch nicht jeden> Krampf mit dem Editor anstellen, den man von vi sich einmal ins Gehirn> gefräst hat. Wenn's ums programmieren geht verbringt man die Zeit mit> ganz anderen Dingen als mit kryptischen Editoren-Kommandos und die Maus> stört dabei auch nicht wie immer behauptet wird, egal ob man layoutet> oder Quelltexte verfasst. Hier wird immer krampfhaft versucht zu> verkaufen es ginge bei den genannten Themen um Akkordarbeit, aber genau> das ist i.d.R. nicht der Fall, sondern die Zeit wird hauptsächlich mit> ÜBERLEGUNG verbracht.
Ja, das sehe ich ganz genauso!
Gut, dann oute ich mich jetzt:
Ich nutze emacs auch in Windows!
Was man sich alles für Anfeindungen gegen einen oder zwei Editoren
einfallen lassen kann ist schon grandios!
Zum Thema Class oder Functionbrowsing: M-x speedbar
;-)
Patrick Dohmen (oldbug) (Moderator) schrieb:
> Gut, dann oute ich mich jetzt:> Ich nutze emacs auch in Windows!
Patrick schrieb auch
> Ich bin zu emacs gekommen, wie die Jungfrau zum Kind! Ich habe C und> emacs gleichzeitig gelernt (lernen müssen), und ich will ihn nie mehr> missen!
Du bist aus zwei Gründen "entschuldigt". Zum einen hast du selbst
betont, dass du emacs lernen MUSSTEST und zum anderen schätze ich mal
das ist schon länger (viele Jahre) her und somit kennst dich inzwischen
sehr gut mit emacs aus. Dagegen ist absolut nichts einzuwenden bzw. kann
ich gut verstehen. Die Frage ist halt, ob man das heutzutage auch noch
so handhaben MUSS?!
;)
Das Wort MUSS mag ich gar nicht, weil es hört sich immer so an als ob es
keine Alternative gibt. Und sowas gibt es schon zwei mal nicht.
Wenn einer es sagt ich muss das machen, dann werde ich dafür auf
jedenfall
dafür bezahlt und dann habe ich immer noch eine Wahl.
??????????????????????????????????????????????????????????????????????
Gruß,
Matthias K.
Die wahl: arbeitslos und spaß dabei :-)
außerdem hat man dann zeit, vim, mutt, irssi etc. zu lernen :-)
jetzt brauch ich noch nen guten rss cli reader
Man muss sich auch kein Windows8 kaufen oder im Büro benutzen, wenn man
den Desktop schrott findet ;-)
Eine praktische Diskussion dazu findet sich hier:
https://www.youtube.com/watch?v=2Hy89myXLvc
Ein schönes Zitat daraus, "Ich bin jetzt nicht betrunken aber ich nehme
sed".
Ich muss gestehen, ich nehme ganz "normale" Editoren wie den mcedit oder
kate. Die einzige "richtige" Entwicklungsumgebung die ich verwende ist
Lazarus, die teilt sich Quellcode mit dem Compiler und kann somit
wirklich verstehen was ich schreibe.
>Emacs oder Vim ?>programmiere ich recht viel,
viel?
das glaub ich nicht..
wer WIRKLICH Programmiert, hat min. 20 Sourcefiles gleichzeitig offen,
dazu noch Hilfetexte/Webseiten/sonstige Nachschlagewerke
die IDE muss vorallem Codevervollständigung könne,
funktionsparameter anzeigen (als HINT)
fehler sofort anzeigen
automatisch zur implementierung einer funktion springen können
automatisch den hilfe-text zur funktion anzeigen können
codeblöcke ein/ausblenden
beim debuggen unterstützen usw. usw. usw.
und (manchmal) auch einen GUI designer enthalten ..
Adler schrieb:> Wenn's ums programmieren geht verbringt man die Zeit mit> ganz anderen Dingen als mit kryptischen Editoren-Kommandos und die Maus> stört dabei auch nicht wie immer behauptet wird, egal ob man layoutet> oder Quelltexte verfasst. Hier wird immer krampfhaft versucht zu
Und da sieht man, das wir zwei unterschiedliche Auffassungen von
Programmieren haben. Ich rede natürlich von dem Teil des Programmierens,
der mit der Erstellung des Quelltextes verbracht wird. Für das andere
(Entwurf, UI-Design) braucht man keinen Editor. Da benutze ich genau so
wie du GUI-Werkzeuge (UML-Editor, UI-Layouter) -- wie schon gesagt, das
richtige Werkzeug für den richtigen Zweck.
> verkaufen es ginge bei den genannten Themen um Akkordarbeit, aber genau> das ist i.d.R. nicht der Fall, sondern die Zeit wird hauptsächlich mit> ÜBERLEGUNG verbracht.
Mit Verlaub, nein. Erst die Planung, dann die Durchführung.
Wenn du während des Schreibens von Quelltext tatsächlich regelmäßig
überlegen musst, dann beherrschst du deinen Problembereich noch nicht.
Natürlich gibt es immer unvorhergesehene Probleme, aber dann musst du
doch um so mehr Ablenkungsfrei arbeiten können. Jedes mal, wenn du
irgendwo anders hingucken musst, um irgendeine Aktion auszulösen, wird
dein Arbeitsgedächtnis unnötig belastet.
Die von dir "kryptisch" genannten Tastaturbefehle kannst du jedoch blind
benutzen. Wenn du erst einmal Tastaturbedienung gewohnt bist, musst du
nicht nachdenken. Deine Finger (genauer: dein Kleinhirn) kennen die
nötigen Tastenkürzel von selbst. Die Augen bleiben im Quelltext, dein
Geist auch.
Ich weiß, es ist müßig darüber zu reden: Wer sich noch nie darauf
eingelassen hat, der versteht es einfach nicht. Das ist so, wie
jemanden, der zig Projekte mit Arduino gemacht (und hinbekommen) hat,
davon zu überzeugen, dass Steckbrett oder Lochraster viel mächtiger
sind.
Robert L. schrieb:> wer WIRKLICH Programmiert, hat min. 20 Sourcefiles gleichzeitig offen,> dazu noch Hilfetexte/Webseiten/sonstige Nachschlagewerke
Und genau deswegen bevorzuge ich einen Editor, mit dem ich schnell und
direkt navigieren kann. Den ich mir so einstellen kann, dass ich die
gesuchten Informationen möglichst schnell bekomme. Meine Finger rufen in
weniger als einer Sekunde exakt die gesuchte Datei auf, und zwar nicht
nur unter den 20 offenen, sondern auch unter den 200 zuletzt benutzen.
Das mache ich nicht bewusst, das läuft so automatisch wie ich mir die
Nase putze. Das ist das Mächtige an der Tastaturbedienung.
Und wenn ich von einem flexiblen Editor rede, dann rede ich von Dingen
wie:
- mit einem Tastendruck bis zum Zeilenende löschen
- mit einem Tastendruck nur den aktuellen Klammerausdruck löschen
- ein Wort in Groß- oder Kleinbuchstaben wandeln
- den drittletzten kopierten Text nochmal einfügen
- an Anfang/Ende der aktuellen Funktion springen
- zur Stelle der letzten (vorletzten, ...) Änderung springen
- eine Änderung rückgängig machen, aber nur die vorletzte
- alle Änderungen in einem bestimmten Bereich rückgängig machen
- den Einrückungsstil einer Datei automatisch erkennen und bewahren
- einen Kommentar unter Erhaltung von Rahmenzeichen korrekt einrücken
- einen ganzen Block vorübergehend auskommentieren (und zurück)
- einen Text in allen (auch ungeöffneten) Projektdateien
(Dokumentationsdateien, anderen Projekten, ...) suchen
- schnell mal das Projekt wechseln um etwas zu vergleichen
> die IDE muss vorallem Codevervollständigung könne,> funktionsparameter anzeigen (als HINT)> fehler sofort anzeigen> automatisch zur implementierung einer funktion springen können> automatisch den hilfe-text zur funktion anzeigen können> codeblöcke ein/ausblenden> beim debuggen unterstützen usw. usw. usw.
Da gebe ich dir recht (ausser das mit den Codeblöcken -- hat man gute
Navigationsfunktionen, benutzt man das eigentlich gar nicht mehr). Darum
nehme ich emacs. Ich kenne keine IDE, die das für alle Sprachen kann,
die ich benutze. Sicher, VS, Eclipse, Netbeans usw sind sehr stark, wenn
man deren primäre Sprachen benutzt. Ich habe so einige benutzt/benutzen
müssen. Aber immer wieder nervt der unflexible Editor, so dass ich zu
Emacs zurückkehre.
Dem kann ich auch beibringen, mich nicht mit Tooltips und Popup-Menüs zu
nerven, die mir Teile des Quelltextes verdecken. Das mag ich nicht. Dank
der Flexibilität eines komplett gescripteten Editors hatte ich die Wahl,
das an den unteren Bildschirmrand zu verbannen. Und dank der Community
musste ich das nicht einmal selber herausfinden, das Problem hatte schon
einmal jemand anders gelöst. Er zeigt mir die Call-Tips auch mit
farblichen Hervorhebungen und mit den Informationen in der Reihenfolge
an, wie ich sie haben möchte.
Und dank der freien Programmierbarkeit lassen sich eben die
Komfortfunktionen nachrüsten. Die Community hat für vieles Lösungen. Das
ist der Teil, wo man Zeit braucht, um sich das so zusammenzustellen, wie
man es selber mag. Das sagte ich bereits: Gelegenheitsprogrammierer
brauchen diese Flexibilität nicht. Es kostet zu viel Einarbeitung, es
kostet viel Zeit für Personalisierung. Aber wer viel programmiert, für
den lohnt es sich. Man kann das gelernte in allen Projekten anwenden.
Egal ob es eine HTML-Seite, ein AVR-Assemblerprogramm oder eine komplexe
Java-Businessanwendung ist. Welche IDE kann mit ihrem Komfort quer durch
alle Anwendungsgebiete?
Ich habe den Thread damals geöffnet und muss zugeben, dass ich mich
lange Zeit vor dem lernen gedrückst habe. Da es aber jetzt ein Update
gibt, möchte ich euch das gerne mitteilen.
Ich habe mit Beginn der Semesterferien angefangen Vim zu lernen und
bereue inzwischen, dass ich das nicht schon viel früher gemacht habe.
Am Anfang war es ungewohnt - vor allem dachte ich beim durcharbeiten des
"vimtutor" das ich Monate brauchen werde um an den Punkt zu kommen, mit
VIM ernsthaft entwickeln zu können. Aber ich wurde eines besseren
belehrt. Für den Vimtutor habe ich mir 2 Tage Zeit gelassen, dann noch
rund 3 Tage in den Büchern "Hacking vim" und "Practical vim" quer
gelesen. Und dann hat es auch keine weitere 3 Tage gedauert, bis ich mir
eine voll funktionsfähige C++ IDE gebaut habe mit C++11 Syntax
Highlighting, Code Completion, Classview Browser, Doxygen, Git-Anbindung
usw. usf.
Jetzt habe ich eine eigene .vimrc , die ich beim OS Wechsel oder bei Neu
installation nur aufrufen muss und er richtet mir alles inkl.
Colorscheme, Font, Plugins automatisch ein. :) !
Die letzten zwei Tage habe ich angefangen dann meine Projekte weiter zu
entwickeln und die Zeit ersparnis durch die Tastaturbindung ist
gewaltig. Zum resizen von Fenstern im Splitview benutze ich manchmal
noch die Maus. Das wars.
Ich kann nur sagen, das war die beste Investitoin an Lernzeit die ich
bislang getätigt habe. Einfach Unvergleichlich
Auch wenn ich Gefahr laufe, dass die Diskussion wieder geschlossen wird.
Das Thema ist einfach zu interessant.
Zu mir: Ich bin Emacs-Nutzer seit 2002. Der große Vorteil: Die
Tastenkombinationen laufen automatisiert ab. Ich muss gar nicht mehr
darüber nachdenken. Was mich an IDE stört: Viel zu viele Buttons,
ständige Schlimmbesserungen, Instabilitäten (das war bei Eclipse sehr
schlimm).
Ich habe mit dem Emacs Python, Java, C, C++,VHDL, Shell-Skripte, Haskell
und mehr programmiert während des Studiums. Natürlich nutze ich auch
sowas wie Eclipse... Java-Support war bei Emacs traditionall immer
schlecht und das wichtigste Feature ist Autovervollständig, das Browsen
durch alle Pakete. Java nutze ich beruflich. Aber ich nutze auch den
Emacs beruflich. Selbst für Java-Schnippsel. Manchmal habe ich eine
semistrukturierte Spezifikation, die sich sehr gut anbietet, direkt in
Source-Code verwandelt zu werden. Das mache ich mit Keyboard-Macros, die
ich nach neun Jahren Emacs-Anwendung für mich entdeckte. Recht spät.
Heute nutze ich fast täglich Keyboard-Macros und bin enorm produktiv. Es
gibt Youtube-Videos über dieses Feature, falls sich jemand ein Eindruck
darüber verschaffen möchte.
Ich habe neulich den Azubis in wenigen Minuten demonstriert, wie ich den
Source-Code eines Java-Enums erzeuge mithilfe einer Tabelle aus der
Wikipedia, die ich per Copy'n'paste in den Emacs holte. Ich zeichnete
fünf bis sechs Keyboard-Macros auf und wiederholte diese und mit wenig
Aufwand entstand kompilierfähiger und semantisch korrekter Java-Code,
den ich dann zurück in den Eclipse kopierte.
Der große Vorteil der IDEs war immer, dass die Kompilierung im
Hintergrund läuft, dass sofort Kompilierprobleme angezeigt werden usw.
Sowas kann der Emacs aber auch. Microsoft hat ja das Language Server
Protokoll aus der Taufe gehoben, mit der Idee, die Trennung von Front-
und Backend. Die Entwickler wollen ihren Lieblingseditor verwenden, ohne
auf die Hintergrundfunktionalität der IDEs zu verzichten.
Da ich privat viel mit Python mache, bestätige ich, dass es
funktioniert. Emacs mit eglot und dem python-lsp-server... Das
funktioniert sehr gut. Autovervollständig ist richtig gut. Mit Flymake
hat man auch one-the-fly-Syntax-Überprüfung.
Zu Vim kann ich nicht viel sagen. Benutze ich nicht gerne. Bin ja ein
Emacser. Vim-Leute, die ihren Vim wirklich beherrschen, sollen aber auch
eine hohe Produktivität erreichen.
Im Buch "Der pragmatische Programmierer" gibt es den Tipp: "Lernen Sie
einen Editor, den aber richtig."
Ich habe mir erst vor wenigen Tagen den Emacs 31 kompiliert. Es gibt
stetige Verbesserung. Die Community lebt.
Was hier gesagt wurde, dass eine Entscheidung für Emacs eine gegen Gui
sei, war schon vor 20 Jahren falsch. Schon vor 20 Jahren hatte der GNU
Emacs 'ne Gui und der XEmacs sowieso.
Es lohnt sich in jedem Falle, einen der beiden Editoren in der Tiefe
kennen zu lernen. Die Produktivitätszuwächse sind enorm.
Rudi R. schrieb:> Auch wenn ich Gefahr laufe, dass die Diskussion wieder geschlossen wird.> Das Thema ist einfach zu interessant.
Nicht wirklich. Vim muss man (rein als Text-Editor!) benutzen können,
weil es halt auf praktisch jeden unixoiden Zielsystem verfügbar ist.
Ansonsten braucht (und benutzt) man es für nix. Weil: vom heutigen Stand
der Technik aus betrachtet: maximal unkomfortabel.
Und Emacs ist halt nur vom heutigen Stand der Technik betrachtet maximal
unkomfortabel.
> Es lohnt sich in jedem Falle, einen der beiden Editoren in der Tiefe> kennen zu lernen. Die Produktivitätszuwächse sind enorm.
Eher nicht...