viernes, 23 de febrero de 2018

El uso beneficio de los IDEs en la programación


Una de las cosas que más me sorprenden cuando leo foros en internet, es cuando alguien, generalmente estudiantes, pregunta si es malo usar IDEs y multitud de personas contestan que "si" o les recomienda usar el "bloc de notas".

Hay que considerar que cada oficio tiene sus herramientas y si queremos desarrollamos profesionalmente debemos usar sin miedo las que son propias de nuestro trabajo. En nuestro caso como programadores son los IDEs.




Qué es un IDE?


IDE es la abreviatura de Integrated development environment (Entorno de Desarrollo Integrado).

Originalmente (o más bien regresándonos a un punto preciso del pasado para clarificar esta idea), los programas eran creados en una terminal, usando cualquier editor (o entrada de texto disponible), para posteriormente ser compilado y enlazado, los pasos exactos serian.
  • Creación de los archivos fuentes: Se crean (de la forma que sea) una seria de archivos de código fuente. Si nuestro código es un ejemplo posiblemente sea solo un archivo uno, pero lo normal es que se sean multitud.
  • Compilación de los archivos: El conjunto completo de los archivos que se ha creado representa a nuestro sistema pero es necesario compilarlos a código maquina por separado. Cada archivo se convierte en otro en código maquina.
  • Unión o “Lincado” (link): Se unen los distintos archivos en código maquina, en un solo “ejecutable”. A partir de allí podemos ejecutar nuestro sistema
  • Depuración: Nuestro sistema va a fallar, te lo aseguro. Nunca va a funcionar un sistema a la primera, con lo cual necesitamos depurarlo. Necesitas comprender por qué está fallando y donde.

Estos pasos son extremadamente repetitivos, así que se construyeron herramientas para poder hacerlos de forma más ágiles, como por ejemplo la herramienta make.

Esto pasos, en esencia, son exactamente los mismos que se tienen que ejecutar en la actualidad, creación, compilación, unión y depuración. los IDE con herramientas que nos permiten realizar todas esta tareas desde un mismo entorno, y de la formas más sencilla y rápida posible.




En los 80 y sobre todo en los 90 se popularizaron mucho los IDEs (y en la actualidad son indispensables). Microsoft ofrecía un IDE de BASIC (qbasic y anteriormente gwbasic) en su SO y Borland unos magníficos, y clásicos, compiladores de C, Pascal y Asm (y prácticamente de cualquier lenguaje interesante), Después en los 2000 llegaron nuevos IDE acordes a las nuevas necesidades como Visual Studio, Eclipse, Xcode o JetBrains.





¿Qué hacen actualmente los IDE?


Para que un ambiente pueda considerarse un IDE, lo mínimo que debe ofrecer son las funcionalidades de edición de código fuente, compilación, unión y depuración.


Los IDE actuales ofrecen gran cantidades de herramientas , tal como:

  • Editores de texto avanzados , con resalte de sintaxis, ayuda en línea sensible al contexto, búsqueda de referencias y análisis de código a la vez grandes capacidades de refactoring…
  • Creación de Interfaces Gráficas: Se pueden crear interfaces gráficas de forma rápida.
  • Grandes capacidades de depuración: Se puede controlar la depuración de múltiples formas, incluso modificar los valores de las variables y el mismo código al momento de la ejecución.
  • Integración con sistemas de control de versiones y seguimiento: Los sistemas actuales se pueden conectar con subversión o git (o otros sistemas de control de versiones) de forma sencilla, además algunos se integran con elementos de seguimiento y colaboración entre equipos de trabajo
  • Plantillas y elementos pre-creados: Los IDEs suelen ofrecer múltiples plantillas y elementos previamente creados, para que no tengamos que elaborar de cero nuestros sistemas.
  • Descarga de librerías y framework comunes: Los IDE pueden conectarse a repositorios comunes de componentes reutilizables (junto con sus dependencias) y agregarlos automáticamente a nuestro sistema.




¿Por qué debo usar IDE en nuestro trabajo?


A veces pienso que nuestra profesión es la única que se cuestiona por que debe usar herramientas para hacer más sencillo nuestro trabajo. Cuando salió C, se decía que era mucho mejor programar en ASM, cuando salido C++, C era mejor, igual paso con Java o C#, es como si nos resistiéramos a hacernos la vida más fácil por una falsa sensación de “autenticidad” que da hacer las cosas de forma más complicada. ¿Se cuestiona acaso un carpintero acera de usar herramientas más potentes y mejores para hacer su trabajo, o un doctor desecha mejores y mas modernos medios de diagnostico?





Hay que comprender que las necesidades empresariales hacia nuestros sistemas no van a acabarse nunca, siempre van a estar evolucionando, cambiando y creciendo, haciendo que nuestro tiempos y recursos disminuyan. Si podemos ser más productivos con una herramienta , mientras garantizamos la calidad de nuestros software, debemos serlo.

Nuestro objetivo es resolver, mediante software, las necesidades de nuestros clientes. Nuestro cliente no quiere deslumbrarse con nuestra capacidad de escribir en el bloc de notas, ni necesitamos impresionarle con una mal entendida independencia de herramientas de desarrollo. Lo único que quiere nuestro cliente es un sistema que le resuelva un problema.

Es importante conocer un lenguaje de programación, pero realmente no es tan importante como saber comprender y resolver los problemas de nuestro cliente. las tecnologías cambiar constantemente, y en los últimos años con mayor rapidez. Lo que hoy es una la solución para todos los escenarios posibles, en cinco años estará obsoleto y será reemplazada por algo mejor y mas potente, con lo que todo ese esfuerzo que hemos hecho para conocer una api, o ciento de funciones, quedara en nada. Si tenemos herramientas como los IDE que nos ayudan a centrarlos en lo importante, en hacer sistemas, tendremos más tiempo para hacerlos mejor, más rápido y de más calidad, en definitiva, mas productivamente.