Mostrando entradas con la etiqueta #BASH. Mostrar todas las entradas
Mostrando entradas con la etiqueta #BASH. Mostrar todas las entradas

2023-05-03

Línea de Comandos

fuente: now script

El desarrollo moderno de software depende de muchas herramientas diseñadas para funcionar desde la línea de comandos. Las herramientas permiten crear proyectos, instalar paquetes, compilar, ejecutar, realizar pruebas, desplegar, iniciar servicios, contenedores, etc. Por esta razón, ser capaz de utilizar y automatizar usando la línea de comandos es una habilidad deseable para los desarrolladores y las empresas que los contratan.

Por muchos años, BASH fue el interprete más popular. El shell por defecto en Unix/Linux y derivados, en MacOS, y disponible para Windows a través de varias opciones. Tanto que Microsoft intentó batallar contra BASH usando PowerShell, incluso convirtiendo PowerShell en software libre (por lo que ahora está disponible para Linux y MacOS). No se puede negar que PowerShell es bueno y es infinitamente superior al CMD en términos de usabilidad y programación, pero compartir contra BASH y años de programadores utilizándolo es otra historia, sobre todo por la compatibilidad - Nadie quiere perder años de experiencia y programas (scripts) solo por cambiar de shell. Pero PowerShell no es el único competidor.

Otro punto relevante hoy en día, es el aspecto visual. Si el shell puede presentar información útil, en forma visual, definitivamente mejora tu productividad al utilizarlo. No es solo un asunto de prompts o resultados coloridos, como algunos podrían pensar. Es un asunto de señales visuales que te indican  ubicación, proyecto, estado de git, ambiente del lenguaje, etc. etc.

Veamos que opciones de shell son las más populares, hoy en día:

ShellFrameworkTemas
BASHOh My BASHTemas - Bash-It
FishShellOh My FishTemas - Fishline
PowerShellOh My PoshTemas - Todo en uno
ZshOh My Zsh!Temas - PowerLine 10k
NuShellStarshipTemas


2023-04-21

Sistema Operativo para Desarrollo


Linux, MacOS o Windows, la pregunta persiste entre los desarrolladores de software. En muchos aspectos el sistema operativo de escritorio se ha vuelto un commodity (cualquiera sirve para lo mismo). 

Herramientas comunes para desarrollar software desde el escritorio, están disponibles por igual para los sistemas operativos Linux, MacOS y Windows: 
  • IDEs: Eclipse, NetBeans, Visual Studio Code, Arduino, Android Studio, etc.
  • Lenguajes: Java, Python, PHP, Kotlin, C#, Ruby, C/C++, etc.
  • Bases de Datos: PostgreSQL, SQLite, MySQL, Oracle RDBMS, etc.
Sin embargo, el desarrollo de software cada vez más se realiza utilizando herramientas desde la línea de comandos, y ahí tanto Linux como MacOS tenían la ventaja, porque BASH fue por mucho tiempo la interfaz de línea de comando (o CLI) por excelencia.

Pero además de una CLI programable, los gestores de paquetes fueron los hicieron que muchos programadores abandonaran Windows se cambiaran a Linux, por la facilidad que implica automatizar tareas de instalación y configuración de ambientes de desarrollo. Otros se cambiaron a MacOS aprovechando gestores de paquetes como MacPorts y Brew que de alguna forma igualaban a sus contrapartes en Linux.

Para Windows también surgieron algunos gestores de paquetes como Chocolatey, y Microsoft terminó creando el suyo propio: Windows Package Manager.

Pero PowerShell no es BASH, ni WinGet es el gestor de paquetes que los programadores acostumbran a usar. Ofrecer nuevas herramientas para hacer lo que se hace igual en Linux y MacOS no resolvió el problema.

La solución para Microsoft fue recurrir a un antiguo componente de Windows llamado SFU: Services for Unix, y al hecho que el kernel de Windows siempre ha soportado POSIX (desde NT), y crear algo nuevo llamado WSL: Windows Services for Linux. Nota: solo de Windows 10 en adelante.

Con WSL se ejecuta un kernel de Linux en modo usuario de Windows, de esta forma los programadores de Windows ahora pueden tener un sistema Linux completo ejecutándose al mismo tiempo. Una CLI con Bash, el mismo gestor de paquetes y todos los demás programas a los que ya están acostumbrado a usar. 

Para instalar WSL solo es necesario abrir PowerShell y ejecutar: wsl --install, con eso es suficiente para tener un Ubuntu funcionando al lado de Windows.