go version
)?$ go version
go version go1.7.3 darwin/amd64
go get
parece no tener comentarios útiles de forma predeterminada.
Reproducir:
go get github.com/die-net/dhtproxy
Esto luego parece congelarse durante unos 10-15 minutos. No hay comentarios.
Finalmente descubrí que puedo:
go get -u -v github.com/die-net/dhtproxy
Para ver el progreso, y parece que debido a que youtube/vitess
es absolutamente gigantesco, este comando tarda una eternidad.
Esperaba ver algo como "Obteniendo proyecto, obteniendo deps, instalando deps, etc.", con algún tipo de barra de progreso.
Nada. Se queda ahí durante unos 10 minutos. Pensé que estaba roto.
La solución es obvia: habilite -v
de forma predeterminada. Es terrible el diseño de la CLI tener un proceso que se ejecuta durante 10 minutos sin salida de forma predeterminada, simplemente parece que está roto.
Esa es la forma de Unix: estar en silencio por defecto, a menos que se solicite verbosidad o haya un error.
No creo que esto sea algo que cambiemos. Incluso más personas estarían en contra de lo que considerarían spam (-v) de forma predeterminada.
La regla del silencio no es que los programas deban ser absolutamente silenciosos a menos que haya un error o se solicite una salida específicamente, es que los programas no deberían generar una salida innecesaria. Teniendo en cuenta los comentarios de que un proceso que tarda 15 minutos no se ha colgado no es innecesario, de hecho, es un buen diseño de CLI.
Como referencia, ninguno (0) de los otros administradores de paquetes que he probado son silenciosos por defecto.
$ pip install test
Collecting test
Downloading test-2.3.4.5.tar.gz
Building wheels for collected packages: test
Running setup.py bdist_wheel for test ... done
Stored in directory: /Users/rjones/Library/Caches/pip/wheels/0e/83/0d/f0f92214b5cce4bcbce4958ddacebf926e1c54c8445f0ba167
Successfully built test
Installing collected packages: test
Successfully installed test-2.3.4.5
$ npm install test
/tmp/
└─┬ [email protected]
└── [email protected]
( npm
tiene una bandera --silent
para esta función)
$ brew install test
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core, homebrew/versions).
==> New Formulae
homebrew/versions/postgresql95
==> Updated Formulae
ruby ✔ tig tile38
==> Deleted Formulae
homebrew/versions/postgresql93
Error: No available formula with the name "test"
==> Searching for similarly named formulae...
These similarly named formulae were found:
cpptest cxxtest gjstest homebrew/science/swetest memtester slowhttptest testdisk unittest vttest
cpputest git-test homebrew/games/minetest js-test-driver phoronix-test-suite speedtest_cli testssl unittest-cpp
To install one of them, run (for example):
brew install cpptest
==> Searching taps...
These formulae were found in taps:
homebrew/completions/ctest-completion Caskroom/cask/aja-system-test Caskroom/cask/nsregextester Caskroom/versions/emacs-pretest
homebrew/emacs/test-simple Caskroom/cask/colortester Caskroom/cask/sqlitestudio
To install one of them, run (for example):
brew install homebrew/completions/ctest-completion
etc.
Creo que decir "porque es Unix" es un poco falso. Es _extremadamente_ común que los programas Unix con tareas de ejecución prolongada tengan barras de progreso; consulte rsync, wget, git, etc.
¿Cuál es la ventaja de no tener una barra de progreso aquí? Parece que los beneficios de "no parecer totalmente roto" superan ampliamente los beneficios de "no molestar a un pequeño porcentaje de usuarios que odian los comentarios y también se niegan a usar --silent
".
Si bien no creo que ninguno de los administradores de paquetes que ha mencionado sea un buen ejemplo (todos son demasiado ruidosos todo el tiempo), estoy de acuerdo en que alguna indicación de progreso para go get
no vendría mal . GitHub, en particular, tiene tramos de velocidades de clonación bastante lentas, y el tiempo de ejecución general depende del número de dependencias, que no es obvio o conocido por el usuario de antemano, por lo que tener que decidir activamente usar -v
no lo es realmente una gran solución.
Ahora bien, una barra de progreso no es realmente una opción: es demasiado ruidosa de forma predeterminada y no todos los VCS admiten barras de progreso de forma predeterminada. Habilitar -v
de forma predeterminada también es demasiado ruidoso.
Desafortunadamente, no puedo pensar en un mecanismo que no sea ruidoso y que al mismo tiempo proporcione suficiente información cuando sea necesario.
Comentario más útil
La regla del silencio no es que los programas deban ser absolutamente silenciosos a menos que haya un error o se solicite una salida específicamente, es que los programas no deberían generar una salida innecesaria. Teniendo en cuenta los comentarios de que un proceso que tarda 15 minutos no se ha colgado no es innecesario, de hecho, es un buen diseño de CLI.
Como referencia, ninguno (0) de los otros administradores de paquetes que he probado son silenciosos por defecto.
(
npm
tiene una bandera--silent
para esta función)etc.
Creo que decir "porque es Unix" es un poco falso. Es _extremadamente_ común que los programas Unix con tareas de ejecución prolongada tengan barras de progreso; consulte rsync, wget, git, etc.
¿Cuál es la ventaja de no tener una barra de progreso aquí? Parece que los beneficios de "no parecer totalmente roto" superan ampliamente los beneficios de "no molestar a un pequeño porcentaje de usuarios que odian los comentarios y también se niegan a usar
--silent
".