17 marzo 2005

Una nueva plataforma para nuestras aplicaciones?

Cuando terminé de leer este artículo hoy por la mañana, me di cuenta que muchas de las cosas que allí se presentan no solamente las comparto, sino que cada día están más y más a nuestro alrededor. Para ponerlo en pocas palabras, la escritora nos comenta acerca de un par de rumores y algunos hechos que nos darían a entender que Google está desarrollando un sistema operativo. O que lo deberían hacer antes que Microsoft. Pero esto no es lo que más me interesa del artículo, sino el desarrollo de nuevas... "plataformas" o "técnicas" para desarrollar aplicaciones. Ya no se trata de armar una linda cajita y entregar el producto con una licencia de usar-una-sola-vez, como Microsoft se está dando cuenta. Ahora el foco está cambiando hacia servicios entregados a través de la web. Y si Microsoft se dio cuenta de esto y está reaccionando, Google no se podía quedar atrás, aunque sus esfuerzos parecen, al menos por ahora, menos centralizados. En lugar de presentar un sistema como Indigo, Google está desarrollando diversas aplicaciones en la web, como GoogleSuggest y GoogleMaps, que funcionan de una manera similar, al menos en el concepto.

Para detalles técnicos, aquí se encuentra una explicación de cómo funciona GoogleSuggest, y aquí otra sobre cómo funciona Gmail. También les dejo este link, que trata acerca de lo mismo, pero con el nombre de Ajax.

En definitiva, las tecnologías como XHTML, CSS, XML, XMLHttpRequest y JavaScript juntando y haciendo uso de todo nos permite desarrollar aplicaciones para la web de una manera sin precedentes, en cuanto a la "experiencia" que el usuario tiene al usar nuestros sistemas. Ya no se trata de cargar una página cada vez que le hacemos una request a una página. Con estas tecnologías -que ya están entre nosotros desde hace un tiempo, pero hasta ahora no se habían usado de esta manera- el usuario hace una request y puede seguir usando nuestra aplicación mientras su solicitud se procesa de manera asíncrona en el servidor. ¿El resultado? No solamente el usuario trabaja con una interface mucho más agradable y productiva, sino que también se consume menos ancho de banda -ya que no se envían páginas completas al cliente sino solamente paquetes de datos más pequeños- y también se reduce la carga de trabajo del lado del servidor, ya que el procesamiento se realiza del lado del cliente.

Es de esperar que este tipo de aplicaciones empiecen a expandirse en el futuro. El ritmo con el que lo hagan depende de muchos factores. Google y Microsoft seguramente tendrán mucho que ver en esto, y ya están mostrandonos signos de lo que se viene. De todas maneras, aunque las tecnologías no son nuevas, la forma de utilizarlas en conjunto sí. Por lo tanto realmente no podemos decir de que manera se utilizarán en el futuro, todavía queda mucho por investigar y desarrollar. Hasta la próxima!

09 marzo 2005

Información sobre C#

Estos últimos días estube leyendo mucho acerca del lenguaje de programación C#. No es ninguna novedad para los que leen habitualmente este blog que a mi me interesa mucho. Aunque todavía estoy dando mis primeros pasos con el lenguaje, sigo muy de cerca el avance de ciertos proyectos que les voy a comentar hoy y las novedades que va a traer la próxima versión del lenguaje 2.0.

Para los que se sienten un poco perdidos, les comento que el lenguaje de programación C# es un lenguaje de programación de propósito general diseñado por Microsoft para su plataforma .NET. Sus principales creadores son Scott Wiltamuth y Anders Hejlsberg, diseñador del lenguaje Turbo Pascal y la herramienta de Desarrollo Rápido de Aplicaciones (RAD en inglés) Delphi. C# es un lenguaje de programación que toma las mejores características de lenguajes preexistentes como Visual Basic, Java o C++ y las combina en uno solo. Es mucho más sencillo e intuitivo programar en C# que hacerlo con cualquiera de estos lenguajes ya que carece de elementos heredados innecesarios en .NET. Por esta razón, se suele decir que C# es el lenguaje nativo de .NET.

Terminada la introducción, aquí les dejo un link en el que están explicadas las nuevas características que el lenguaje incorporará en su versión futura. En resumen, se explican los componentes genéricos, los iteradores, los métodos anónimos, los tipos parciales y la compatibilidad con los estándares ECMA e ISO.
A continuación les comento de un muy interesante tutorial que encontré en la red acerca de C#, en un sitio llamado Clikear que es un portal para desarrolladores del .NET Framework. Para gente que se encuentre un poco más avanzada, un excelente libro es "Dissecting a C# Application: Inside SharpDevelop" que se puede descargar gratuitamente desde aquí.

En cuanto a entornos integrados de desarrollo (IDE, en inglés) y herramientas, primero que todo hay que nombrar al estándar, el que sigue todo el resto. Este es el Visual Studio de Microsoft. Pero... como yo no estoy dispuesto a pagar (aunque vale la pena realmente) porque por ahora programo como un hobby, vamos a ver las "otras" alternativas.
  1. La primera de todas es bajarse el SDK del .NET Framework. Tiene todo lo necesario para que uno empiece a programar inmediatamente. Pero no cuenta con el hermoso IDE que trae VisualStudio. Todo se usa mediante línea de comandos y su editor de texto preferido.
  2. Si seguimos en Windows, la segunda es usar SharpDevelop, que necesita el .NET Framework para funcionar. Es totalmente Open Source y funciona muy bien, sin mencionar el hecho de que también compila código de VB.NET.
  3. Otro proyecto muy interesante, es MONO. Ya he hablado bastante de este proyecto, pero para los que no lo conocen les cuento que es una implementación Open Source del .NET Framework basada en el estándar ECMA 334 (la especificación del lenguaje C#) y en el ECMA 335 (la especificación del Common Language Infrastucture) que permite desarrollar aplicaciones multiplataforma (Linux y Windows).
En cuanto a las dos últimas herramientas, se encuentran en constante desarrollo, aunque ya se encuentran disponibles muchas aplicaciones desarrolladas bajo estos entornos (más de 2.000 aplicaciones Open Source según SourceForge se encuentran en diversos estados de desarrollo programadas en C#). Con esto se demuestra que son verdaderamente útiles y se pueden aprovechar las capacidades del lenguaje al máximo.

Por hoy, ya terminé. Espero que les sirva para animarse a programar en esta plataforma y aprovechar todas las herramientas disponibles para eso. Como último detalle, les cuento que Microsoft tiene una interesante certificación para desarrolladores .NET gratis. Hasta la próxima!

07 marzo 2005

Estoy de vuelta!

Bueno, primero que todo les quiero pedir perdón a todos los que estaban esperando una actualización. Diferentes cosas me mantuvieron off-line por mucho tiempo, entre ellas un final, las vacaciones y los casi dos meses que me estuve peleando con diferentes ISPs hasta conseguir que mi nueva conexión ADSL funcionara sin problemas. Mis disculpas para todos.

En este momento estoy disfrutando de la ya antes mencionada conexión, pero solamente bajo WinXP, cosa que pretendo cambiar a la brevedad... o cuando encuentre tiempo suficiente para configurarla bajo Mandrake. O finalmente me decida a probar Gentoo en mi máquina. Cualquiera de las dos es bienvenida, y si alguno me puede contar como les fue en un intento similar no duden de postearlo en los comentarios!

En cuanto a novedades, les cuento que muchas realmente no he encontrado en el mundo de las noticias. Pero si en el mundo del software. Como primera medida y treinta segundos después de haber comprabado que mi conexión funcionaba, bajé de la red el ZoneAlarm, un firewall privativo para Windows bastante bueno. Sin embargo, mi adicción (!) por el soft Open Source clama porque instale otro, asi que si alguien conoce alguno que funcione en WinXP por favor hágamelo saber a la brevedad. Acto seguido, y con el firewall andando, me fui hasta la página de Mozilla para bajar su navegador Firefox. La verdad es que estoy encantado con él, aunque tiene algunos problemas para visualizar determinadas páginas (como la de mi facultad por ejemplo!) es excelente. Una de las cosas que más me gustó fue el gestor de descargas, realmente bueno. Y ahora finalmente me encuentro buscando una alternativa Open Source para mi AVG Free Edition. Misma situación que con ZoneAlarm. Hasta ahora lei que el ClamWin funciona bastante bien, pero todavía se encuentra en estado de beta. Veremos que sucede cuando lo pruebe. Todavía no incluye un scanner en tiempo real (uno tiene que manualmente escanear cada archivo), ni Outlook Addin (que por suerte no uso!) ni POP3 Proxy, sin embargo borra automáticamente un adjunto infectado. Como última novedad de este lado les comento que estoy jugando Planeshift, y la verdad que me tiene muy entusiasmado! Todavia se encuentra en un estado muy prematuro de desarrollo, pero tiene mucho potencial!

Y en otras novedades, hace poco recibí un mail en el que estaban buscando pasantes para una empresa de Mar del Plata. Pero lo que me llamó la atención fue que estaban buscando gente con manejo de Linux y MySql, para implementar un sistema de cobro, facturación y stock desarrollado por esta misma gente en Gambas. Como mucho de esta tecnología no conocía, estube haciendo una pequeña investigación en la red, y parece interesante. Muy cortita, se trata de un Entorno Integrado de Desarrollo (IDE en inglés) basado en un intérprete de Basic con una extensión a objetos, como Visual Basic (tm), aunque no es un clon. Personalmente me gustaría que ya estuviéramos desarrollando en Argentina bajo Mono, pero sin embargo es muy alentador ver que las empresas se están volcando a soluciones Open Source y alentando el desarrollo local. Lo cual me alegra, porque significa que voy a tener trabajo!

Eso es todo por ahora, les dejo un abrazo grande a todos.