martes, 20 de enero de 2015

¿Entornos? ( Escritorio, 1ª Parte )

"Si no puedes elegir la plataforma, elige el entorno."

Hoy en día, existen decenas de entornos de desarrollo diferentes. De todos los tipos y para todas las plataformas. Pero no todos sirven para todo, y cuando emprendes un proyecto debes elegir sabiamente cual es el mas adecuado y se adapta mas a tus necesidades. Hoy, vamos a comentar distintos tipos de entornos de desarrollo, para todos los gustos, desde entornos multi-plataforma, entornos de trabajo nativo bajo la plataforma y entornos de compilación y desarrollo en la nube.


Primero que todo, vamos a comparar los entornos de desarrollo mas populares en lo que se refiere al escritorio, smartphone's y videoconsolas.

Microsoft VisualStudio y .Net Framework:
Nacido el 13 de febrero de 2002, la gran, y realmente grande empresa de Microsoft, nos presentó un entorno de desarrollo basado en interfaces gráficas. Dicho entorno, pretendía ser la fuente principal de aplicaciones para las plataformas Windows, y futuramente Windows Phone. Con la entrada de Net Framework, muchas empresas y muchos usuarios de Windows, empezaron a programar, debido a sus facilidades para el desarrollo gráfico.

Este entorno, se basa en lenguajes de programación interpretados por una maquina virtual hecha en CLI, el lenguaje ensamblador de Microsoft. Visual Basic, C#, Visual C++ y ASP.NET fueron los principales lenguajes soportados por la plataforma Net Framework. Con el tiempo, Microsoft ha ido ampliando su abanico de lenguajes. Sinceramente, yo no entiendo para que tantos lenguajes, pero Microsoft es ambiciosa, y en eso tenemos algo en común.

Actualmente, existe la edición 2013 de este completísimo entorno de desarrollo, que permite trabajar con todo tipo de tecnología aliada con Microsoft: Windows Forms, API Win32, Direct X 2D & 3D, ASP, entre otras. Una de las principales ventajas de VisualStudio, es su extremo uso de la Orientación a Objetos, ya que posee unas extensas librerías con muchas posibilidades de desarrollo, ademas de permitirte crear tus propios controles para un mayor rendimiento, compatibilidad o personalización del producto final.

Opinion:
"Microsoft VisualStudio, es realmente un gran entorno de desarrollo. Tiene una fama hecha, clientes fijos y seguirá así por muchos años. Muchos programadores han dedicado su tiempo a escribir libros dedicados a algún lenguaje especifico de esta plataforma de manera que nadie puede poner en duda la futura supervivencia de dicho entorno. Realmente, está muy automatizado, es bastante personalizable y adaptable a otros lenguajes, librerías o plataformas. Pero nadie es perfecto, y Microsoft tampoco. VisualStudio trabaja con lenguajes interpretados, y como todos sabemos, eso hace mas pesado y ralentiza el producto final. Ademas, VisualStudio no incorpora un sistema de limpieza de memoria RAM, por lo que si no sabes limpiar la memoria manualmente mediante código en tu aplicación, por simple que sea una aplicación, puede llegar a ser realmente pesada. Realmente, lo recomiendo tanto a usuarios primerizos como expertos, dada su sencillez y sus enormes posibilidades, pero recuerden siempre, que es un lenguaje interpretado: si su cliente no tiene la versión de Net con la que usted trabaja, no podrá usar su producto."
Para mas información, visitar sitio oficial: http://www.microsoft.com/visualstudio/esn/2013-preview

wxWidgets:
Nacidas en 1992, wxWidgets son unas librerías multiplataforma para el desarrollo de interfaces gráficas en base al popular lenguaje: C++. Estas librerías, están bajo licencia LGPL, que a diferencia de GPL, si permite que el usuario imponga derechos de autor respecto a su creación, permitiendo así su uso empresarial y privado.

wxWidgets basa su sistema de interfaces en las librerías nativas del sistema operativo anfitrión en el que se esté trabajando, proporcionando así un mayor rendimiento y reduciendo su tamaño. Actualmente están disponibles para Windows, MacOS, GTK+, Motif, OpenVMS y OS/2. Ademas, aun que principalmente trabajan bajo C++, también pueden ser utilizadas desde: JAVA, JavaScript, Perl, Python, Smalltalk, Ruby, Lua, PHP, Erlang, Haskell, Tcl, Basic, C, D, .NET Framework, Euphoria y BlitzMax.

Actualmente, la ultima versión para cada lenguaje, fue liberada entre 2009 y 2011. Los entornos de desarrollos mas populares para dichas librerias se podrian resumir en la siguiente lista:
  • Boa Constructor ( Python )
  • Code::Blocks ( Plugin wxSmith )
  • CodeLite
  • wxDev-C++ ( edición de 2007 )
  • wxGlade
  • wxFormBuilder
Aun que muchos desconocemos de la popularidad de dichas librerías, a diario usamos aplicaciones hechas con wxWidgets, tales como: Amaya, aMule, Audacity, BitTorrent, CodeBlocks, CodeLite, Dolphin, Filezilla, entre otros.

Opinión:
"Por desgracia, no he tenido la oportunidad de trastear un poco con dichas librerías, pero tengo planeado empezar a aprender a trabajarlas, debido a que me parecen la mejor opción para un buen programador. A diferencia de otros entornos, wxWidgets se basa en las funciones nativas del sistema, permitiendo un mayor control de tu aplicación. Ademas, son portables a diferentes plataformas, detalle importante a tener en cuenta a la hora de iniciar un proyecto. Realmente, las recomiendo, pero por lo poco que he visto de wxWidgets, no son librerías para novatos. Como mencioné anteriormente, tengo pensado empezar a trabajar con ellas, y a medida que vaya aprendiendo, iré publicando mis avances y lo que aprendo en el blog, para quien quiera probar a trabajar con dichas librerías."

Bueno, y hasta aquí esta primera parte sobre los posibles entornos de desarrollo que podemos elegir a la hora de iniciar nuestro proyecto. En la próxima publicación, os hablaré de las librerías QT y GTK+. Espero que les haya sido de agrado, y les ayude a elegir mas sabiamente su área de trabajo. Con el tiempo, se intentará desarrollar documentación para todos los entornos posibles, y posiblemente en el orden en que los estoy explicando.

- Gracias por su tiempo, atentamente: Chaarlis Me.