Tendencias en lenguajes de programación en 2008

Publicado el Marzo 20, 2008 por Alonso Alvarez 
Archivado bajo Tecnologías, Tendencias

1 Malo2 Mejorable3 Normal4 Bueno5 Excelente (Votos: 1. Media: 3/5)
Loading ... Loading ...

Como cada año, en O’Reilly hacen un estudio del estado de la publicación de libros técnicos, lo que sirve para identificar también tendencias en cuanto a la popularidad y uso de determinadas tecnologías y lenguajes de programación.
Este gráfico muestra la evolución del mercado de libros sobre lenguajes de programación que, por cierto, ha caído ligeramente en el último año:

Evolución en la venta de libros sobre lenguajes de programación según O'Reilly

(en la imagen, el área representa la cantidad de libros vendidos, y el color la tendencia, siendo el verde creciente y el rojo decreciente)

Lo más destacado del estudio es el crecimiento moderado de lenguajes muy difundidos como C#, Ruby y Python, y el rápido crecimiento de otros menos conocidos como powershell, y actionscript. En el lado negativo, se constata el declive de Visual Basic, .NET y Perl. Por último, hay un fuerte estancamiento en la mayoría de los lenguajes más asentados como Java (que en realidad sigue una clara tendencia a la baja), Javascript, C/C++, PHP o SQL.

El estudio analiza también libros referidos a otras tecnologías, no sólo lenguajes. Aquí se puede destacar el fuerte crecimiento de todo lo relacionado con Windows Vista (esperable), “colaboración” (con Microsoft SharePoint como máximo exponente), Office (especialmente la versión 2007), y Cisco. En el otro extremo, los descensos más acusados están en libros sobre creación de páginas web, fotografía digital y programación Web.

Citando a:


Tags: , , , ,

“Green software”: hasta un 85% del código podría ser reutilizado

Publicado el Febrero 28, 2008 por Luis Fernando Solórzano 
Archivado bajo Tecnologías, Tendencias

1 Malo2 Mejorable3 Normal4 Bueno5 Excelente (No valorado aún)
Loading ... Loading ...

Crece la preocupación por el “green computing“, lo cual es bueno para el medioambiente. Los materiales con los que se fabrica el hardware son más “ecológicos” y la eficiencia energética se tiene muy en cuenta en los diseños de nuevos procesadores, pantallas y otros componentes. Pero me pregunto yo si nos preocupamos lo suficiente sobre la reutilización del código software.

2008022802.jpg
Giving jars a second life with newly-designed tops

El grupo de trabajo ESDS en la NASA investiga sobre “software reuse“. Según una encuesta realizada por ellos, hasta un 85% del código podría ser reutilizado. De ese porcentaje, se estima que el 65% es específico del dominio de la aplicación y el restante 10% sería totalmente genérico. Estas cifras son muy interesantes ya que indican el elevado potencial que existe para aumentar la productividad, siempre que se implanten buenas prácticas de reutilización del software.

reuse_strategy.jpg

Deberíamos reflexionar más sobre las barreras que impiden la reutilización del software. Muy probablemente, una de las causas principales sea la falta de conocimiento sobre el código existente. Esto a su vez puede ser porque no hay herramientas que faciliten su “publicación” o porque no las hay que faciliten su “búsqueda”. En cualquiera de los dos casos, deberíamos aprender y aprovechar las herramientas de publicación y búsqueda de páginas web para desarrollar las herramientas necesarias que faciliten/simplifiquen la reutilización de código.

Aprovechando la experiencia de las comunidades para el desarrollo de “free and open-source code”, podrían implantarse en ellas las “buenas prácticas” que faciliten no solo el desarrollo de aplicaciones sino la reutilización del código generado.


Tags: , , , ,

Desarrollos innovadores con SCRUM

Publicado el Febrero 12, 2008 por La Cofa 
Archivado bajo Tecnologías, Tendencias

1 Malo2 Mejorable3 Normal4 Bueno5 Excelente (Votos: 2. Media: 4.5/5)
Loading ... Loading ...

(Por Pedro Sevilla)

He estado leyendo un libro muy interesante en mi opinión sobre una metodología de gestión ágil de proyectos llamada SCRUM.

SCRUM está en la línea de los módelos ágiles de gestión de los que ya hablé hace algunos meses. Algunas de sus principales asunciones son:

SCRUM se está utilizando actualmente en empresas referentes de nuestro sector como Google, y tanto para pequeños como para grandes proyectos.

El libro insiste en que ninguna metodología es la mejor para el 100% de los casos, sino que depende del proyecto, del producto, de la empresa, … En mi opinión, tampoco es necesario aplicar una metodología concreta 100%, sino que pueden aprovecharse las ventajas de cada una para determinadas tareas, por ejemplo, estabilización de aplicaciones.

 ¿En qué puede traducirse esto en nuestro ámbito de trabajo? Pues, por ejemplo en:

Para terminar, os incluyo un diagrama con el flujo de actividades típico que propone SCRUM. Creo que algunas ideas las vamos incorporando (como las reuniones de sprint, que corresponderían con reuniones de seguimiento).

Diagrama SCRUM


Tags: ,

MapReduce: paralelismo en Google

Publicado el Enero 22, 2008 por Alonso Alvarez 
Archivado bajo Futuro de Internet, Innovación, Tecnologías

1 Malo2 Mejorable3 Normal4 Bueno5 Excelente (Votos: 1. Media: 5/5)
Loading ... Loading ...

De vez en cuando en la revista “Communications of the ACM” se publican artículos muy interesantes en los que se explica desde dentro la dinámica de empresas muy conocidas, y su forma de abordar problemas técnicos que se complican con la excepcional envergadura de esas organizaciones.
Recuerdo bastante bien el que dedicaron a finales de los 90 a Yahoo! y el sistema de gestión de ficheros que habían desarrollado para compartir la misma información entre el gran número -para la época- de servidores con que contaban; o el estricto sistema de control de calidad (y no es una broma) de Microsoft, con una metodología que dedicaba tanto tiempo a pruebas y revisión del código generado, como a la propia programación en sí.
En el reciente número de enero, se publica el artículo “Google’s parallel programming model” a cargo de dos miembros del equipo técnico de Google. Muy interesante para quien se interese por la escalabilidad, una de dimensiones básicas de la Web 2.0, y paralelismo en la programación.
MapReduce (flujo de operaciones en la siguiente figura) es un de los elementos estructurales de Google, y se encarga de simplificar el trabajo con los enormes conjuntos de datos que manejan a diario sus servicios (20 Petabytes). Este modelo de programación se basa en una estructura muy simple de trabajos que “mapean”, y trabajos que “reducen”, de forma que los primeros buscan la información en forma de pares clave/valor, y los segundos la unen, simplifican y procesan.
Los programadores invocan a esta función con los parámetros apropiados y MapReduce se encarga de paralelizar las tareas, controlar los trabajos, la comunicación entre ellos, y controlar errores.

Flujo de operaciones en MapReduce de Google

Son muchas las utilidades que usan MapReduce en Google, como la traducción estadística, el procesado de imágenes de satélite, el aprendizaje automático, o el análisis de páginas. En conjunto, MapReduce supone unos 11.000 años/máquina en un mes, lo que supone el trabajo de unos 130.000 PCs convencionales.
Mejor que este resumen es acercarse al artículo original para ver un ejemplo de cómo lidian en Google con problemas de escalabilidad de dimensiones excepcionales.

Por cierto, la versión íntegra del artículo puede encontrarse en Internet [PDF, 417KB].

Citando a:


Tags: , , , ,

Telecom I+D (y IV)

Publicado el Noviembre 2, 2007 por Alonso Alvarez 
Archivado bajo Banda ancha, Futuro de Internet, Movilidad, Tecnologías, Tendencias

1 Malo2 Mejorable3 Normal4 Bueno5 Excelente (No valorado aún)
Loading ... Loading ...

Estos días La Cofa (más bien parte de ella) está asistiendo a las XVII jornadas Telecom I+D, la principal conferencia técnica que sobre las tecnologías de la información y las comunicaciones se celebra en España. Este año se realiza en Valencia, en el Museo de las Ciencias Príncipe Felipe.

Tercera y última jornada del Telecom I+D. Finalizada la presentación de artículos, se centra en tutoriales, mesas redondas y presentaciones de casos de éxito.

Arranca con un tutorial sobre Seguridad en red de AMPER.
Podemos destacar algunos mensajes como que “Seguridad” no puede significar aislamiento (se pierde el valor de lo que se protege), hay que insistir en la disponibilidad. La seguridad afecta al conjunto, no se puede securizar sólo una parte.
Nuevas herramientas y el mayor conocimiento del público supone mayores facilidades para el “hacking”. Se minusvaloran los riesgos de la seguridad física, fijándose únicamente en medidas sofisticadas y complejas, e ignorando las simples y obvias (acceso físico ocasional, ingeniería social, …).

A continuación, Carlos Acuña, de Telefónica I+D habla del proyecto ITEA COSI en “Co-desarrollo usando código abierto e interno en productos/servicios con software intensivo”. A pesar del progresivo movimiento hacia la comoditación del software, las empresas siguen dedicando numerosos recursos de desarrollo interno hacia aplicaciones que pueden ser consideradas una “commodity”. COSI trata de capturar los métodos y herramientas más exitosos en comunidades de desarrollo SW para orientarlas hacia uso industrial y dentro de entornos heterogéneos. Esos métodos se exportan a empresas para mejorar su proceso de desarrollo y sacar más partido a su esfuerzo de desarrollo de forma que se concentre en los elementos diferenciadores.

Luego se presentan resultados de C@R, proyecto FP6. Es una plataforma software desarrollada para facilitar la mejora de las condiciones de vida en el medio rural. Se basa en el uso de Living labs: trabajo dirigido por los usuarios.
En este proyecto Telefónica aporta su experiencia en comunicaciones (redes ad-hoc, Wimax…) para habilitar y desarrollar nuevos modelos de negocio.

Otra presentación interesante es “Automatización de rutinas para servicios de emergencia” a cargo de AMPER. Se presenta el mundo de los servicios de emergencia y la peculiaridad de que se trabajo diario consiste en situaciones excepcionales para el resto de los ciudadanos.
Es por ello que precian de medios para la automatización, ser capaces de extraer métricas que ayudan a obtener información fiable, sobre todo para los poderes públicos y tener capacidad de previsión.
El análisis de procesos en estos entornos es crítico: requisitos de diversidad, flujos, formatos, interconexión, confidencialidad, …
Su horizonte es llegar a entornos homogéneos (son muchas las administraciones implicadas y cada una con su propia plataforma), simples de operar, y ricos en información. Todo ello con el objetivo de facilitar decisiones y actuaciones. Y asignando un papel muy relevante a la automatización.

Telecom I+D

La mesa redonda “Futuro del entretenimiento y la TV” cuenta con la presencia de Fernando Fournon, presidente ejecutivo de Telefónica I+D y Ricardo Alvariño, del MITyC. A pesar de la ausencia de los otros dos participantes, se consigue mantener el interés con informaciones y mensajes muy interesantes.
El representante del ministerio habla del panorama de la TDT: estándares, plataformas, plazos para el Plan Nacional de Transición a la TDT.
Por parte de Telefónica I+D se habla de los factores determinantes en el futuro del entretenimiento y la TV: digitalización, disponibilidad de ancho de banda, interactividad, alta definición, 3D, medios (PC como medio de entretenimiento, TV y plataformas de juego). Se menciona que hay unas fronteras difusas entre los medios y las formas de entretenimiento (como la mezcla de juegos y comunicación).
Con respecto a la IPTV, la personalización va a ser la palanca de un cambio profundo en la forma de ver contenidos y la publicidad. También se atribuye un papel relevante a los UGC, contenidos generados por el usuario. Los servicios de vídeo del hogar se irán trasladando progresivamente al móvil.
Se plantea un debate sobre el uso de las frecuencias que deja disponibles la TV analógica (UHF) tras al apagón digital. Una opción es ampliar los servicios del móvil. Otra, sería emplearlas en más TV: más canales TDT, HDTV, TV móvil, o televisión 3D.

El cierre de las jornadas corre a cargo de Francisco Ros, Secretario de Estado de Telecomunicaciones y para la Sociedad de la Información.
Presenta un panorama optimista, lleno de datos positivos como que el retorno de la inversión en infraestructura de telecomunicaciones es el doble que el resto de las infraestructuras. Y este proceso está acompañado de un fuerte cambio: nuevas empresas, nuevos modelos de publicidad, … que está teniendo un claro impacto social, saltando las barreras geográficas y físicas.
Habla de la digitalización, la ubicuidad y la banda ancha.
Anuncia una nueva convocatoria única del Plan I+D+I con siete subprogramas, para simplificar y racionalizar estas ayudas.
Finaliza desgranando los logros obtenidos en estos años, sobre todo aumentos de inversión (de bienes de equipo y en la inversión de I+D de la empresa llegando al 20% en 2006) y avances en productividad (los más altos de los últimos 10 años).
Parece que el Gobierno apuesta por la producción de contenidos (aprovechando el idioma), y en ese sentido se anuncia un foro de Contenidos Digitales FICOD que se celebrará la semana que viene en el SIMO.

En cuanto a la zona de posters, podemos destacar “Proyecto OPUCE (Open Platform for USer-centric service Creation and Execution”, “Convergencia en la supervisión de redes y servicios” y “Creación de Procesos de Negocio Semánticos”.


Tags: , , , , , , , , ,

Visualizar los paradigmas de programación

Publicado el Agosto 22, 2007 por Alonso Alvarez 
Archivado bajo Tecnologías

1 Malo2 Mejorable3 Normal4 Bueno5 Excelente (No valorado aún)
Loading ... Loading ...

Paradigmas que no lenguajes. El mapa está en “Lambda the ultimate“, un blog sobre lenguajes de programación, y muestra los distintos paradigmas (declarativa, imperativa, funcional, …), sus relaciones, y coloca los lenguajes de programación más representativos cerca del paradigma que mejor los representa:
Paradigmas de programación

Vía: Google Reader Blog


Tags: , ,