NPM y el síndrome New Balance

Hola,

No demonicéis el título tan rápido, tendrá sentido cuanto antes. La idea de hoy no es hablaros de ninguna de las dos cosas, de todas formas. El tema es que…

NPM se ha convertido en el registro de software más grande del mundo.

Tal cual.

La gente como yo, que somos de esos que nos hacemos preguntas, nos preguntamos por qué. ¿NPM se publicó en 2010, hace 8 años, y ya tiene más software que cualquier otro registro de software?

¿Cuando se publicó C? ¿En 1970? ¿Y cuantos superrepos de C tenemos?

¿Qué pollas tiene que ver esto con New Balance?

New Balance, una marca de zapatillas que ni recomiendo ni boicoteo, tuvo un interesante tema con unas zapatillas tonificantes que supuestamente te hacían adelgazar más rápido al usarlas para correr o andar. Fueron denunciados por publicidad engañosa.

Los estudios para el juicio concluyeron que “a pesar de que no hay ninguna evidencia estadísitica de que esos zapatos sean más saludables que otros, sí que han conseguido motivar a muchas personas a cambiar a una vida saludable al darles la creencia de que con ellos sería más sencillo”.

Pues ese es para mí el síndrome New Balance. Eso es lo que le pasa a NPM.

Es tan fácil sacar módulos de NPM que da gusto hacerlo. Se publican con un comando:

npm publish

Y punto. Una gestión de dependencias sencilla y eficaz hacen el resto.

Me vas a decir que tenemos miles de módulos en la carpeta node_modules, montón de dependencias pesadas, proyectos con kilos de dependencias que no necesitan, idiotas usando NPM para publicar CSS y cargándolo en el index.html con un path que empieza por node_modules dejando en evidencia que están sirviendo toda la carpeta. Me vas a escupir toda esa mierda de que te ha fallado alguna vez con nosequé y que yarn es mejor y no sé qué mierda más. Y luego te meterás con JavaScript porque te parece una basura, con su callback hell y todo eso. Que Java es mejor. Mil cosas más.

Pero, como dicen los angloparlantes, al final del día, no tendrás un repo tan grande de software porque no has pensando en lo importante.

En hacer unas zapatillas que te hagan adelgazar al ponértelas. O que no lo hagan, pero que tú te lo creas.

Eso es NPM.

Un sistema de paquetes fácil de usar, sobre un lenguaje que todo el mundo cree saber (aunque pocos dominen), que es fácil de aprender y que adelgaza. Así es como se consigue tener éxito.

Cuando es tan evidente de usar que da igual si lo hace bien o no mientras a ti te sirva.

Anima a la gente a programar. Da igual que PIP sea mejor, o que python nosequé, ni que CPAN sea un verdadero gestor de paquetes, que Yarn se haya creado directamente con el semen del señor Z. Da puto igual.

Es tan fácil, que todos lo usan.

 

Y tú también.

 


Por lo que sea:

Esa entrada es para generar un poco de debate y los comentarios están para eso. No se me ha ido la pinza todavía.
Creo.

Anuncios

11 pensamientos en “NPM y el síndrome New Balance

  1. una ves utilice npm para probar un “htop”, el jodido consumia el 15% de la cpu… lo que me hiso sentir sucio, eliminar npm, erradicar todas sus carpetas infectas y no volver a tocar eso en la vida

    pip, aveces funciona, aveces no, lo utilizaba para subliminal… pero como acado de descubrir que subliminal esta directamente en los repos de debian sin pasar por pip no lo vuelvo a tocar

    cargo es raro, lento y extraño

    go, ho go, ojala te hubiera conocido antes (el manejo de rutas relativas no es del todo fino)

    c no estaba pensado para estas modernidades y anuque seria sencillo algo intermedio tipo go, el consejo ANSI esta formado por un grupo de reptilianos enpecinado en su erradicacion

    • Pip por ejemplo no sabe borrar dependencias. No borra el árbol.

      😀

      C no está pensado para tener esas cosas pero ojalá tuvieramos algo. Nunca has tenido problemas al compilar C/C++ porque tu libería está compilada con distintos flags y movidas así? Es infumable

      El que más me mola de los que he probado de momento es leiningen que es el sistema que tiene clojure. Hace muchas cosas y mola mil. Pero no deja de ser un NPM en realidad.

      El de Go no lo he probado, pero Go simplemente no me llama la atención.

      Qué tipo de cosas sueles hacer tú? Qué buscas en un lenguaje? Y en un gestor de dependencias?

      Gracias por comentar!

      • mmm, go requiere su propio directorio de trabajo. donde pone el codigo de las dependencias (repos git), binarios y sus cosas, pero elegir tomas cosas de aqui y alla, sus objetos que no son objetos si no “namespaces implicitos”, nada de herencia, pero si composicion-heredada y sobre todo y mas importante qu ela herencia, irse de lleno con interfaces te obliga a planear el codigo, aunque no deja de ser un C raruno, o, lo de los canales para programacion multihilo es muy sencillo de comenzar a usar. ESR tiene unos post interesantes sobre C, Java y Python, centrado en Go y rust como sus alternativas viables

        http://esr.ibiblio.org/?p=7711#more-7711
        http://esr.ibiblio.org/?p=7303
        https://blog.ntpsec.org/2017/02/07/grappling-with-go.html
        http://esr.ibiblio.org/?p=7724
        http://esr.ibiblio.org/?p=7745

        realemente go es muy sencillo, no necesita make ni nada (a diferencia de rust-cargo), mas que hacer el import (una dereccion a un repo git en interné (codigo con nombre y apellido) o una ruta relativa), aunque tiene el problema de no manejar versiones especificas del repo… pero es asquerosamente sencillo. Eso si, creo que si vas a tener dependencias, lo mas sensato es hacerte cargo de ellas, al menos de las versiones y comprobar que no hay cambios ni te cuelan ningun bicho

        los makes y la basura que se esparce en el codigo de C/C++ segun sistema, versiones y demas, es una guarrada, eso es lo que me gusta de Go, los imports son las unicas instruccoines de compilacion, si necesitas algo especificamente de un sistema, tienes que agregar un fichero con el nombre del sistema especifico y colocar hay el codigo necesario

        otra cosa lamentable de C es su documentacion artesanal, si tienes suerte quiza tendras unos ejemplos y en casos extraordinarios unas paginas man. En go la documenacion se genera (o almenos son visibles) los nombres si estan Capitalizados, No es del todo elegante, pero resulta

        lo dejo hay, que parece propaganda, por cierto el libro de go es m-a-g-n-i-f-i-c-o, entretenido y claro (aunque escueto), pero sobre todo, su codigo no son ejercicios de juguete aca >> https://github.com/nasciiboy/TGPL/ << por si quieres checar, lo que no me gusta del lenguaje es que no sea de formato (indentacion) libre, tener llaves de una instruccion obligatorias, falta de cadenas C al uso y su carencia del operador ternario

        en cuanto a lo de un lenguaje y lo que busco. amo “el nucleo” de C, es perfecto, solo corregiria los tipos (nada de long long long ni imports, que es eso de poner cutre stdint en todos lados), con un gestor de dependencias automagico y una libreria potente y moderna

        lisp, es interesante, pero escribirlo no es comodo y resolver todo con listas y no tener tipado esta lejos de mi ideal, ¡tener tipos es importante y economico!. las funciones como ciudadanos de primera clase mola un guevo, mas cuandolo juntan con una instruccion condicional, pero obligarte a recurcion de cola como en Scheme esta chungo, eso espanta de primeras

        otra cosa que busco en un lenguaje es permitir un libre formato y tener llaves, el formateo python es penoso

        que ademas tenga muy poca vervosidad, pero sin llegar a lo criptico, de preferencia con recolector de basura, que gerere su documentacion sin mas, un gestor de dependencias automagico y finalmente y casi que lo que separa un lenguaje que puede intereresarme a otro que considere directamente basura, que no sea mas de 10 veces mas lento que C, preferentemente solo 5 hacia abajo

        orale, el leiningen, es un lips, quiza te entretenga probar a instalar Guix SD (https://www.gnu.org/software/guix/) hay que hacerlo con lisp… yo no pude me quede en el paso final

  2. Pues estoy bastante de acuerdo contigo en casi todo.
    No me llama go porque no es suficiente bajo nivel ni suficiente funcional (creo), me llama mucho más Rust.

    Por otro lado, mi programación normalmente son Pruebas de Concepto rápidas o con funcionalidades agresivas pero cortas de escribir.
    Por eso aprecio cosas como Python (cada vez menos), CoffeeScript, NodeJs, Perl (en mis tiempos), C puro, Bash (para qué más?), Clojure (ahora, para algoritmia y romperme el coco), etc
    El resto los aprendo para jugar y entender los lenguajes mejor, pero casi todo es por poder romper las cosas y jugar rápido y sin picar mucho porque me duelen las manos.

    Casi nunca picaría C++, aunque he programado C++ en el pasado, para una prueba de concepto si no lo requiero de forma específica.

    Eso explica muy bien qué tipo de dependencias necesito, usar y tirar, o similar. Algo rápido y flexible.

    Por lo que me dices Go me encaja, pero no tengo ninguna razón clara para aprenderlo, no me falta nada que él me dé, de momento.
    Investigaré lo que me enlazas porque ahora me apetece disfrutar de él tal y como tú lo haces. 😀

    Gracias por explicarte. Me encanta cuando pasa.

    • a mi tampoco me interesaba Go (menos por venir de google), pero para hacer realidad un proyecto para un formato de documentacion imaginario, con C me ahogue y las unicas alternativas en mi radar eran C++ (que lo aprendi , olvide y luego encontre demaciado complejo) o Java (que en ese momento no conocia y consideraba el cancer… ahora, no esta mal, pero no me gusta y me parece torpe e incomodo)

      como habia escuchado un podcast sobre Go pues le di una oportunidad, traduciendo el libro en el camino (por mi falta de engrish) y de momento, no encuentro mas que gusto y satisfaccion en su uso, rendimiento, sintaxis y conceptos que me dio a conocer

      luego he visto algo de rust, por encima y me llama la atencion, pero me parece un tanto feo y rebuscado, pero sin duda algun dia le dare su tiempo

      o, las funciones de go son de primer nivel con todo y “lambdas”, ademas tiene retorno de multiples valores… jo, jo, aunque no lo aprendas el libro es una joya recomendable para todo publico, abuelitas y preescolares incluidos

      • Sí, tenía muy buena pinta, por eso le daré caña.

        Rust me gusta pero no he encontrado un libro que me mole. A ver si encuentro alguno y le doy.

        También tengo otros pendientes pero ya veremos! Gracias!!

    • Es broma, no?

      Mi comentario sí que es broma.
      No he hablado mucho de esto pero yo he programado algo de PHP por dinero y hasta me leí un libro de PHP hace mucho. Se me olvidó todo.
      Supongo que porque no me aportaba absolutamente nada. Como C++, que dejé de usarlo simplemente porque para mis cosillas no me era útil.

      🙂

      ¿Por qué usas PHP? ¿Qué te aporta composer?

      • Mayormente porque es lo que he ido usando a lo largo de mi carrera laboral.

        A pesar de los múltiples errores de diseño que puede tener el lenguaje en sí, la cantidad de librerías y usuarios a nivel mundial creo que lo convierten en un lenguaje perfecto para el desarrollo de aplicaciones web, tanto simples como complejas.

        Por otro lado, que sea el patito feo de los lenguajes de programación y que muchísima gente que no ha escrito 3 líneas de PHP en su vida lo critiquen con argumentos absurdos hace que me ponga un poco también (sobre todo si los que lo critican se dedican a Java).

        Sobre qué aporta composer, en principio lo mismo que cualquier otro sistema de gestión de dependencias/librerías. Trabajar con librerías de terceros en PHP era un grano en el culo, ni siquiera sistemas anteriores como PEAR te libraban de volverte loco con las mismas. Con composer se ha “estandarizado” por fin la gestión de estas.

        De todos modos parece que los últimos años con la necesidad de mantener conexiones abiertas para el desarrollo de aplicaciones “modernas”, es verdad que empieza a perder fuerza en el lado del servidor. Ya veremos lo que pasa.

  3. NPM y el síndrome New Balance | PlanetaLibre

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s