Descubre cómo programar eficazmente en Linux sin un IDE completo, utilizando aplicaciones individuales que optimizan tu flujo de trabajo y fomentan la filosofía Unix de herramientas ligeras y especializadas.
Puedes programar sin herramientas de programación, y los entornos de desarrollo integrados (IDE) son populares entre los desarrolladores. Yo tomo un enfoque diferente. Trato a mi sistema Linux, con su variedad de herramientas de programación, como un IDE en sí mismo.
Una ventana para un trabajo
Los IDE son populares entre los desarrolladores porque proporcionan acceso a todas sus herramientas, incluyendo un editor, un intérprete o compilador, un depurador e incluso documentación. Puedo ver por qué la mayoría de los desarrolladores querrían tener todas sus herramientas en un solo lugar. Creo que puedo lograr una experiencia similar teniendo aplicaciones separadas en el entorno Linux.
Me gusta la idea de la filosofía Unix, de una pequeña herramienta haciendo un trabajo bien. Puede que no sea fácil de lograr en la práctica, pero creo que es algo por lo que vale la pena esforzarse.
Es revelador que los IDE hayan prosperado más en plataformas no Linux o Unix, particularmente Windows. Windows ha hecho menos uso de herramientas de línea de comandos, y lanzar procesos es intensivo en recursos, por lo que hay un incentivo para favorecer programas más grandes que hagan más, incluyendo sistemas de desarrollo más grandes.
El enfoque tradicional de Unix de programas separados funciona bien para mí. Puedo tener una ventana de shell ejecutando Vim, otra para probar el programa y otra para ejecutar programas de manipulación de archivos. Puedo obtener el efecto de un IDE con programas más ágiles y pequeños en lugar de uno grande.
Si necesito ejecutar otra tarea, simplemente puedo abrir otra ventana de terminal y ejecutarla sin perder el ritmo.
Mi flujo de trabajo es más apto para aplicaciones separadas
Seré el primero en admitir que no soy un programador profesional. La programación no es mi ocupación, pero es un pasatiempo divertido y estimulante. Mientras que los IDE son adecuados para desarrolladores profesionales, mi uso es diferente al de muchos otros "verdaderos" programadores.
Python es mi lenguaje de elección, y suelo escribir scripts más pequeños o usar Python interactivo. Esto significa el intérprete interactivo por defecto o IPython. Soy una de esas personas que usa Python como su calculadora de escritorio. No necesito iniciar un IDE completo solo para hacer algo de aritmética.
Uno de mis principales usos de Python es la estadística y el análisis de datos. Principalmente uso Python interactivo, particularmente IPython, que configuré con mi entorno Mamba. También miraré documentación, ya sea dentro de IPython o en internet. Si quiero un registro de lo que estoy haciendo, como para compartirlo después, abriré un cuaderno Jupyter. Dado que estoy trabajando principalmente de manera interactiva, no tengo mucho uso para depuradores. Normalmente puedo solucionar cualquier mensaje de error de inmediato.
Usar un IDE significaría instalar componentes que no utilizaría. Un depurador sería en gran parte desperdiciado para lo que estoy haciendo. Y lo mismo ocurriría con un IDE completo.
Puedo cambiar aplicaciones cuando quiero
Muchos desarrolladores destacan el hecho de que los entornos de desarrollo integrados son, bueno, integrados, incluyendo herramientas esenciales como editores, compiladores, depuradores y otras cosas como linters y verificadores de errores. En Linux, puedo instalar editores, compiladores, depuradores, linters y verificadores de errores a través de mi gestor de paquetes.
No estoy limitado a lo que el desarrollador del IDE pensó incluir. Si no me gusta el editor, simplemente puedo cambiar a uno diferente. Me he vuelto bastante cómodo con Vim. Las combinaciones de teclas parecen sentirse mejor, al menos en los teclados chiclet que los fabricantes de laptops parecen favorecer hoy en día.
Una herramienta que cambié fue el intérprete de Python. El intérprete de Python es útil por sí solo, ya que puedo probar ideas de código (y usarlo como calculadora), pero IPython es aún mejor, ya que cuenta con resaltado de sintaxis y fácil recuperación, así como la capacidad de ejecutar comandos del sistema directamente desde IPython.
También pude cambiar el gestor de paquetes por Mamba. Mamba está optimizado para análisis de datos y ciencia de datos, ofreciendo paquetes más nuevos en muchos casos que el gestor de paquetes del sistema, y permitiéndome dejar el Python del sistema intacto.
Un IDE estándar probablemente no me ofrecería este tipo de flexibilidad.
Puedo elegir mis propias herramientas
Si usas Linux o programas durante suficiente tiempo, tiendes a formar opiniones sobre cómo deberían funcionar las cosas. Una de esas cosas sobre las que muchas personas, incluido yo, se vuelven opinativas es el editor de texto. Tiende a favorecer Vim, aunque pasé por una fase de Emacs por un tiempo, así que tengo experiencia con ambos editores principales.
El enfoque del IDE todavía es popular, incluso entre entornos que no se consideran IDE.
Los aficionados a Emacs a menudo citan cómo pueden ejecutar herramientas como terminales o navegadores de archivos sin tener que salir del editor. Nunca me ha impresionado tanto ese aspecto. Esto puede deberse a que casi siempre he tenido acceso a entornos de ventanas y he realizado la mayor parte de mi trabajo de programación en plataformas donde lanzar procesos es fácil.
Emacs fue diseñado originalmente para terminales basados en caracteres. No era fácil lanzar nuevas tareas en estos terminales, razón por la cual había un incentivo para construir un programa donde pudieras tener todo lo que necesitabas en un solo lugar.
Si usas un IDE, a menudo estás atado a lo que los desarrolladores pensaron que querrías. Los IDE en Linux son populares, así que supongo que hay muchas personas que desean lo que ofrecen. Tal vez mis necesidades son diferentes a las de otras personas. Otros desarrolladores pueden quedarse con sus IDE, pero yo felizmente usaré múltiples programas.
He desarrollado una comodidad con las herramientas que uso. Cuando me muevo a un nuevo sistema, puedo configurarlo rápidamente y estar en un entorno familiar.
Prefiero multitarea con varios programas
Creo que puede que prefiera el enfoque de la "filosofía Unix" en lo que respecta al desarrollo. Esto es un efecto del diseño de sistemas operativos similares a Unix que facilitan el lanzamiento de nuevos procesos. Es más fácil en el sentido de que puedo lanzar una nueva terminal y ejecutar un comando fácilmente. Si quiero un editor, solo ejecuto Vim. Si quiero iniciar una sesión interactiva de Python, lanzo mi entorno Mamba y abro IPython.
Esto es consecuencia del diseño de Linux y otros sistemas similares a Unix, como mencioné anteriormente. Linux lanza procesos fácilmente, mientras que hacerlo en Windows ha sido típicamente un proceso más intensivo en recursos. Cuando has lanzado tu programa en un sistema así, los hilos son menos costosos en términos de rendimiento. Esta es la razón por la que hay un impulso por incorporar más funcionalidad en un programa más grande que el enfoque tradicional de Unix de un programa que realiza una tarea.
El único problema era la interfaz de usuario. A pesar de que Unix fue diseñado para ser multitarea, era incómodo cambiar entre tareas. El control de trabajos y las consolas virtuales ayudaron a resolver este problema, pero fue con la disponibilidad de sistemas de ventanas que se ejecutaban en estaciones de trabajo y terminales gráficos que el enfoque de ejecutar múltiples programas en ventanas individuales se volvió viable. Alternativamente, los multiplexores de terminal pueden hacer un trabajo razonablemente bueno, especialmente en conexiones remotas.
Con la disponibilidad de múltiples ventanas de terminal, terminales con pestañas y multiplexores de terminal, puedo aprovechar al máximo este estilo ligero de desarrollo. Puedo ejecutar mi sesión interactiva de Python en una ventana para experimentar, un cuaderno de Jupyter en mi navegador y un editor en otra ventana.
Usar múltiples aplicaciones en Linux puede ser menos "integrado", pero este enfoque funciona para mí sin la sobrecarga de un IDE completo. Creo que mi esfuerzo vale la pena en un entorno de programación ligero del que puedo depender.
Si deseas encontrar artículos similares a Por qué Linux es mi IDE, te sugerimos revisar la categoría Linux.

Deja una respuesta