Lenguajes y plataformas de programación

Lunes, 17 de octubre de 2011

Es importante recordar que detrás de los aparatos tecnológicos que usamos no solo están las cabezas visibles (Bill Gates o Steve Jobs), también está la parte funcional, la que no se ve. Y estas cosas de palacio son muy importantes, demasiado importantes como para no valorarlas adecuadamente. Además muchos de los inventos del hoy son pequeñas ideas del pasado, reutilizadas, mejoradas y puestas nuevamente de largo.

Como ya sabréis ha fallecido Dennis Ritchie, creador de Unix y del lenguaje de programación C. La mayoría de los grandes creadores pasan desapercibidos por un motivo u otro. Es por ello que no quiero dejar pasar la oportunidad para dar las gracias públicamente a cada unos de los padres de los lenguajes y plataformas de desarrollo que utilicé hasta la fecha. Para ello haré un repaso sobre cual fue el uso de cada tecnología a lo largo de mi carrera personal/profesional:

image thumb4 Lenguajes y plataformas de programaciónAlgebra de Boole (George Boole): Todo tiene un origen, en mi caso la afición por la informática viene de lejos, de cuando estudiaba electrónica de comunicaciones. En tercero empezamos con electrónica digital y es hay donde tuve mi primer contacto con los primeros bits. Por aquel entonces desarrollé mi primer proyecto complejo, un reloj digital programable. Nos pegábamos con los rebotes, ruidos y cosas de ese orden. Todo eran unos y ceros, algún que otro LM555 y mucho de digital.

image thumb5 Lenguajes y plataformas de programaciónEnsamblador (John von Neumann, John Mauchly, J. Presper Eckert, Herman Goldstine y Alan Turing): Al año siguiente tomé contacto con los primeros micros de 4 y 8 bits. Poco después hice mi primer programa informático en un entrenador digital basado en los chip 6502/6522. En esencia era un sistema de control de tráfico en función del volumen.

image thumb6 Lenguajes y plataformas de programaciónBasic (John George Kemeny y Thomas Eugene Kurtz): Un año más y comencé mi andadura en el mundo PC desarrollando una aplicación en basic. Constaba de un módulo de comunicaciones puerto serie que se comunicaba con una pequeña alarma. Toda la programación de la alarma se realizaba en el PC (x286 con MS-DOS 6.22) y la electrónica se encargaba de la sirena y cosas hardware.

image thumb7 Lenguajes y plataformas de programaciónPascal (Niklaus Wirth): Aprendí los conceptos básicos del lenguaje pascal en la facultad técnica de telecomunicaciones y lo puse en práctica a nivel empresarial en mi primera aplicación de gestión contable para cooperativas agrarias. Desarrollé esta primera aplicación sobre Windows 3.11 en Delphi 1.0/2.0 con motor de datos Paradox.

image thumb8 Lenguajes y plataformas de programaciónVelazquez Visual (Juan Muñoz Cobos): En mis primeras andaduras como programador profesional desarrollé varias aplicaciones empresariales primero en Delphi y luego en Velázquez Visual. Esta etapa fue muy prolífica.

image thumb9 Lenguajes y plataformas de programaciónimage thumb10 Lenguajes y plataformas de programaciónC (Dennis M. Ritchie y anteriormente Ken Thompson) y C++ (Bjarne Stroustrup): De igual forma que pascal, aprendí C y C++ y lo utilicé a lo largo de mi vida profesional en cosas de bajo nivel. Dispositivos con comunicaciones serie, librerías, plugins, emuladores de consola y algunos juguetes más. Nada realmente importante profesionalmente hablando.

image thumb11 Lenguajes y plataformas de programaciónJava (Se desarrolló en Sun Microsystems. En un grupo de trabajo compuesto por trece personas y dirigido por James Gosling): Después de trabajar durante un tiempo desarrollando aplicaciones empresariales me dirigí al mundo académico (a los 21) y empecé a trabajar como profesor en diversos centros de enseñanza privada. Java forma parte de esta etapa académica. 
Nunca apliqué Java en proyectos de desarrollo propios aunque si integré varias aplicaciones Java en arquitecturas SOA complejas. También implanté despliegues Java/JSP basados en Apache, JBoss y Struts.

image thumb12 Lenguajes y plataformas de programaciónVisual Basic (Alan Cooper): Al igual que Java, Visual Basic no salió del ámbito académico. En aquel entonces se vendía mucho VB6. Java empezaba a ser algo muy serio en ciertos entornos profesionales.

ASP 3 (Microsoft): Mi primera introducción a la programación dinámica en la web. Utilizábamos DCOM y COM+. Por aquel entonces desarrollé un portal completo de compra-venta de vehículos de ocasión para concesionarios. Portado posteriormente a otros entornos con necesidades similares.

image thumb13 Lenguajes y plataformas de programaciónJavaScript (Brendan Eich) y VBScript (Microsoft): Para complementar el desarrollo en ASP3 me introduje en el manido mundo del scripting de cliente y servidor. Los conceptos de JavaScript siempre son bienvenidos aunque hemos tenido que reaprender un poco (¿se acuerdan de JScript?).

Visual Basic .NET (Microsoft): En un primer paso sirvió para acercar en la docencia .NET a los alumnos que provenían de VB6. Posteriormente desarrollé un generador de código avanzado para aplicaciones empresariales. Este generador (nTiersGenNET) lo apliqué en una decena de aplicaciones de gestión empresarial (clientes pesados, interface web ASP.NET y servicios SOA).

image thumb14 Lenguajes y plataformas de programaciónC# (Anders Hejlsberg y un numeroso grupo de trabajo): Utilizado intensamente desde el 2004 hasta la actualizad. He desarrollado distintos componentes para aplicaciones empresariales, controles de usuario, sistemas de notificaciones y módulos de integración para productos como SharePoint Portal Server 2003/2007.

image thumb15 Lenguajes y plataformas de programaciónVelneo V7 (Juan Muñoz Cobos): Desde el lanzamiento de V7 estamos sumidos en el desarrollo de PaaSOS. Como muchos ya sabéis PaaSOS es un conjunto de aplicaciones empresariales desarrolladas con Velneo V7 y pensadas para la distribución en entornos cloud.

image thumb16 Lenguajes y plataformas de programaciónimage thumb17 Lenguajes y plataformas de programaciónPHP (Rasmus Lerdorf y posteriormente Zeev Suraski y Andi Gutmans) y Phyton (Guido van Rossum): Utilizados para el desarrollo de nuestra web y nuestra consola web de integración con nuestros servicios SaaS de PaaSOS. Además de estas tecnologías utilizamos intensivamente ShellScript.

Creo que no se me escapa ninguno, pero quien sabe… Todos ellos aportan cuestiones fundamentales para la informática moderna y por ello cada uno de sus creadores merece mi mayor respeto.

El mundo tecnológico no solo gira entorno al diseño o a los usuarios, antes de eso hay muchos bits y en esos está la esencia de la tecnología.

Aprovecha y añade a esta lista aquella plataforma o lenguaje al que deseas homenajear.

La reflexión es un camino , ,

Imprimelo! Imprimelo! | Imprimelo! Guardalo como PDF!

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votes, average: 4,00 out of 5)
Loading ... Loading ...

Muy pronto Velneo en Android, gracias Qt

Martes, 11 de octubre de 2011

Como todos sabéis Qt es el conjunto de librerías con las que se desarrolla Velneo V7, por lo tanto Velneo y toda la comunidad de desarrollo dependemos de la evolución de Qt. Su evolución nos condiciona para lo bueno y para lo malo, y eso tenemos que tenerlo siempre muy presente. Nos condiciona mucho, por lo tanto, podemos tomar decisiones inadecuadas por culpa del camino que las propias librarías toman (se acuerdan del barco, nosotros también tuvimos que achicar un poco de agua).

Pero si algo tiene de bueno Qt es su evolución y adaptabilidad a las nuevas situaciones. Hoy os voy a hablar de como Qt está evolucionado en las últimas iteraciones y cual es el camino que tomará Qt en la nueva versión Qt 4.8 y 5.0 (Velneo está actualmente compilado con Qt 4.7.2 y dentro de unos meses empezará con 4.8.X).

Qt evolucionará en los próximos meses a una mayor portabilidad, esto significa que pronto podremos disponer de librerías estables y oficiales en Android. Y sin tardar demasiado es posible que en iOS y otras muchas plataformas.

 

Hablemos del presente Qt 4.7 y 4.8

En las versiones anteriores de Qt podemos destacar como el desarrollo estaba orientado a determinados sistemas de ventanas (X11/Mac/Win) y a determinados sistemas embebidos (Windows CE/Mobile/Symbian/Maemo/Meego).

Su implementación multiplataforma era demasiado concreta y difícilmente portable a nuevas plataformas. Fundamentalmente por requerir de distintas implementaciones de representación de UI para cada sistema operativo.

image thumb Muy pronto Velneo en Android, gracias Qt

Este diseño era adecuado en el pasado (donde las plataformas estaban claramente definidas en los desktops y teléfonos). Pero las cosas cambian muy deprisa, de repente el mercado Mobile convulsionó (con la salida de iOS) y surgieron varios sistemas operativos (Maemo, Meego, Android, Bada, los de RIM…) y nuevos dispositivos (MID´s, tablet´s, phones, car PC…). Esta explosión obliga a Qt a evolucionar en el apartado multiplataforma mejorando la portabilidad de su código.

Para conseguir este fin Qt desarrolla el proyecto Lighthouse desde hace bastante tiempo.

Por fin este proyecto verá la luz oficialmente y será incluido en la próxima versión de Qt 4.8. Además será fundamental en Qt 5.0.

 

Para conseguir este objetivo lo que Qt implementa en esencia es:

Un nuevo defined para Lighthouse.

image thumb1 Muy pronto Velneo en Android, gracias Qt

Aportar una serie de plugins para facilitar la portabilidad en distintos escenarios.

image thumb2 Muy pronto Velneo en Android, gracias Qt

Se implementa un modelo abstracto de representación.

image thumb3 Muy pronto Velneo en Android, gracias Qt

Con todo esto se facilitará enormemente la tarea de realizar ports de Qt.

 

Hablemos del futuro, hablemos de Qt 5

En Qt 5 los principales cambios serán:

  • Hacer mejor uso de las GPU mejorando la representación gráfica con menos consumos de recursos.
  • Facilitar la creación de aplicaciones e interfaces de usuario avanzados. Haciendo la implementación más rápida y fácil (mediante QML y Javascript);
  • Hacer que las aplicaciones estén conectadas a la web de la forma más potente posible.
  • Reducir la complejidad y la cantidad de código necesaria para mantener e implementar un port.

Qt 5 será el inicio de una nueva forma de desarrollar aplicaciones. Ofrecerá toda la potencia de Qt combinada con C++, poniendo el foco en un modelo donde C++ sea la forma de implementar la funcionalidad del backend necesaria para Qt Quick.

Pero no solo cambiará esto en Qt también su enfoque de cara a la comunidad de desarrollo. Qt 4 está siendo desarrollado por Trolltech y Nokia liberando los resultados a la comunidad de desarrollo en cada iteración. En Qt 5 se pretende desarrollar de la forma más abierta posible (gobierno abierto). Será un proyecto open source desde el momento del inicio. No habrá diferencias entre los desarrolladores que trabajen desde fuera o dentro de Nokia.

Lo mejor para saber como evolucionará Qt es estar muy pendiente de los blogs y conferencias relacionadas. Para hacer miga os paso varios enlaces de imprescindible lectura referentes a Lighthouse y Qt.

http://labs.qt.nokia.com/2011/05/09/thoughts-about-qt-5/

http://labs.qt.nokia.com/category/labs/lighthouse/

http://www.youtube.com/user/QtStudios?blend=22&ob=5

Algo nuevo por descubrir , , ,

Imprimelo! Imprimelo! | Imprimelo! Guardalo como PDF!

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votes, average: 4,50 out of 5)
Loading ... Loading ...