Herramientas de desarrollo- Día 46

Recuerdo cuando era mas joven, recien aprendia programacion, y tenia constantes batallas con Geany, Codeblocks, Visual Studio Express C++ 2005. Y Casi lo olvido TurboC++

Se me complicaba bastante entender porque habia tantas diferentes y complejas formas de usar los distintos compiladores de C/C++, GCC, o el de TurboC++ o el de Visual Studio, habia problemas de sistemas operativos, etc. Mis principios de linux vienen de tratar de forma autodidacta de entender C/C++. Un verdadero infierno. Sobretodo porque no lograba entender VI o porque todo en linux tenia que ser rustico o burdo.

En paralelo en la misma epoca. Mi papá trabajaba con Java, y yo le robaba su libro recien importado y publicado de Java SE 6. Y usaba eclipse y netbeans. En comparacion parecia magia, solo configurar algunas variablas de entorno y todo funcionaba.

Autocompletado, compilacion, despliegue, se podian crear wrappers, una maravilla. Y en aquella inocente epoca, aquel adolescente creia que ese era el camino del mundo. Una herramienta con poder para todo. Pocos años despues aprendi .NET y con visual studio tuve una experiencia mejor.

Lamentandolo por ese joven Moisés que solo existe en mi memoria, luego empece a trabajar. Las siguientes tecnologias que segun foros eran inferiores a Java y C++, Empezaron a ser parte de mi ecosistema, PHP, Ruby, Javascript Vanilla, JQuery, y empece a conocer, workflows criminales, de solo FTP con FileZilla si tenia suerte, personas que hacia SSH a su Cpanel o Lamp, para editar los archivos php y javascript a ciegas contra su servidor de “produccion”. La incapacidad de usar herramientas complementarias, o cambiar el flujo de trabajo.

Entonces mi proeficiencia y entendimiento de sistemas operativos, roles y permisos era mucho mejor. Pero la unica forma que tenia de acceder rapido y eficiente a un repositorio era ssh.

Y finalmente VI hizo click. Solo aprendi los comandos por defecto, editar, moverme, buscar, borrar. Tambien aprendi Git, donde sea que me obligaban a trabajar con esos servers de linux en produccion, inmediatamente hacia git init . Y empezaba a hacer cambios en VI.

Mientras mas evolucionaba la tecnologia, mas golpes debia darme con VI. Sin complementos sin un entorno de trabajo. Mientras surgian nuevos frameworks de javascript, mientras python inundaba mas y mas el mercado, como yo no tenia un trabajo repetitivo y corporativo de desarrollo, siempre me llegaban consultorias y resolver crisis de personas, en mi circulo tenia fama con eso. Y lo unico constante en cada lugar al que iba, era VI.

En retrospectiva, a dia de hoy donde Git es la norma, K8 es el deseo de las compañias, hay mejores herramientas como SublimeText, VSCode, Cursor, editores de fuente en linea y muchas otras herramientas de swift left. VI sigue alli salvando vidas.

Si eres dueño de tu workflow de trabajo, tambien existe VIM Motions y NeoVim. Que son derivados de VI, con mas caracteristicas plugin y comunidades.

Solo que cuando eres el que llega a resolver problemas de otros, no puedes aprender todo su workflow, no siempre puedes ir con un usb configurado de NeoVim a esas intranets, todo se ve reducido a VI + grep. O Notepad.exe + select-string.

Una percepcion similar me ocurre con Postman y curl. ¿Para que existia curl si postman era mejor? Y bueno cambiaron licencias, me cayaron mi boca figurativa, y esta es una narrativa para otro dia.

La conclusion de este articulo es sencilla, por mas que avance la tecnología, lo mas importante luego de iniciar, luego de tener una introduccion, es aprender los fundamentos de todo el ecosistema. Y entender porque esas herramientas siguen alli. No siempre lo mas nuevo es lo mas eficiente.

No siempre la IA generativa , va a tener respuestas validas, no siempre la IA va a poder interactuar con un sistema de solo ventanas, o de solo produccion.

Tener la capacidad de intuitivamente buscar el uso de las herramientas para sus casos especificos. Por conocer el fundamento de cualquier tecnologia, es la mejor capacidad que van a lograr adquirir, y la mejor herramienta en su set.