Etwa 22.000 CSS-Tricks-Besucher haben bei der letzten Umfrage zur Kommandozeilen-Nutzung abgestimmt, die gefragt hat
Wie viele Befehle führen Sie durchschnittlich an jedem Arbeitstag über die Kommandozeile aus?
Das Ergebnis: Es gibt viele Leute auf allen verschiedenen Ebenen. Kein Wunder, dass es ein so heißes Thema sein kann.
Hier sind die Ergebnisse als Diagramm
Sehen Sie den Pen uJjyD von Chris Coyier (@chriscoyier) auf CodePen.
19% der Leute benutzen die Kommandozeile überhaupt nicht. Die größte Gruppe, 27%, führt nur eine Handvoll Befehle pro Tag aus.
18% führen 10-50 Befehle aus, 15% führen 50-100 Befehle aus und 15% führen 100-1000 Befehle aus. Ich finde es interessant, dass diese Gruppe zusammen (10-1000 Befehle pro Tag) die größte Anzahl von Leuten repräsentiert (48%).
Die kleinste Gruppe (6%) führt über 1000 Befehle pro Tag aus. Manche Leute leben einfach in der Shell!
Ich persönlich gehöre zur 10-50 Gruppe. Normalerweise mache ich Dinge wie Grunt starten, einen Rails-Server starten und ähnliche Dinge, um eine Entwicklungsumgebung einzurichten.
Die Idee für die Umfrage basierte auf der üblichen Nebenunterhaltung, die immer Gespräche über Kommandozeilen-Tools begleitet.
Nehmen wir an, ein neues Tool kommt heraus, das nur über die Kommandozeile verwendet werden kann. Was auch immer es tut, das Endergebnis ist wünschenswert. Einige Leute werden begeistert sein und darüber reden und es benutzen. Einige Leute werden darüber nachdenken, es zu benutzen, aber nie dazu kommen, weil es etwas außerhalb ihrer Komfortzone liegt. Manche Leute werden beklagen, dass es ein Kommandozeilen-Tool ist und es ganz abschreiben.
Dann wird es einige Kommentare geben, die die Nicht-Kommandozeilen-Benutzer geißeln. Einige Kommentare werden ihnen sagen, dass es nichts zu befürchten gibt. Es ist leicht, dem zuzustimmen, denn natürlich ist es immer gut, mehr zu lernen. Aber andererseits muss nicht jeder alles wissen und es gibt einige Tools, die, wie nerdig sie auch sein mögen, von einer Benutzeroberfläche profitieren könnten. Tools wie CodeKit beweisen, dass sie gewünscht und stark genutzt werden.
Ich vermute, Tools wie Grunt sind beides
- Mehr Leute in die Kommandozeile bringen
- Die Kommandozeile weniger schwierig machen
- Mehr Nutzen für das Erlernen davon bieten
Wenn heute ein neues Kommandozeilen-Tool herauskommt, das etwas Cooles tut, ist die Wahrscheinlichkeit groß, dass es bereits ein Grunt-Plugin ist oder jemand schnell eines erstellen wird. So müssen Sie nichts Neues lernen, sondern fügen einfach das Grunt-Plugin hinzu und konfigurieren es, was Sie wahrscheinlich schon oft getan haben.
Ich bin auch der Meinung, dass es wahrscheinlich nie eine GUI für Grunt geben wird – zumindest keine, die gut ist – denn was bei Grunt wichtig ist, ist die Konfiguration der Plugins. Jedes Plugin ist so unterschiedlich, dass es seine eigene spezielle Benutzeroberfläche erfordern würde, nicht etwas Generisches.
Das Interessanteste, was ich hier gelernt habe, ist, wie breit das Spektrum der Kommandozeilen-Nutzung ist, das von null Erfahrung bis zur Meisterschaft reicht. Das ist etwas ganz anderes als die meisten Dinge, die wir in der Webtechnologie diskutieren, also ist es gut, das im Hinterkopf zu behalten.
Neue Umfrage bald.
Ich habe kürzlich angefangen, die Kommandozeile zu benutzen (direkt nach der Abstimmung in der Umfrage) für die Versionskontrolle mit Git und SSH.
Sieht so aus, als wäre es zu spät, meine Stimme zu ändern.
Ich vermute, Leute, die viele Kommandozeilen benutzen, verwenden Dinge wie Grunt/Gulp/Yeoman/Bower/Git, und diejenigen, die das nicht tun, verwenden meist CodeKit/Prepros/SourceTree/Github, diese UI-Dinge.
Ich persönlich werde sehr glücklich sein, wenn die Kommandozeile einen schrecklichen Tod stirbt. Sie ist der Inbegriff schlechter UX und es ist so einfach, heutzutage eine einfache GUI zu erstellen, dass Softwareentwickler keine Entschuldigung haben.
Ich liebe Grunt, würde aber nie die Kommandozeile benutzen, um es auszuführen. Ich benutze es innerhalb von Sublime Text.
Ich denke, Sie übersehen den Grund, warum die Kommandozeile überhaupt noch existiert. Obwohl dieser Artikel sich eindeutig an eigenständige Dienstprogramm-Suiten richtet (bei denen ich gemischte Gefühle habe), wird Ihnen jeder mit einer angemessenen Erfahrung mit der CLI sagen, dass das Schreiben einer GUI für Tools wie
grepoderwgetim Grunde verschwendete Mühe ist. Aus demselben Grund, warum das Verständnis von HTML und CSS zu besseren Websites führt, ermöglicht das Verständnis der Sprache und der Werkzeuge einer Kommandozeilenumgebung einem Entwickler, diese effektiver (und oft viel schneller) zu nutzen als äquivalente grafische Optionen.Insbesondere als jemand, der die meiste Zeit sowieso mit Programmieren verbringt, ziehe ich es *bei weitem* vor, meine Finger so oft wie möglich auf der Tastatur zu lassen. Ich habe sogar eine Ein-Tasten-Verknüpfung, die den Terminal-Emulator meines Systems über alles andere legt, was ich gerade tue, nur um es noch schneller zu machen. Für Leute wie mich ist die CLI oft die bessere Option. Sie als „Inbegriff schlechter UX“ zu bezeichnen, ist vielleicht eine Übertreibung.
Hinweis: Ich bin hauptsächlich Anwendungsentwickler und mache nur Web-Arbeit als Hobby. Nehmen Sie das mit Vorsicht und so weiter.
Solange die Kommandozeile schneller ist als die GUI, werde ich nicht wechseln!
Warum sollten Sie sich durch ein Menü von Aktionen klicken und dann 3 Sekunden warten, um eine neue Datei zu erstellen, wenn Sie das in 100 ms mit einem einzigen Befehl erledigen können? Warum sollten Sie eine Minute damit verschwenden, diesen Ordner zu suchen, um zu sehen, welche Dateien darin sind, wenn Sie das in 100 ms mit einem einzigen Befehl erledigen können?
Die Kommandozeile ist vielleicht nicht so intuitiv wie eine GUI (wohlgemerkt), aber in *einigen Fällen* erledigt sie die Arbeit um ein Vielfaches schneller als jede GUI. Vergessen Sie nicht, dass Sie für Schickimicki mit CPU und Speicher bezahlen.
Ganz zu schweigen davon, dass wir bei der Verwendung von GUI-Tools praktisch eine Blackbox benutzen. Wenn Eclipse „Workspace wird erstellt“ sagt, wissen Sie dann eigentlich, was das bedeutet? Sie können es nicht wissen! Sie haben keine Ahnung, was Eclipse *tatsächlich* tut, Sie können nur raten. Wenn etwas schief geht. Bei der Kommandozeile hingegen können Sie nicht raten – denn Sie sind es, der den Befehl ausführt. Sie wissen, welchen Befehl Sie ausführen, und noch wichtiger ist die Tatsache, dass dieser Befehl seine Fehler direkt vor Ihnen ausgibt.
Und ich fange gar nicht erst von Leuten an, die die einfachsten Dinge nicht verstehen, wie die Grundkonzepte hinter CVS („was ist ein ‚diff‘?“), weil sie eine GUI benutzen und nie wirklich verstehen, was dort passiert.
GUIs sind nicht für alles perfekt und die Kommandozeile auch nicht.
Jede hat ihre eigenen Vor- und Nachteile.
App-Start? Ich werde immer Alfred/Spotlight/Launchy benutzen, weil es einfacher ist, einfach einzutippen…
Befehl+Leerzeichen'pho'
Enter
…als meine Maus zu nehmen, auf Programme zu klicken, auf Photoshop zu klicken.
Ich weiß, das ist Haarspalterei, aber App-Launcher bieten eine einheitliche Benutzeroberfläche für alles mit minimaler Suche. Ich benutze einfach meine Worte, um zu finden, was ich brauche, sei es etwas, das ich oft benutze (Sublime, Photoshop, Evernote) oder selten (Camtasia, Illustrator, Suitcase). Die Worte reduzieren den kognitiven Aufwand der Suche.
Und was ist mit Tastenkombinationen?
Wenn GUIs die Antwort für alles wären, gäbe es keine Effizienzgewinne, wenn man den Leuten eine mechanische Verknüpfung für etwas gibt.
Ja, all das, um zu sagen, dass GUIs großartig sind, aber sie sind nicht für jede Aufgabe perfekt. Manchmal ist es einfacher, einfach die altbewährte arkane Sprache zu benutzen, um es zu erledigen.
Jon, das ist so ähnlich, als würde man sagen, die Motorhaube von Autos sollte zugeschweißt sein.
Manche Leute machen Dinge eben gerne „unter der Haube“.
Es ist nichts für mich, aber manchmal finde ich eine Verwendung dafür.
Ich hasse es jedoch zu verallgemeinern, und **es ist eine Verallgemeinerung**, aber meine Erfahrung hat gezeigt, dass je mehr eine Person mit der Kommandozeile arbeitet, desto weniger wahrscheinlich ist es, dass sie Leute respektiert, die das nicht tun. Wieder, das ist meine Erfahrung, und ich bin sicher, es gäbe viele Kommandozeilen-Jockeys, die nicht so sind.
Ich bin in der 100-1000-Gruppe, wahrscheinlich am unteren Ende davon an den meisten Tagen, je nachdem, was ich tue.
Mit einem Hintergrund, der stark von *nix und dem, was manche als „richtiges“ Programmieren bezeichnen würden, geprägt ist, muss ich Ihren Standpunkt hier in Frage stellen.
Wir sind im Geschäft des Programmierens, und um das zu tun, bauen wir oft neue coole Sachen auf nicht so coole alte Sachen auf. Es hat keinen Sinn, die nicht so coolen alten Sachen zu verunglimpfen; wir brauchen sie, um unsere coolen neuen Sachen bauen zu können.
Zu sagen, dass die CLI aus Sicht der Benutzererfahrung schlecht konzipiert ist, ist wie die Beschwerde über die Benutzererfahrung einer Telegrafenstange. Sie ist dazu da, einen Job zu erledigen, und wurde vor einiger Zeit für diesen Zweck entworfen und gebaut, nicht um die moderne Vorstellung einer guten Benutzererfahrung zu bieten.
Entschuldigung, wenn ich zu lange rede, und ich meine keinen Anstoß – es ärgert mich einfach, wenn Leute etwas verunglimpfen, bei dessen Nutzung sie eine Wahl haben. Es ist am Ende des Tages ein Werkzeug, um einen Job zu erledigen – wenn Ihnen dieses Werkzeug nicht gefällt, können Sie andere benutzen, die für diese Aufgabe entwickelt wurden.
Ähnlich wie das Meckern darüber, wie Ihre Sense aussieht, wenn Sie einen Rasentrimmer im Schuppen haben.
Jon –
Sie haben absolut kein Argument. Die Kommandozeile wird nie sterben! Dank Leuten wie Ihnen, die nie genug motiviert waren, sie zu lernen und produktiver zu werden als ihr GUI-Benutzer-Gegenstück.
Vielen Dank,
Cooper
AlanC –
Ich liebe Ihre Analogie: „Zu sagen, dass die CLI aus Sicht der Benutzererfahrung schlecht konzipiert ist, ist wie die Beschwerde über die Benutzererfahrung einer Telegrafenstange.“
Ganz genau.
Cp
Ich sehe das eher so
Der Webdesigner ist ein Maler, und der Kommandozeilen-Jockey ist ein Schriftsteller. Beide sind trotzdem Künstler. Ich würde vermuten, dass es hauptsächlich daran liegt, dass jeder Mensch anders denkt, fühlt und wahrnimmt, weshalb nicht jeder mit demselben Medium und Stil ausdrückt. Daher hoffe ich, dass die Kommandozeile niemals stirbt, geschweige denn auf schreckliche Weise. Rede keinen Unsinn.
Wenn ich Linux oder OSX benutze (fast immer), lebe ich in der Shell außer für die Browser, unter Windows musste ich noch nie die Konsole öffnen, komisch. :)
Ich beobachte das und es verwirrt mich. Ich bin nicht jeden Tag auf meiner Linux-Maschine, aber selbst ohne sie pushe ich nach Git oder führe Compass über Ruby für Windows aus.
Meine Sorge gilt dem Workflow. Compass auf Ruby passt im Moment am besten zu mir, daher ist „compass watch“ mein bester Freund, wenn ich etwas verbocke.
Ich liebe die Kommandozeile..
Vielleicht ist Spezifität die nächste Umfrage. Das würde mich interessieren.
Mit Node.js und einer Fülle von Webdiensten ist es zu einfach, ein CLI-Tool zu erstellen, um verrückte Dinge zu tun. Ich habe ein zusammengesetztes „upd“-Skript, das ich ab und zu am Tag ausführe, es prüft mein Gmail, Kalender, Wetter, Paketverfolgungsstatus, neue Filmveröffentlichungen und Hauspreise in meiner Umgebung. Versuchen Sie, das mit GUI-Apps (oder sogar einem Browser) zu machen – mindestens 5 Minuten!
Ich bin alt genug, um keine Wahl gehabt zu haben, als einen Computer mit einer Kommandozeile zu benutzen… oder wie sie zu MS-DOS-Zeiten die DOS-Eingabeaufforderung nannten. Wir hatten keine GUI, also mussten wir die Eingabeaufforderung benutzen… und wir mussten diese DOS-Befehle lernen, um unsere Computer zu benutzen… ich erinnere mich, dass es sich dadurch schlau anfühlte…
Ich erinnere mich, wie ich meine erste GUI gesehen habe… Es war der Apple MacIntosh und ich dachte: „Wow“, man muss keine Tonne seltsam formulierter Befehle mehr auswendig lernen und ich kann einen Computer auf eine Weise bedienen, die meiner Arbeitsweise in der realen Welt ähnlicher ist (Dateien gehen in visuelle Ordner… gelöschte Elemente gehen in den Papierkorb, der wie ein Papierkorb aussieht… usw.). Für eine visuelle Person wie mich machte das Computer so viel zugänglicher… und ich konnte meine Bemühungen darauf konzentrieren, nicht auf das Auswendiglernen von Low-Level-Betriebssystembefehlen wie „verschieben“, „Verzeichnis erstellen“, „Verzeichnis wechseln“ und stattdessen meine Bemühungen darauf konzentrieren, Dinge zu produzieren, das war vor dreißig Jahren…
Dreißig Jahre später fühlt es sich an, als wäre die Kommandozeile zurück und ich verstehe nicht warum. Ich denke, wir sind im Computergeschäft und je nerdiger wir unsere UIs machen können, desto klüger fühlen wir uns. Aber ich sehe keine Logik darin. Das Auswendiglernen all dieser Befehle, um grundlegende Betriebssystembefehle auszuführen…
Vielleicht ist der Befehl für manche Leute wie eine Retro-Neuheit, aber nicht für mich.
Wie dem auch sei, jedem das Seine. Ich bevorzuge meistens eine GUI für meine UIs.
Michael!
Zum Zeitpunkt meiner Abstimmung war ich in der Gruppe mit einer Handvoll Befehle. Jetzt, da ich anfange, Android-Sachen herunterzuladen und zu bauen (Kernel, ROMs usw.), hat sich das auf viel mehr erhöht.
Wie ich auf einer Folie für einen Vortrag, den ich plane, habe: *„Ich bin kein CMD-Experte, aber die CMD ist jetzt Teil des Webdesigners.“*
Das Problem mit der CMD ist nicht die CMD selbst, jeder kann Text darauf eingeben. Das Problem mit der CMD ist, dass die Befehle, die Entwickler und Programmierer zum Ausführen grundlegender Aktionen entwickelt haben, so verdammt seltsam sind und viele, wenn nicht die meisten, überhaupt keinen Sinn ergeben.
git push origin master, ernsthaft.~/my-awesome-site jekyll serve, wirklich.Glücklicherweise konnte ich einige CMD-basierte Anwendungen überwinden, aber nur, weil ich hartnäckig war, nicht weil die CMD-Befehle intuitiv sind.
sass --watch scss:css --compass --style compact --debug-info, dieses hier habe ich nach ein paar Monaten Kopfzerbrechen herausgefunden. Jetzt benutze ich Prepros App dafür.browser-sync --config bs.js, das Gleiche hier, habe wochenlang den Kopf an die Wand geschlagen, bis ich es herausgefunden habe. Ich benutze es immer noch so.Würde ich die CMD einem Kollegen aus dem Webbereich empfehlen? Nein, auf keinen Fall. Aber **WENN** sie gut im Webdesign/-entwicklung sein wollen, werden sie sie irgendwann benutzen müssen.
Ich habe gerade kürzlich zum ersten Mal die Kommandozeile benutzt, als ich Sass verwendet habe.
CLI ist so viel schneller als eine GUI, und man kann viel mehr damit machen. Wie kann man gitk durch Midnight Commander leiten und die Ergebnisse an Outlook Express weiterleiten? Macht das überhaupt Sinn? Nein, man ist auf das beschränkt, was die GUI bietet.
Die Fähigkeit, die CLI zu beherrschen, ist wie ein Telepath unter Mundkommunikatoren zu sein. Es liegt jenseits ihres Verständnisses, sich überhaupt vorzustellen, was sie tun könnten, wenn sie die Fähigkeit hätten. Es macht Spaß, mit Tippgeschwindigkeit einige mystische Befehle einzugeben und sofort Ergebnisse zu erhalten. GUI-Benutzer lassen einfach ihre Kinnladen fallen und tun so, als hätten sie es nicht gesehen.
Ich benutze die Kommandozeile für Git, Compass und jetzt Grunt. Es macht die Dinge für mich wirklich schnell, so viel kann automatisiert werden. Ich fand Git GUIs schon immer verwirrend, und das war einer der Gründe, warum ich von Windows weggegangen bin.
Ich habe vor langer Zeit mit DOS angefangen und halte mich bis heute so weit wie möglich vom grünen Bildschirm fern. Ich habe Node.js installiert, um einige Funktionen in Sublime Text nutzen zu können, aber das ist das Ausmaß meines Bedarfs für die Kommandozeile.
Ich liebe die CLI, solange sie intuitiv ist. Nehmen Sie Linux als gutes Beispiel, ich benutze die CLI jetzt täglich, aber als ich zu Linux wechseln wollte, war es so schwierig, irgendwohin zu gelangen, dass ich es aufgegeben habe.
Ich kann die Liebe zu GUIs oder der CLI absolut verstehen, aber für mich sind beide ähnlich in dem Sinne, dass sie intuitiv oder ein Albtraum sein können, um etwas zu erledigen. Ich habe nur ein paar probiert, aber Git GUIs haben mich immer wieder zur CLI zurückgebracht.
Ich benutze die CLI hauptsächlich für Grunt, SASS/Compass und Git, und meistens sind die Befehle ziemlich einfach zu merken und zu verwenden, und es dauert nicht lange, sie zu lernen. Das ist der Schlüssel.
Ich denke, viele Webentwickler, die anfangen oder sich im mittleren Bereich befinden, würden gut daran tun, es zu lernen – eine gute Demonstration seiner Macht wird sie im Handumdrehen überzeugen.
Ich glaube, ich benutze die Kommandozeile schon ewig. Ich benutze sie so viel, dass ich die Hälfte der Dinge in einigen GUIs nicht verstehe.
CLI-Nutzung: SASS, GRUNT, GIT.