lunes, diciembre 29, 2008

Si eres legal, comparte


¿Cómo te sentirías si un día al salir de tu casa vieses un enorme cartel publicitario insultándote, llamándote delincuente? Supongo que no muy bien. ¿Como te sentirías si además te enterases de que ese enorme cartel encima lo vas a tener que pagar tú?.
Pues esta misma situación sucede con la última campaña contra la piratería. Parece que todavía no se han enterado que compartir no es ilegal, y arremeten contra los ciudadanos para favorecer a unos pocos con su modelo de negocio ya anticuado.

Solo en la campaña "Si eres legal, eres legal" se ha gastado más de un millón y medio de euros de fondos públicos. La web oficial de la campaña está plagada de mentiras, y ya ha sido criticada por varias asociaciones ciudadanas.

viernes, octubre 24, 2008

Enrique Dans y su solución al problema del déficit tecnológico

Esta semana Enrique Dans escribía sobre la Inmigración y Déficit tecnológico. Hace años que sigo este blog y generalmente suelo coincidir con su opinión, pero esta entrada me ha parecido como si no supiera realmente bien lo que está sucediendo en la realidad y se hubiera puesto a escribir a ciegas. Y por lo que veo, no fui el único porque por el momento van 93 comentarios dándole bofetadas a su nuevo post.

En primer lugar, no creo que haya un déficit de programadores, hace apenas 3 años, el salario medio en algunas regiones de un ingeniero recién titulado rondaba los 12.000 €, y esto era así porque sobraban profesionales, había mucha oferta y poca demanda. No creo que en estos tres años haya subido tanto la demanda como para que ahora podamos hablar de déficit. Si realmente hubiera falta de profesionales los salarios de los ingenieros informáticos se alinearían con los salarios del resto de ingenieros, y a día de hoy todavía hay mucha diferencia.

Para mí, la solución a este "posible" problema pasaría por sanear la profesión, hacerla atractiva, y conseguir así que las nuevas generaciones se interesen por estudiar una carrera técnica. Ahora bien, ¿Cómo se sanea? Pues muy fácil, se saneará cuando las empresas españolas se den cuenta que su valor reside en la suma del conocimiento de su gente, y premien más a esas personas que más conocimiento e implicación aporten. Mientras tanto, seguiremos dando palos de ciego.

En lo que le doy totalmente a la razón es a la siguiente frase:
"...una marcada disonancia entre lo que muchas empresas necesitan, y lo que el mercado de trabajo ofrece, apoyada además por la confusión reinante en torno a las características del perfil, su remuneración, etc."

Es una profesión muy joven y las universidades no tienen todavía muy claro qué perfiles son los que más se demandan, ni siquiera estos perfiles están claros por parte de las empresas, pero es un problema debido a la juventud de la profesión, y no creo que se solucione contratando personal extranjero.

sábado, septiembre 06, 2008

Asturias es la región española con las conexiones de Internet más rápidas


Midiendo la velocidad de descarga de mi conexión, acabo de descubrir que Asturias es la región española con las conexiones más rápidas de Internet según Speedtest.net. Además lo es con mucha diferencia, Asturias lidera el ranking con una media de velocidad de descarga de 6627 kb/s, mientras que la segunda es Valencia muy por detrás con una media de 4614 kb/s.

Esto fue posible gracias al operador Adamo, que es el más rápido de España y de los más rápidos de Europa, con una velocidad media de descarga de 37339kb/s.



martes, junio 24, 2008

Simulando algoritmos de ordenación

Ya me gustaría a mí haber encontrado la siguiente página web Animated Sorting Algorithm Definition Demo cuando estudiaba la asignatura "Estructura de Datos y de la Información", en 2º de carrera, donde teníamos que aprender de memoria la mayoría de estos algoritmos, saber sus puntos fuertes y débiles, unos de manera recursiva, otros no.
En fin, si algún día estudiasteis alguno de estos algoritmos os va a resultar interesante verlos todos en acción todos a la vez.

jueves, mayo 29, 2008

Ruby, Python, Groovy y compañía nunca reemplazarán a Java

Últimamente, día sí y día también no cesan en la web artículos donde pronostican la muerte de Java para ser reemplazado por cualquiera de los nuevos lenguajes de moda. Y por fin encuentro un artículo (en inglés) 13 reasons why Ruby, Python and the gang will push Java to die… of old age donde puedes encontrar 13 razones contundentes donde afirman todo lo contrario. El autor se documenta a partir de varios índices de popularidad: TIOBE Index y langpop.com. Coincido en la mayoría de puntos con el autor, pero aquí voy a describir por encima sólo las que me parecen más importantes.


Para empezar vayamos analizando la siguiente gráfica que mide la popularidad de los lenguajes (mayo 2008):

Lo que más llama la atención, además de que Java sea el primero, es que los lenguajes con una sintaxis parecida a Java: C, C++, Java y C# forman el 49,915% de popularidad, casi la mitad que todo el resto de lenguajes. De aquí podemos obtener la primera razón:

1) Los programadores que quieran cambiar de lenguaje, tendrán que hacer más esfuerzo al aprender un lenguaje con una sintaxis muy diferente a la de Java, porque, además de la sintaxis, tienen conceptos también bastantes diferentes.

Si echamos un vistazo al grupo de los candidatos: Python + Ruby + Lisp/Scheme + Lua + SmallTalk + Haskell + Groovy + Erlang + Caml + Scala = 8,985 %. Podemos concluir la segunda razón:

2)Es una cifra insignificante comparada con la primera, además, estos 10 lenguajes hacen mucho ruido, son muchos y los programadores no tenemos tiempo para evaluarlos todos y seguir de cerca su evolución. Si quisiésemos reemplazar a Java por uno de estos diez, ¿cuál elegirías?

Sigamos analizando otra gráfica: la tendencia de popularidad de los últimos 7 años:


En un vistazo rápido podemos ver una tendencia al alta de la popularidad general de todos los lenguajes, hay algunas variaciones temporales, pero a la larga, nada cambia significativamente.

Razón número 3: No hay presión sobre los programadores para que cambien de lenguaje, el mercado ya es estable, los lenguajes que ya existen funcionan aceptablemente bien para lo que fueron diseñados, así que los jefes de proyecto no tienen porqué obligar a los programadores a aprender nuevos lenguajes. Para mí es la razón la más importante de todas.

Otra gráfica interesante es la evolución en las tendencias de trabajo:


Razón número 4: No hay un gran incentivo para cambiar de trabajo, aprender un nuevo lenguaje no tiene porqué traducirse en un aumento de sueldo, al menos, a corto plazo.

Otro hecho importante que hay que tener en cuenta es que los lenguajes populares deben de tener un éxito relativamente rápido, si los programadores ven una evolución muy lenta sobre un lenguaje con varios años de vida, entonces la conclusión es que no merece la pena aprender ese lenguaje, si no ha tenido éxito, por algo será.
Como curiosidad, aquí muestro una lista de los lenguajes pretendientes y sus años de nacimiento:
Ruby (mid 1990s), Python (1991), Lisp (1958), Scheme (1970s), Lua (1993), Smalltalk (1969-1980), Haskell (1990), Erlang (1987), Caml (1985), OCaml (1996), Groovy (2003), Scala (2003)
y aquí la lista con los lenguajes más populares y sus años de nacimiento: C (1972), C++ (1983), Java (1995), C# (2001), BASIC (1964), Pascal (1970), FORTRAN (1957), Ada (1983), COBOL (1959).

La conclusión que saco de aquí es que estos lenguajes han perdido ya el tren, si de verdad desbancarían a Java, ya lo tendrían que haber hecho.

Para terminar, mi conclusión final es que Java será remplazado por un lenguaje que herede todo lo que tenga Java pero que corrija los fallos que tiene Java. Por ejemplo, Java nació a partir de los problemas que los programadores sufrían con C y C++ (complejidad y gestión de memoria). Al evitarle al programador tener que gestionar la memoria, los programadores se evitaron un montón de rompederos de cabeza corrigiendo bugs generados por los memory leaks.

Que quede claro que no desaconsejo nunca aprender o usar alguno de estos lenguajes, de hecho intento seguir la evolución y aprender alguno de ellos (en concreto Ruby y Python), me parecen muy interesantes algunas características y peculiaridades de las que Java podría incorporar.