En esta nueva entrada de DatoByte les quiero comentar acerca de Entornos de desarrollo, Lenguajes de Programación y bases de datos.
Comencemos entonces definiendo estos 3 conceptos.
(Las siguientes definiciciones son tomadas de Wikipedia)
¿Que es un entorno de desarrollo?
Un entorno de desarrollo, también conocido como IDE (Integrated development environment ), "por sus siglas en inglés", es una aplicación de software, que proporciona servicios integrales para facilitarle al programador de computadora el desarrollo de software. Normalmente, un IDE consiste de un editor de código fuente, herramientas de construcción automáticas y un depurador. La mayoría de los IDEs tienen auto-completado inteligente de código.
Algunos IDEs contienen un compilador, un intérprete, o ambos, tales como NetBeans y Eclipse; otros no, tales como SharpDevelop y Lazarus. El límite entre un entorno de desarrollo integrado y otras partes del entorno de desarrollo de software más amplio no está bien definido. Muchas veces, a los efectos de simplificar la construcción de la interfaz gráfica del usuario (Interfaz gráfica de usuario (GUI -"por sus siglas en inglés"-) se integran un sistema controlador de versión y varias herramientas. Muchos IDEs modernos también cuentan con un navegador de clases, un buscador de objetos y un diagrama de jerarquía de clases, para su uso con el desarrollo de software orientado a objetos.
¿Que es un lenguaje de programación?
Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten estructurar el contenido de los documentos).
¿Que es una Base de datos?
Un sistema de gestión de bases de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto.
Estos sistemas también proporcionan métodos para mantener la integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la información si el sistema se corrompe. Permiten presentar la información de la base de datos en variados formatos. La mayoría incluyen un generador de informes. También pueden incluir un módulo gráfico que permita presentar la información con gráficos y tablas.
Hay muchos tipos distintos según cómo manejen los datos y muchos tamaños distintos de acuerdo a si operan en computadoras personales y con poca memoria o grandes sistemas que funcionan en mainframes con sistemas de almacenamiento especiales.
En mi opinión:
Teniendo en cuenta lo anterior, la idea del desarrollo de un nuevo software deberá pasar por la elección de estos 3 aspectos, decisiones que son de gran análisis por los arquitectos de software teniendo en cuenta diferentes aspectos como conocimientos del equipo de desarrollo, Escalabilidad del software, Compatibilidad con otros softwares, Costos y licencias, entre otros, de acuerdo al análisis de estos aspectos surge entonces la decisión de en que entorno y lenguaje se va a trabajar, notese que estas decisiones no se pueden tomar a la ligera, No es cuestión de sentarse y que todos los involucrados comentes que IDE, que lenguaje y que SGBD desean usar, Que por cierto, iniciar un debate de cual es el mejor en cada uno de estos 3 aspectos, es considerado la perdida de tiempo mas grande que se pueda realizar en cuanto al desarrollo de software se refiere, a mi modo personal No hay un lenguaje mejor que el otro (Hablando de lenguajes de alto Nivel http://datobyte.blogspot.com/2015/04/glosario.html) de igual manera no hay un IDE o SGBD que sea el mejor de todos, Sin embargo si cabe resaltar que si hay lenguajes mas usados que otros y se preguntaran, que tiene que ver que sea mas usado, lo que intereza en este punto es que si es mas usado, probablemente vas a encontrar mas documentación acerca de el, y en temas de lenguajes de programación, la documentación en un aspecto muy importante a destacar. sin embargo por ultimo debes saber que como dije en su momento estas elecciones los arquitectos de softwares las tomaran de acuerdo al equipo de trabajo y al tipo de proyecto que se va a realizar.
LA MANZANA DE LA DISCORDIA EN UN GRUPO DE DESARROLLADORES DE SOFTWARE ES PREGUNTAR CUAL ES EL MEJOR EN CADA UNO DE ESTOS ASPECTOS.
Cabe tambien mencionar en este post cuales son las combinaciones (IDE, lenguaje de programación Y SGBD) mas usadas en el desarrollo de softwares.
Iniciemos entonces comentando cuales son los lenguajes, IDE y SGBD mas conocidos:
IDE Visual Studio, NetBeans y Eclipse
Lenguajes de programacion PHP, .Net, Java, Android
SGBD Oracle, MySql y SQL Server, SQLite
Las combinaciones mas usadas en el mercado son:
Visual Studio - .Net (C# y VB) - SQL Server
Netbeans - Java- MySQL, Oracle
Eclipse - PHP- Oracle
Eclipse - Android - SQLite,MySQL
Las anteriores combinaciones son las mas usadas en el mercado, sin embargo no son las unicas usadas, bien es sabido que existes muchos Lenguaes, SGBD e IDEs, Por ello hacer una elección nuevamente dependerá de el tipo de proyecto a realizar, teniendo en cuenta las diferentes ventajas y desventajas de cada uno de estos aspectos.
Que combinación de estos 3 aspectos sugieres?
Mencion Honorifica para desarrollo de videojuegos: Unity(IDE) - C#