Per què preferim la línia d'ordres als GUIs?

Revisant altres articles vaig topar amb aquesta petita pregunta que em va causar molta gràcia, és veritat que una de les primeres coses que ens treuen en cara usuaris d'altres sistemes (excepte FreeBSD) és que no fem servir els GUIs. Francament, a mi també em va semblar força curiós a el principi del meu viatge per GNU / Linux. He d'admetre que amb el passar el temps, ara utilitzo molt més la línia de comandes que qualsevol altre programa amb GUI, i moltes vegades prefereixo programes dins de la línia d'ordres a programes més elaborats amb GUIs enlluernadors.

el mite

En realitat això no és més que un mite urbà, ja que a diferència d'altres sistemes els noms no seran mencionats aquí, és en GNU / Linux on realment tens llibertat d'elecció. Ja voldria que en altres sistemes existís la versatilitat que existeix aquí. Però vegem en més profunditat aquest assumpte, que si no, no queden clares moltes coses:

Servidors

Tots hem sentit de la paraula servidor, alguns creuen que són aquestes super ordinadors que alimenten Google o Amazon, o la que està en la teva empresa. Però la realitat és que un servidor respon a un model de treball. Fem servir aquest terme per fer referència al fet que tenim un programa que està a disposició dels usuaris (clients) I els lliura alguna cosa. Un exemple bàsic és Apache, El qual s'usa per a servir pàgines web a internet. Aquest programa lliurament html als clients que ho sol·licitin.

Servidor d'imatges

Però no solament un servidor pot estar en les super ordinadors que fan possible Google i moltes altres empreses, fins i tot la portàtil més «antiga» pot ser un servidor, De manera especial quan parlem d'imatges. Tots correm un servidor d'imatges en les nostres portàtils per poder tenir una pantalla funcional, en aquest cas el servidor i el client  són la mateixa persona. L'exemple més comú és X (Conegut com xorg-server en moltes distribucions) i el seu nou reemplaçament Wayland. No anem a donar una explicació detallada de per què el org, o com és que Wayland funciona, o les filosofies que hi ha darrere d'aquests grans projectes, però si anem a deixar clar que és gràcies a ells que nosaltres podem comptar amb un navegador web com Firefox o Chrome, o molts altres programes.

Gestor de finestres

Els gestors de finestres treballen directament amb el servidor d'imatge, el seu treball és d'un nivell més "greu", ja que gestionen (valgui la redundància) com és que es creen, modifiquen, tanquen les finestres. Solen ser bastant simples i sobre aquests es construeixen els entorns d'escriptori. La llista és gran, però només deixaré aquí la idea que són programaris minimalistes, els quals permeten tenir un control bastant bàsic de servidor d'imatges.

Entorn d'escriptori

Un conjunt més especialitzat de programari que permet no només un funcionament de servidor d'imatge, sinó també proporcionen capacitats de personalització. Dins d'aquests els més antics i pesats són KDE i GNOME, però també tenim entorns més lleugers com LXDE o Mate, Cinnamon, etc.

CLI (interfície de línia d'ordres)

Després d'un breu repàs pel món dels servidors d'imatges, ara ens centrem novament en el nostre tema. CLI, Implica tot aquell programa que s'executa per línia de comanda, ja sigui git, vim, weechat, O bé, qualsevol altre que se'ls vingui a la ment. Poden apreciar que estic parlant de programes que si bé s'executen en la línia de comandament, mostren una mena de «interfície gràfica» com weechat o vim. Per a tots els que no els hagin provat, els hi recomano, són bàsicament els que ús tot el dia.

Per què CLI és millor que GUI

Intentem alguna cosa bastant senzill 🙂 L'altre dia volia treballar en un pegat per Portage (el gestor de paquets de Gentoo). Com tot bon projecte col·laboratiu, la quantitat de línies de codi supera els 70k. Intentin obrir això en un IDE com NinjaIDE (Portage està escrit en Python) i no trigaran a notar que en el que comença a carregar la pantalla, la seva màquina es posa summament lenta (al menys la meva i7 si ho feia) i això només tractant de obrir el codi i canviar a la color per defecte d ' «ajuda».

Ara intentin fer el mateix amb vim, A mi em va carregar en qüestió de mil·lèsimes de segon, i a el mateix temps que posava els colors «bonics» i tota la resta.

CLI ha estat molt abans

Alguns aquí diran que aquests programes són Antics, Jo els dic robust. Si poguessin veure la quantitat d'hores invertides en construir emacs, vim, gdb, I altres centenars de programes per a consola, podran notar que la quantitat de codi i funcionalitats és tan gran que pràcticament ja han solucionat tot el que necessitaven solucionar. molts GUI per a programes que ja són robustos si CLI mai tindran la mateixa quantitat de funcionalitats, això senzillament perquè si féssim una pestanya per a cada subcomando disponible de per exemple git, Ens perdríem entre les opcions i seria contraproduent, perquè faria difícil l'treballar.

CLI és més ràpid

La màgia comença amb la tecla Tab, Aquesta no solament és la teva millor amiga a l'hora de navegar pels escriptoris en la teva terminal, sinó que quan està ben configurada, et permet escurçar sentències llargues a 2 lletres i un Tab, 3 caràcters i un Tab, o fins i tot una lletra i un Tab.

Però aquesta no és l'únic avantatge, els que hem pres el temps d'aprendre vim o emacs podem dir que encara que la corba d'aprenentatge sigui una mica més gran a la dels IDE d'aquests dies, a la fi dels resultats de productivitat són sorprenents, un no s'imagina el temps que pot perdre a l'moure un ratolí. El tenir les mans en el teclat el 90% del temps no només ensenya concentració, a més, el fet d'escriure tant en el teclat et fa bastant àgil i productiu. I ara tornem a el punt anterior, a l'portar tant de temps amb nosaltres, programes com aquests ja compten amb totes les funcionalitats que se li puguin ocórrer a algú, una dita bastant comú per als que fem servir vim em ve al cap:

Si fas servir més de 4 tecles, pot haver-hi una forma millor.

Senzill però poderós, vim et permet fer tot amb la gran quantitat de tecles i combinacions possibles, un mai deixa d'aprendre, però no deixa de ser veritat també que per poder usar-lo no cal saber-les totes, n'hi ha prou unes 10 o 15 per començar a ser més productiu.

CLI et dóna el control absolut

Quan un executa operacions amb el ratolí, o programes des del servidor d'imatges, no sempre es tenen present totes les configuracions extra que s'executen a l'hora de donar clic, això no succeeix amb la terminal, aquí tu tens el poder absolut del que s'executa o no, amb quina opció o fins a quin punt. Amb el temps et vas adonant que necessites menys del que penses, i això t'ajuda a fer les coses de forma més centrada.

GUI també té el seu

No vaig a dir que tots hauríem d'usar CLI sempre, això tampoc és l'ideal, jo mateix ús GUIs gairebé tot el temps, per escriure aquest post estic fent servir el meu Chrome, i per veure els meus correus ús Evolution (tot i que també ús mutt bastant últimament). I suposo que aquest és el major mite de tots ... que la gent pensi que GNU / Linux són només termianles, a mi m'agrada el meu entorn d'escriptori, és bastant minimalista, però a mi m'agrada així 🙂 I usualment només tinc dos o tres programes corrent, el meu Chrome, el meu Evolution i el meu terminal 🙂

Aquests són uns dels motius pels quals m'agraden tant les CLI i pels quals els convido a donar-los una oportunitat, pot ser que després acabin com jo fent servir més clis que GUIs 😉 Salutacions


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   anònim va dir

    «Com tot bon projecte col·laboratiu, la quantitat de línies de codi supera els 70k. »Aquesta part em va fer massa soroll. Ha alguna impossibilitat tècnica per la qual el codi hagi de veure compactat en una mateix arxiu? No seria millor separar comportament en diferents ens (files / classes / mòduls)?
    No semblés ser una raó vàlida per imposar una tecnologia per sobre una altra, deixar de banda els avantatges que proposa una per una manca en la forma de desenvolupament. De qualsevol manera estic parlant sense saber a quin projecte en particular refereix, per aquí hi ha una causa més gran que forci aquesta forma de treball

    1.    ChrisADR va dir

      Hola,

      Doncs potser això requereix una mica d'explicació, però al que em refereixo com «bon projecte» implica que la quantitat de línies expressa que és una comunitat sana que es manté en creixement. Existeixen projectes amb una molt menor quantitat de línies, però bastant sans en el seu desenvolupament. En realitat sí, portage està dividit en la major quantitat d'arxius possibles, però sempre cal mantenir agrupades porcions com llibreries, o switchs que deriven en bastants altres funcions. Però a l'hora d'importar un projecte en molts IDE d'avui en dia, això implica que va a llegir tots els arxius de el projecte i tractar de posar el format «visual» correcte.

      Espero deixar-ho una mica més clar 🙂 i gràcies per fer comentaris.
      Salutacions

  2.   anònim va dir

    Ús de la línia de comandaments? Sí, però només quan sigui procedent. És a dir, quan sigui més còmode i ràpid. Per exemple, si vull instal·lar un determinat programa per a mi és més còmode escriure sudo apt install nombreprograma d'obrir un gestor de programari, buscar-ho, marcar-ho per instal·lar i prémer «instal·lar». Però en general això no és així. Per exemple: si vull copiar les 20 cançons que més m'agraden d'un directori a un altre és super-còmode fer Control + Clic mentre revises tranquil·lament una enorme llista des d'un gestor d'arxius i després arrossegar i deixar anar. Un altre exemple: si vull particionar un disc és molt millor fer-ho mitjançant gparted (programa que executa multitud d'ordres mentre et mostra gràficament com quedarà el disc) de realitzar manualment. La llista podria ser interminable. Les GUI poden (de fet solen) facilitar molt el treball, a més d'afegir funcionalitats que per a una determinada aplicació cli poguessin ser impossibles

    1.    ChrisADR va dir

      bo això depèn de què tan còmode se senti un amb la línia d'ordres ... per exemple:

      find dir/musica -name "archivo" -exec grep cp {} dir/nuevo \;

      amb una mica de màgia en bash pots fins i tot fer una funció que executi el mateix amb tan sols posar el nom de la cançó:

      alguna cosa com

      mover(){
      find dir/musica -name $1 -exec grep cp {} dir/nuevo \;
      }

      i llest! pots moure totes les teves cançons amb un simple

      mover cancion1.mp3

      🙂 Quant al segon, encara que en part les GUI fan més «simple» la feina a l'evitar recordar i repetir ordres, això només és útil en marcs generals, quan necessites alguna cosa especialitzat, gparted o qualsevol altre GUI pot quedar curt 🙂 i els GUI no afegeixen funcionalitats extra, només prenen les que existeixen en CLI (no totes) i les agrupen, però no les creen 🙂

      Salutacions

      1.    anònim va dir

        per molt que es automatitzi el procés amb:
        moure cancion1.mp3

        després, necessàriament, hi haurà:
        moure canción2.mp3
        moure cancion3.mp3
        .
        .
        .
        moure cancion20.mp3
        són molts moure cançons ...
        amb qualsevol gestor de fitxers .. només suposen 20 clics i un gest de drag & drop. No sé, però al menys la meva gestor (Dolphin) em permet de forma simple i superràpida (menys de 5 segons) ordenar una llista de 100 cançons per nom, data, mida, etiquetes, rànquing, àlbum, artista, durada, etc .. per a mi això és PRODUCTIVITAT i també és afegir funcionalitats a la línia d'ordres.

        Pel que fa a l'altre exemple .. GParted: D'acord .. si es necessita alguna cosa molt especialitzat com ara variar el valor per defecte dels bytes per inodo a l'hora de formatar s'haurà d'acudir a la consola .. però amic, això no és el normal. El 99% de les vegades GParted complirà perfectament amb les nostres necessitats de forma molt simple i molt ràpida i, al menys per a mi, això també productivitat

        Salutacions

        1.    ChrisADR va dir

          Bé, això és un exemple d'automatització en la seva expressió més mínima, com tu vas dir «si vull copiar les meves 20 cançons que més m'agraden d'un directori a un altre», tot això compta amb el temps que et pren revisar «calmadament» la teva llista després ordenar-la i més donar clic i etc, la terminal permet això i molt més en només una línia, potser uns 0.1 segons d'execució en el teu processador (així sigui antic), si els teus ulls i el ratolí poden superar això, ja em vaig als GUI 🙂 i no és que jo hagi dit que no els ús, tenen moltes coses útils, no ho negaré, però jo al menys he trobat a la terminal una versatilitat molt més gran, a més d'ajudar-me a practicar una mica de programació cada dia a l'hora d'automatitzar treballs. Una dita molt comuna entre sysadmins és «si fas el mateix més d'una vegada a el dia, automatízalo, si ho fas un cop a el dia més de dos dies, automatízalo, si ho fas fins i tot una vegada a el mes, automatízalo».

          Però bé, pel que fa a gustos i colors cadascú té la seva, jo em limito a compartir les coses que a mi m'agraden 🙂 i potser hi hagi molta gent que li té «por» a coses com emacs, vim, o la mateixa terminal, amb aquests posts sol intent donar-los una mica de confiança i curiositat perquè els provin i decideixin 🙂

          Salutacions

          PS: Conec molts developers als que els GUI no els solucionen les coses per la quantitat de complexitat que requereixen en el seu dia a dia, que potser un usuari «comú» mai va a veure, però això no implica que els usuaris més «comuns» puguin fer servir aquestes eines i obtenir els mateixos beneficis més versàtils.

          1.    anònim va dir

            Segueixo pensant que per a aquesta tasca (i moltes altres més) es triga moltíssim menys utilitzant un gestor d'arxius que amb la la línia d'ordres .. però bé, com dius hi ha gustos i colors per a tots.

            jo no renego ni tinc por de la terminal, però tampoc ho veig com una condemna gairebé obligatòria, per això vaig començar dient «Línia d'ordres si, però quan procedeixi»

            Quant als developers hi ha de tot, però la balança s'inclina clarament cap a un costat: Et convido a que facis un cop d'ull a:

            https://pypl.github.io/IDE.html

            Sembla que els developers «comuns» si veuen els avantatges de treballar en un entorn gràfic ple de facilitats si ho comparem amb qui aposta per treballar amb editors «només-text»

    2.    argues va dir

      Per exemple: si vull copiar les 20 cançons que més m'agraden d'un directori a un altre és super-còmode fer Control + Clic mentre revises tranquil·lament una enorme llista des d'un gestor d'arxius i després arrossegar i deixar anar.

      Hi gestors d'arxius de línia de comandes que són tan pràctics o més que els gràfics, com Vifm o Ranger. També per fer particions hi ha aplicacions en línia de comanda com cgdisk amb una interfície i ncurses.

      1.    ChrisADR va dir

        Doncs és cert 🙂 no sé ben bé per què hi ha tanta gent que té por de la terminal, en realitat és una eina molt robusta i versàtil, alguna cosa que tothom hauria de provar a l'mínim un cop a profunditat.

        Gràcies per compartir i salutacions.

      2.    anònim va dir

        Sí, els gestors d'arxius de terminal existeixen des d'abans que els gràfics. Quant al pràctic depèn del que es vulgui. Qualsevol gestor de fitxers gràfic ve proveït de pestanyes, favorits, maneres de vista, vista prèvia, possibilitat d'ordenar-de 1000 formes diferents, d'acoblar una terminal, instal·lar plugings, etc, etc, etc. el que els ace moltíssim més versàtil que qualsevol gestor de fitxers de text.

        El millor no ha de ser necessàriament lleig

    3.    chupy35 va dir

      és només que aprenguis fer el que fas en cli, i t'ho garanteixo que serà més fàcil, el que esmentes molt fàcil el faries amb rsync i ho pots fer fàcilment un script.

      Et recomano un gestor d'arxius de cli llamdo ranger que té tot això que esmentes.

      1.    gödel va dir

        Per copiar les 20 cançons faig una llista amb els *.ogg > top20. Després, entro a Vim i selecciono (esborrant el que no vull) les cançons que vull. Al final faig «cp $(cat top20) altredir» i ja està. Això és més còmode que seleccionar amb el ratolí i que per un error es deseleccionin les 19 cançons que ja portava triades.

  3.   Alberto Cardona va dir

    Meravellós !!
    Encara no em decideixo a instal·lar Gentoo 🙁 (estic en BunsenLabs) actualment ús OPENBOX i utilitzo nano per als meus script en Bash
    Però em donen ganes de aventurar-me per Vim o Emacs!
    Salutacions
    Gaudeixo llegint les teves entrades

    1.    ChrisADR va dir

      Moltes gràcies Alberto 🙂 m'alegra molt que els agradin els meus articles, jo gaudeixo escrivint els posts.
      Tant de bo t'animis i és clar que sí, la cosa és provar sempre alguna cosa nova 🙂

  4.   ChrisADR va dir

    Bé amb aquest terme de contestar als últims dos comentaris i agrairia als moderadors ja no acceptar més a l'respecte, això no està anant a parar a cap costat i la idea no és omplir la llista de comentaris amb un seguit d'argumentació a favor o en contra d'un o altre.

    En quan a la «versatilitat», potser qui opini això consideri que només els GUI tenen connectors, però la veritat és que els connectors per a terminal són tan variats i funcionals com les persones que els fan servir, l'exemple més clar és

    https://vimawesome.com/

    Una gairebé interminable llista de plugins per vim que el converteixen en alguna cosa més versàtil que molts IDEs ... i parlant d'això, aquest link no esmenta que aquesta llista inclou la gent que fa servir IDEs en Windows i Mac, el que parla molt millor en realitat de Vim del que parla d'Eclipse ja que si comparem la quantitat de gent que fa servir Eclipse en les tres plataformes, Vim no té res de què avergonyir-se de tenir un ben merescut 4rt lloc.

    Però anant una mica més enllà ... que la gent «comuna» usi alguna cosa no diu que això sigui necessàriament bo, sinó probablement Windows seria molt millor que els altres sistemes 🙂 potser és només que prefereixen no aprendre a utilitzar una mica perquè prefereix l'opció fàcil ... o perquè la seva empresa així ha decidit implementar l'estàndard (Eclipse és standard en moltes empreses, això explicaria la gran quantitat d'usuaris ... igual que Android i Visual Studio, els quals són els únics mitjans per treballar amb els seus respectius llenguatges ... mentre que Vim és una elecció LLIURE dels que l'usen)

    PS. «Lleig» és un terme molt subjectiu, jo puc considerar «lleig» el disseny de Qt, o de WebKit, o fins i tot de la interfície de Mac OS ... però això no vol dir que un altre ho vegi així, és només qüestió de costums 🙂

    Salutacions

    1.    anònim va dir

      Respecte el desig de no voler donar dret a rèplica.

      únicament a manera d'informació:
      https://vim.sourceforge.io/download.php

  5.   Claudio va dir

    totalment d'acord amb Anonimo, mes en el meu cas, sóc un simple usuari, sense els coneixements profunds d'un analista o programador. i com a tal, necessito de GUI que em failiten moltes de les treas en linux, per exemple a el dia d'avui i sent l'any 2017, no hi ha una aplicació GUI que faciliti compartir carpetes en una xarxa Linux, i dic Linux, no em surtin amb Samba i Windows, parlo d'una xarxa netament Linux. Per aconseguir compartir en una xarxa Linux cal configurar un tal NFS i només de línia d'ordres, es perd temps ia més no m'explico per que és tan complicat tenir una GUI Quelo faci fàcil com passa a Windows.
    Segons ChrisADR «Sóc un jove desenvolupador de programari» ie veu que coneixes molt del tema, hauries desenvolupar una aplicació GUI que faciliti el que acabo d'exposar o potser el teu és pur títol i fanfarroneada ?? És el mateix que, si un metge opinés sobre com és millor fer una cirurgia, sense haver fet mai un. «A la pista es veuen els pingos» hauries desenvolupar una aplicació GUI abans de donar la teva opinió des del teu lloc de «desarrollaor de programari» i si és millor o no fer servir el terminal, cal posar-se al lloc de qui fa servir Linux i per que el fa servir. Tant de bo pugui veure un article de ChrisADR, presentant i commpartiendo seva aplicació GUI, per compartició d'arxius en una xarxa Linux. De moment, no hi ha cap, llevat que facis servir Samba només per compartir amb Windows.

    1.    Guillermo va dir

      Crear un programa no és una cosa fàcil d'una tarda, requereix un esforç de diverses setmanes a el menys i el que és pitjor, després tenim l'esforç d'anys arreglant errors, actualitzant-ho a l'una que les noves llibreries de funcions que deixin obsoletes les usades anteriorment , l'empaquetat per a les diferents distribucions, ...
      Però és que a més, si ja tens SAMBA que pots utilitzar també entre dues GNU / Linux sense necessitat de cap Windows, per què vols utilitzar la solució de NFS?
      Encara que els manuals que vegis per internet parlin de linux i windows, simplement segueix les instruccions per compartir una carpeta desde linux i després per connectar-te a una altra carpeta en xarxa desde linux també.
      Sembla que Ubuntu 16.04 segueix tenint una fàcil implementació d'aquest tema: http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/