Las herramientas del programador ¿Y tú cuál usas?

Si bien el software sea una disciplina de carácter intelectual, todo programador que se precie utiliza multitud de herramientas en su día tras día. Tal y como si de un artesano se tratase, los programadores procuramos escoger las herramientas que mejor se amoldan a nuestras manos. Pasamos muchas horas con ellas con lo que nos agrada que la herramienta esté a nuestro gusto, que se ajuste a nuestro flujo de trabajo y que no nos fuerce a mudarlo.

Amoldamos aspectos estéticos, como colores, fuentes o bien situación de los menús. Mas asimismo amoldamos las partes funcionales, como accesos veloces de teclado o bien instalamos complementos que nos ahorran trabajar más de la cuenta. Al final personalizamos tanto las herramientas que empleamos, que podría decirse que hay una para cada programador.

En el momento de escoger una herramienta para programar acostumbramos a escoger entre 2 opciones: IDE o bien editor de texto.

IDE

Los IDE (Integrated Development Environment) o bien Ambientes de desarrollo integrados, son aplicaciones que nos dejan desarrollar software de forma sencilla y también incluyendo casi todo lo que precisamos sin salir del ambiente. Tenemos un editor de código fuente; herramientas para el autocompletado de código y snippets; herramientas para depuración y compilacíón; como herramientas para construcción o bien build.

Con el paso del tiempo los IDEs existentes en el mercado han incluido poco a poco más opciones. Mas agregar tantas opciones tiene un costo y la protesta general sobre estos ambientes es que acostumbran a ser pesados, precisan una máquina potente y tienden a ser lentos.

Ciertos IDEs que podemos localizar en el mercado son Visual Studio, Eclipse, NetBeans o bien muchos de la compañía Jet Brains como IntelliJ, WebStorm o bien PHPStorm.

Editor de texto

Los editores de texto, son más fáciles que los IDE, y por ende tienen menos funcionalidades integradas. La cantidad de funciones básicas depende de cada editor, mas por norma general tienen algún género de destacado y formateo de código. Hoy día es común que se puedan ampliar con extensiones de todo género, si bien eso hace que sean un tanto más pesados y lentos, apartándose del término de editor de texto y acercándose más al de IDE. La idea de un editor es ser veloz y ligero.

Ciertos editores que podemos localizar son: Emacs, Vim, Atom, Excelente Text, Visual Studio Code o bien aun herramientas tipo navaja Suiza como Notepad .

¿Cuál seleccionar?

La elección de herramienta a escoger, viene solo condicionada por el lenguaje y la plataforma que vamos a usar. Si deseamos desarrollar aplicaciones Windows vamos a tener un número de opciones limitado. Si vamos a desarrollar aplicaciones para iOS o bien aplicaciones web con Java, vamos a tener otras alternativas diferentes. Mas alén de esa división, estamos solo limitados por nuestros gustos (o bien presupuesto). Como hemos dicho ya antes, si bien utilicemos exactamente el mismo editor o bien IDE que otros programadores, seguramente lo tengamos adaptado a nuestro gusto, haciéndolo completamente diferente.

Conque para tener una idea sobre las posibilidades, nos hemos resuelto a consultar a varios programadores, sobre como es la herramienta que emplean en su cada día, como la tienen configurada y por qué razón la emplean.

Editores clásicos

Si bien no los hayas usado, seguro que has oído charlar de Vim y Emacs. Vim lanzó su primera versión en los noventa, si bien siendo una versión mejorada del ya conocido Vi que integran muchos sistemas Unix desde finales de los setenta. Emacs fue desarrollado entre otros muchos por Richard Stallman, asimismo a fines de los setenta. Como veis son muchos años, mas los dos prosiguen siendo extensamente usados por programadores de todo el planeta, dada su capacidad de personalización.

Es el caso de Mario, desarrollador backend (Ruby, Python, SQL) en Carto, que a lo largo de muchos años ha estado usando Vim. Como exactamente el mismo cuenta con VIM llevo unos cuatro-cinco años y la configuración actual ha ido adaptándose conforme he ido necesitándolo. Los beneficios de esa configuración es tener la enorme potencia de Vim mas con complementos que dejan marchar sin echar de menos funcionalidades de otros IDEs más modernos.

Y es que la personalización es el enorme fuerte tanto de Vim como de Emacs, puesto que a lo lago de los años se han desarrollado miles y miles de extensiones para ellos. Y si no hay una extensión de nuestro gusto, siempre y en toda circunstancia podemos desarrollarla. Es lo que nos comenta Juanma que trabaja desarrollando software para comercios en IGT Microelectronics y utiliza Emacs para una parte de sus desarrollos: me agrada mucho la sencillez para personalizar Emacs y el buen soporte que tiene para la mayor parte de lenguajes. Con Visual Studio, por servirnos de un ejemplo, si bien puedes crear complementos en C# (un lenguaje que conozco bien), la experiencia de hacerlo es terrible. Con Emacs, a pesar de tener que utilizar elisp (lenguaje que conozco mucho menos), es considerablemente más fácil hacer pequeñas mejoras para ajustarlo a lo que deseas y es una cosa que hago frecuentemente.

Juanma emplea Emacs para HTML, CSS, JavaScript, TypeScript y lenguajes variados de empleo ocasional, utilizo Emacs con una configuración creada desde cero que tengo publicada acá. Para Javascript utilizo js2-mode, para TypeScript empleo tide y cuando juego con Clojure, cider.

El beneficio de este género de editores, es que la configuración se puede compartir sencillamente. En general la configuración acostumbra a ir incluida en un fichero, y es suficiente con bajarlo de GitHub y sobreescribirlo para tener el editor configurado a nuestro gusto (o bien al de otro desarrollador que lo haya compartido). Es por poner un ejemplo lo que hace Gaspar en Cbi Consulting, Recientemente me paso el día entre scripts Bash, Python y servidores. Si bien asimismo suelo tocar cosas de PHP y a veces debo hacer ciertos programas en C o bien C . Edito con Emacs. Tengo una configuración muy adaptada y la tengo publicada en github para bajarla toda vez que la necesito. Tengo configuración singular para los lenguajes que suelo emplear, comprobación de código, colección, teclas adaptadas para muchas acciones, deshacer con undo-tree (esencial pues el deshacer de Emacs es muy pesado), auto-completado y ciertas cosas más. No solicito mucho.

La curva de aprendizaje en Emacs es dura y fue una cuestión de cabezonería, mas ahora me resulta muy cómodo

Si bien Emacs y Vim marchan verdaderamente bien, asimismo tienen sus impedimentos. Por servirnos de un ejemplo la curva de aprendizaje. Sus forma de marchar y sus teclas de acceso veloz están concebidos para ser lo más eficaces posibles, mas no para ser sencillamente memorizables. Aprender a usar uno de estos editores lleva un buen tiempo, y es una de las razones de que no estén más extendidos. Como afirma Juanma La curva de aprendizaje en Emacs es dura y fue una cuestión de cabezonería, mas ahora me resulta muy cómodo

IDEs

Pese a la potencia de muchos editores, hay que incorporarles muchas extensiones conseguir la capacidad que los IDEs ya traen de base. Esto causa que bastante gente prefiera esta herramienta, puesto que tienen todas y cada una de las funcionalidades integradas en un mismo ambiente y solo hay que configurar ciertas cosas para personalizarlas a nuestra forma de trabajar.

Por servirnos de un ejemplo Adolfo, que trabaja como Consultor Técnico Enseñante en la CAM, usa Eclipse (Spring Tool Suite) para su cada día con el backend: llevo usando Eclipse desde sus principios, y soy muy productivo con esa herramienta puesto que ya me conozco sus grupúsculos de teclado y sus trucos. Una temporada que estuve con Groovy me pasé a IntelliJ IDEA puesto que me habían hablado realmente bien de él, mas al final me quedo con Eclipse, que además de esto es Software Libre.

Diego José, que trabaja como autónomo desde hace diecisiete años, para desktop usa Delphi No ha muerto, nos afirma. Ahora compila para Windows, OSX, iOS y Android y no ha dejado de tener versiones. No es bien conocido por su política de costes (que viene a ser una pasta gansa). El lenguaje es Object Pascal. Con Delphi llevo desde el instante en que sus primeras versiones. El IDE y su Visual Control Library aportan una productividad muy, muy alta.. Para PHP prefiere usar PHPStorm PHPStorm es un IDE completo. Y es lo que busco. Sin preocuparme de buscar más, tengo todas y cada una de las utilidades que necesito. Tiene de todo y más.

Y es que semeja que PHPStorm es una de las herramientas más conocidas en el momento de programar con PHP. Lo emplea por servirnos de un ejemplo Miguel, maestro de la Universidad del Táchira y desarrollador web freenlance, trabajo en PHP usando Yii2 Framework y desarrollando complementos de WordPress, no obstante, en ocasiones me toca prosperar las vistas, con lo que debo utilizar HTML/CSS y JS a menor escala. Empleo excelente-text cuando necesito editar algo rapidamente o bien hacer pequeños scripts. Ya cuando son proyectos pero grandes empleo un IDE, en un caso así PHPStorm. Desde exactamente el mismo IDE efectuar todas y cada una de las actividades que necesito: acceder a la Base de Datos, probar servicios REST, efectuar pruebas, validar código, etcétera Más que nada busco mecanizar cosas.

Trabajando en turismos.com, tenemos a Jesús, que es otro fan de PHPStorm: Soy un tanto friki de los grupúsculos de teclado y poquito a poco he ido memorizando grupúsculos de PHPStorm para prácticamente todo: Abrir una clase/fichero, buscar en un directorio, extraer un método/constante/variable,… además de esto si no hay un hatajo para algo que deseo hacer es muy simple crearlo en PHPStorm. La integración con docker es excelente y además de esto tiene un montón de complementos para prácticamente todo desde autocompletar composer hasta crear el .gitignore

Al final los usuarios de IDEs procuran tener la mayor parte de funcionalidades integradas, y no complicarse la vida. Es lo que nos cuenta Lucas, que trabaja por norma general con Visual Studio (con Resharper) y C# (si bien asimismo emplea Vim o bien PyCharm): Para conseguir la máxima productividad se requiere un IDE, un ambiente con comodidades integradas que te dejen refactorizar, depurar, desplegar en la nube y cosas por el estilo de forma veloz y simple (utilizar git desde línea de comando es una de las poquísimas salvedades a esta regla para mi). Cuando por carencia de contexto, ausencia de metadatos, de definición de tipos (o bien de lo que sea) y un IDE queda reducido a un simple editor de texto, en un caso así es quizá mejor usar un buen editor de texto. Lo opuesto a esto es el intentar transformar un editor de texto en un IDE a base de complementos para colorear la sintaxis de un lenguaje, conseguir algún grado (siempre y en toda circunstancia deficiente) de autocompletado y/o refactoring, y ni que charlar de depuración integrada y afines comodidades tan comunes en los IDEs, si bien reconoce que cuando ves lo que hacen ciertos con Emacs te sorprendes. Generalmente se resaltan en lenguajes activos donde los IDEs hasta hace poco no aportaban demasiado y donde es posible valorar expresiones de forma veloz y eludir la depuración zombie

Para conseguir la máxima productividad se requiere un IDE, un ambiente con comodidades integradas que te dejen refactorizar, depurar, desplegar en la nube y cosas por el estilo de forma veloz y simple

En ambientes .NET, hasta hace no mucho Visual Studio era la opción por defecto, si bien hay gente que comienza a emplear Visual Studio Code para esto. Además de esto JetBrains, prepara un IDE para .NET llamado Rider, por el momento en fase de desarrollo. Mientras que llega, en .NET se prosigue usando Visual Studio como nos comenta Ferran, Tanto para labores de frontend como backEnd utilizo el Visual Studio, en tanto que el programa está desarrollado en Visual Basic .NET con SQL Server como SGBD. Utilizo la versión dos mil quince, en tanto que la versión dos mil diecisiete aún anda en pañales o bien con lo que leo no es mucho de fiar. Asimismo utilizo Resharper.

Y es que no cabe duda de que JetBrains tiene contentos a muchos desarrolladores de diferentes plataformas y lenguajes con sus soluciones, en tanto que Resharper es una de las extensiones más habituales a la