Cierre de Blog

Después de publicar mi ultimo post , el cual ya he borrado me han escrito algunos insultos por lo que cierro y cambio durante un tiempo.

http://programacionsiemens.com/wp-content/uploads/2013/06/cerrado-por-vacaciones.jpg

 

Entrevista a Marta

Como podeis ver despues de hacer la entrevista a Raul Murciano @happywebcoder  (o como yo lo llamo el Obama de ROR) y Jose Carlos Cortizo @josek_net  (el yoda de las recomendaciones) ahora os presento a Marta fue mi profesora en el Máster de Software y Hardware  Avanzados en la Rey Juan Carlos y consigo  no solo engancharme a una tecnología (GPU) sino a sacarme el PHD y a emprender e investigar .

Como en las otras ocasiones  hemos hecho unas preguntas y espero que os guste y os haga pensar sobre todo nos hemos enfocado en Big Data, Cloud, etc .. .

  • Big Data ¿próxima burbuja?
    • Probablemente.
  • ¿Cómo explicarías que es Big Data en 140 caracteres?
    • Capturar, compartir, almacenar, segmentar, visualizar y analizar grandes volúmenes de datos, capturados a gran velocidad y muy heterogéneos
  • Tú eres profesor , como ves el panorama para tu alumnos ¿emigrar,emprender,sufrir?
    • Hace un par de años que les recomiendo emigrar a casi todos, pero también hay que ser realistas, depende de su formación y experiencia previas, de su conocimiento de idiomas, de su situación personal, de sus expectativas.
  • Como ves la programación masiva por GPU para el mundo empresarial?, ¿tiene cabida en él?
    • Sí, pero sin obsesionarse. Cada sector debe buscar siempre la arquitectura más adecuada para ejecutar sus aplicaciones cumpliendo con sus necesidades de rendimiento y ajustándose a su presupuesto, pero también atendiendo a la formación de sus técnicos, a su estrategia tecnológica, etc.
  • OpenSource en tu opinión hacia donde tiende que ir, según la vista de un profesor.
    • Esta sería muy larga de contestar, pero resumiendo mucho: nuevas metodologías de desarrollo, orientación a servicios y nuevos modelos de negocio (la mayor parte de ellos asociados al Cloud y a los dispositivos móviles).
  • Cloud computing futuro?.
    • Supongo que BYOD y Personal Cloud, clouds híbridos y todo lo relacionado con dar soporte a Big Data, Smart Places e Internet of Things. Atención a los proveedores de telefonía como proveedores de servicios para los usuarios de dispositivos móviles. Y la bola de cristal no me da para más.
  • Como investigadora como ves el I+D+I ? crees que la fuga de cerebros y gente cualificada puede ser un problema a la largo plazo?
    • Ya está siendo un problema, y para mi, una de las causas de la crisis actual. No tiene sentido invertir en formar a personas para que luego creen valor en otros lugares

Tips para fechas

Buenas a todos hace mucho que no escribo en el blog y es por que he estado muy ocupado cambiando de países cosas del trabajo, me he decidido empezar a escribir algunos post que os pueden ser interesantes :D.

Una de las cosas que siempre me da problemas es el tiempo saber la semana, restar días o meses ese tipo de cosas, porque es cierto que en PDI por ejemplo hay pasos para ello (la calculadora por ejemplo) pero y esto es importante me he dado cuenta que no siempre son en formatos internacionales o eso me han dicho mis jefes de proyecto.

Para ello he creado una librería con cosas que he ido haciendo y que he pillado de varios sitios con cosas esta en mi repositorio de githib es GPL se puede modificar y mejorar.

Por otro lado también os dejo aquí una formula de sql MySQL:

SELECT year(CURDATE()) anio

, month(CURDATE()) mes
, mod(month(CURDATE())+10, 12) 2mes_ant
, case when month(CURDATE()) in (1,2) then year(CURDATE())-1 else year(CURDATE()) end anio_2mes_ant
FROM DUAL

 

 

Después de una entrevista con un crack ahi va otra de otro crack jose carlos cortizos , es forma parte de la gente Brainsins y su famoso sistema de recomendación, le hemos preguntado sobre sistemas de recomendaciòn,Opensource, BI y como siempre nos ha dado respuestas interesantes espero que os guste. Espero opiniones para la siguiente entrevista opiniones..

  • ¿Cómo explicarías que es data mining en 140 caracteres?

El análisis (utilizando técnicas de IA, estadística, etc.) de grandes cantidades de datos para extraer conocimiento útil para alguna empresa, actividad o persona.

  • ¿Dónde esta el límite de los sistemas de recomendación (es/será “posible” un recomendador que se ajuste en un índice aceptable a mis gustos)?

Muchos sistemas de recomendación ya se ajustan muy bien a los gustos de los usuarios, aunque hay cuando se diseña un sistema de recomendación hay que tener mil variables en mente. Es decir, un sistema de recomendación no es mejor porque todo lo que me recomiende esté 100% alineado con mis gustos, ya que en ese caso no me estaría sorprendiendo ni aportando valor. Por ejemplo, si Netflix me recomienda solo películas que, debido a que todas me interesan mucho, ya las conozco, entonces las recomendaciones no me aportan valor ninguno.

Una buena recomendación tiene que tener en cuenta varios aspectos fundamentales:

* El interés para el usuario (personalización)
* Los aspectos temporales (en algunos dominios las novedades aportan más valor, en otros dominios hay que potenciar la larga cola de productos aunque tengan más tiempo en el mercado)
* La diversidad que está relacionada con la serendipia. El sistema de recomendación ha de sorprendernos (gratamente), para poder ofrecer recomendaciones de calidad. Si me he leído “Canción de Hielo y Fuego”, que me recomiendes “El Señor de los Anillos” seguramente no me aporte valor, porque ya conoceré ese libro, pero si me recomiendas “Jonathan Strange & Mr. Norrell”, un libro también fantástico pero menos conocido, me estarás aportando el gran valor de descubrir un libro que no conocía pero me puede fascinar. Hay que tener en cuenta que las recomendaciones han de servir para descubrir información relevante, y descubrir siempre supone asumir riesgos.
* El contexto en el que estoy buscando información también es muy importante. Hay que tener en cuenta que los sistemas de recomendación ofrecen recomendaciones en función de mi comportamiento en un sitio, y ese comportamiento no siempre es el mismo, ni tiene que ver con mis intereses. Por ejemplo, si estoy buscando un regalo para un amigo, toda la información que busque no tiene que ver con mis intereses, si no con los de otra persona.

En definitiva, se pueden hacer mil cosas y mejorar de mil maneras los sistemas de recomendación, pero lo que es importante es darse cuenta que la evaluación de un sistema de recomendación no ha de estar únicamente ligada a los gustos de los usuarios.

¿Qué áreas recomiendas a tus alumnos para que profundicen de cara a un futuro profesional en la ingeniería informática (y porqué)?

Para mi todo pasa por la web, ya bien sea móvil, social, o desde cualquier perspectiva. Quien no esté cerca de la web, en unos años, lo tendrá muy jodido desde la perspectiva profesional. Desde otra perspectiva, creo que a los alumnos de informática, en general, les hace falta un “baño en emprendizaje”. Es una de las salidas profesionales donde resulta más fácil montar tu propio proyecto, y donde más oportunidades de negocio existen, y curiosamente los informáticos parece que somos los que menos nos damos cuenta.

Yo ya no entiendo la informática desligada de las oportunidades de negocio, y no entiendo como en las Universidades que imparten informática, no se trata el tema de los negocios, startups, etc.

  • ¿La segunda burbuja .com para cuando?

No creo que vuelva a haber una burbuja como la que hubo en el 2000. En el último año, casi cualquier noticia relevante relacionada con alguna .com, como el IPO de Groupon, el futuro IPO de Facebook, o la compra de Instagram, hacen que todo el mundo saque el tema de la burbuja y se pregunte cuando será la siguiente. Pero ya no estamos en el 2000 y las cosas han cambiado profundamente. En el 2000 todavía no había nadie en todo el sector que siquiera hubiera demostrado tener un modelo de negocio viable y los usuarios, con suerte, se contaban por millones. Ahora estamos hablando de cientos de millones de usuarios, o en el peor de los casos, varias decenas de millones, y ya tenemos referentes de gran éxito (como Google) que han demostrado modelos de negocio más que viables.

Está claro que muchas de las empresas de las que hablamos hoy, no existirán en unos meses/años, ya que sigue siendo un sector con mucho riesgo y variabilidad, pero también hay que ver que en subsectores como el ecommerce, ya se está hablando de miles de millones de facturación al año (solo en EEUU), y que “recién llegados”, como Facebook, ya han facturado casi 4.000 millones de dólares en 2011, con casi 1.000 millones de beneficio. No creo que estos números nos digan que estamos delante de una burbuja.

  • ¿Cuanto tiempo dedicas en tu día a día a las diferentes actividades (programar, universidad, empresa, etc)?

Esta es la pregunta del millón, ya que no lo tengo realmente controlado. Pero por hacer un desglose aproximado:

* A lo que más le dedico es a temas de gestión de la empresa (organización de tareas técnicas, hablar con mis socios para reorganizar prioridades, clientes, etc.). A esto le dedico aprox unas 30 horas a la semana.
* A desarrollar le dedico menos de lo que quisiera, en torno a 15/20 horas a la semana. Y dentro de esto, desarrollos “chulos” (que no sean arreglar cosas, o hacer pequeñas adaptaciones para clientes), aproximadamente algo menos de la mitad.
* Al tema docente le dedico aproximadamente 6 horas a la semana, lo justo para las clases y organizar alguna cosa, pero como ya solo soy profesor asociado, trato de hacerlo lo mejor posible con el mínimo esfuerzo, que si no no llego.
* Y luego dedico otras 6 horas a la semana a estudiar un MBA en la EOI (es online).
* Y a “procrastinar” (donde incluyo generar contenidos en los blogs, twitter, etc.) le dedico más de lo que debiera, unas 10 horas semana, pero como soy un friki y lo disfruto, casi ni me entero.

Si fuera capaz de organizarme mejor, y tuviera menos “cambios de tercio”, seguro que optimizaría mucho los tiempos, pero bueno, poco a poco :P

  • Las 5 gemas de tu día a día: ¿que 5 tecnologías son un requerimiento para el área de data mining/recomendación? (englobando desde software hasta lenguajes)

Complicado, ya que hay que mirar mil cosas. Pero cualquier sistema de este tipo tiene que estar sustentando en una serie de principios, y podemos asociar a algunos de estos principios algunas tecnologías:

1.- Analizar adecuadamente los datos: estadística, algoritmos de aprendizaje, filtrado colaborativo, etc.
2.- Estar adaptado a las necesidades de los clientes: aquí es muy importante ofrecer datos de analítica de los resultados, así que controlar temas de analítica web es imprescindible
3.- Todas las características de un software B2B (seguridad, fiabilidad, escalabilidad, etc.): esto está relacionado con mil cosas, pero tener buenos conocimientos de administración de sistemas y configuración de los servidores que utilizas (apache, glassfish, mysql, etc.) es algo crítico

Nosotros a nivel de tecnología utilizamos: Java como lenguaje en el backend, Glassfish como servidor de aplicaciones, MySQL (sobre RDS) como Base de Datos, y para el front básicamente Zend (PHP), bastante JQuery, HighCharts para las gráficas, etc.

  • ¿Como conseguís hacer una recomendación cuando no tenéis información del usuario por que entra por primera vez?

Pues básicamente “generalizando”, y en función de qué tipo de página esté visitando, la generalización es una u otra. Por ejemplo, si llega a la home de la tienda, le podemos mostrar productos más vendidos, los últimos productos, etc. Si es en página de producto, productos similares o complementarios a los que está viendo el usuario. Desde nuestro panel de control permitimos a nuestros clientes que configuren el comportamiento de los recomendadores, ya que en cada dominio, el tipo de recomendaciones a ofrecer varía sustancialmente.

Ahora bien, en lo que hay que trabajar es en tener siempre información sobre los usuarios ;)

  • ¿Futuro de los sistemas de recomendación?

La personalización, en general, es ya una parte importante de la Web tal y como la conocemos. De hecho Facebook, Twitter, etc. han triunfado porque el elemento social les permite ofrecer una experiencia de uso personalizada para cada usuario. En sitios menos “sociales”, como las tiendas online, la personalización pasa por las recomendaciones, y otra serie de elementos, así que las tiendas que quieran cautivar a sus usuarios, necesitan instalar un sistema de este tipo.

¿Por que emprender y sabiendo que la idea es la punta de la flecha que se necesita como esqueleto además de la idea para emprender?
Yo creo que uno ha de emprender porque quiere emprender. Es decir, porque tiene ganas de sacar un proyecto adelante, de hacer crecer una idea y convertirla en algo útil para la sociedad (y si es rentable, mejor que mejor). Emprender significa riesgo, significa seguir un camino algo más complejo, y enfrentarte a mil situaciones distintas cada día, así que o estás convenido o estás jodido.

En cuanto a lo que necesitas además de la idea, yo empezaría diciendo que la idea a veces casi es lo de menos. Y espero que no se me entienda mal, las buenas ideas son muy importantes, pero si no hay un buen equipo detrás, que le eche narices al asunto, se comprometa, y desarrolle un producto que realmente sea útil a sus clientes, entonces la idea no vale nada. Además ideas buenas tenemos todos, lo realmente complicado es ejecutar las ideas. Por resumir puntos básicos:

* Un buen equipo (a ser posible perfiles complementarios, que ayuda muchísimo a tener una visión más global)
* Orientación a ventas (o resultado), ya que los técnicos solemos centrarnos en el producto, y aunque un buen producto es un requisito, todavía más es venderlo
* Pasión y ganas (para pegarse contra todo lo que vendrá en nuestra contra)

  • Tú eres profesor , como ves el panorama para tu alumnos ¿emigrar,emprender,sufrir?

Pues la cosa no es que esté muy bien, pero también ha habido momentos mucho peores. Por ejemplo, en informática ahora sigue habiendo trabajo (y mucho), mientras que después de la burbuja, no había trabajo para casi nadie en el sector, y a pesar de eso todo el mundo salió adelante. Lo que hay que hacer es ser resolutivos con la vida de uno mismo, y buscar de forma proactiva maneras de encontrar un hueco donde uno esté haciendo lo que quiere, y le permita vivir de ello. Eso se puede conseguir buscando trabajo, o montando una empresa o emigrando, dependerá de la visión de cada uno y de lo que le apetezca hacer en la vida.

Pero vamos, dentro de que las cosas no están bien, creo que tenemos la suerte de trabajar en un sector donde ahora mismo la crisis se mide en unos términos muy distintos a la de otros sectores.

  • Este es un Blog de Bi siendo tu quien me introdujo en este mundo (cosa que te doy las gracias), dinos como ves esta tecnología?

Pues como casi todas las tecnologías, el tema BI, tuvo su momento y ahora se habla bastante menos del tema. Y no es porque haya perdido importancia, si no porque los “buzzwords” se reconvierten. Ahora el tema de moda es Big Data, y hasta los que trabajan en BI prefieren hablar de Big Data. Y esto, en el fondo, es bueno, ya que el concepto sigue estando ahí y por otra parte, el que haya perdido cierto poder mediático significa que los conceptos de fondo se están integrando de forma mucho mas transversal.

Las empresas ya hablan de dashboards operativos, cuadros de mando, etc. lo que quiere decir que la necesidad la tienen, y por tanto el tema BI sigue siendo muy relevante (y lo será cada día más, según las empresas almacenen más y más información sobre su operativa).

  • OpenSource tu opinión hacia donde tiende según la vista de un profesor/emprendedor

Para empezar, mi visión global sobre el Open Source es que ha cambiado radicalmente el panorama TI C, aunque por otro lado ya se ha normalizado dentro del sector. Es decir, si hace 10 años esto parecía una batalla entre libre y propietario, ahora ves soluciones de todo tipo y no tanta polémica.

Como profesor, creo que el software libre es una herramienta perfecta para que los alumnos de carreras como informática puedan aprender de una forma práctica, contribuyendo a proyectos libres, o liberando los desarrollos que hacen. Por desgracia, todavía no tenemos esta mentalidad en España y en casi ninguna Universidad se motiva a los alumnos a que contribuyan a proyectos Open Source como una forma de aprendizaje.

Como emprendedor, creo que el Open Source ha permitido que estemos en un punto donde montar una empresa tecnológica es realmente viable. Si no fuera por los Apache, MySQL, RoR, etc. montar una startup de Internet supondría un desembolso inicial en licencias que harían inviable la mayoría de los proyectos.

No nos damos cuenta, pero a nivel económico y global, el Open Source ha contribuido de forma radical a una transformación económica a gran escala.

MySQL

Buenos días,

Adjunto a este post esta una charla sobre optimización de MySQL tanto la presentación como el vídeo.

Tambien adjunto una presentacion que se comente en la primera sobre particiones de MySQL  que siempre se nos pasan.

Camino de ida y vuelta

Buenas a todos,

hace ya mucho que no hago un post, no es por falta de ganas ni por falta de temas, sino por tiempo.Pero ahi va.

Desde hace tiempo en Pentaho hay una bicefalia , es decir, entre la CE y la EE, empieza haber cambios grandes , ¿por que?, pues la respuesta es facil Pentaho no le interesa la CE. La semana pasada hable con un par de partners de Pentaho uno Español y otro de UK  y me confirmaron las sospechas , el nuevo CEO tiene la inatencion de cerrar Pentaho y pasar a un modelo mas cerrado por eso los avances van siempre a la EE. Lo unico que falta segun me conetaron es convencer a Julian que ha sido el mas reticente a este cambio pero a la larga Pentaho sera cerrado.

Como nos va a afectar a los que usamos y desarrollamos para la CE pues la verdad no estoy muy seguro pero nos va a perjudicar, eso seguro. El abandono por parte de Pentaho de la version CE tiene su maxima expresion en PEntaho4. El cambio a mejor , todo hay que decirlo tiene cosas que son muy inetresantes y que se reclamava hace mucho tiempo como:

  1. Parametrizar vistas de manera fácil
  2. Rankis  en las vistas
  3. Roles de Mondrian
  4. etc…

pero el cambio mas fuerte no han sido esos sino el enfoque sobre el agil BI y hadoop que solo se puede ver en la version de pago.

A todo esto la verdad el CEO Quentin Gallivan , no se si va a luchar por el modelo cerrado pero el que se quede al mando de la version CE tiene que empezar a pensar en el futuro de esta linea quizá un cambio en el modelo de negocio seria lo suyo y centrase en el mundo del Bi hacia las NOSql y la nube.

Solo el tiempo lo sabre pero esto es un camino de ida y vuelta pero¿ Pentaho es Bi open Source?

Opiniones.

Desde hace un tiempo vengo intentado en cada proyecto que voy introducir RoR en los cuadros de mando y cosas similar , mi gran problema es el desconocimiento de la tecnología y sobre todo Java.

He pedido a un amigo que además es una estrella sobre el tema  una mini entrevista con algunas preguntas sobre RoR , no es para iniciarse pero si para que les pique el gusanillo y se indague mas .

Como no soy  un experto  he pedido ayuda a gente que si lo son así que si ven alguna cosa que no cuadre o no les guste ya sabes comentario.

¿Que es RoR [1]?

Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye a través de RubyGems, que es el formato oficial de paquete y canal de distribución de bibliotecas y aplicaciones Ruby.

Ahoa que tenemos mas o menos una ida muy muy muy …. muy basica de lo que es  vamos con la entrevista:

  • ¿Como esta el RoR en San Francisco (SF)?

Pues la verdad es que en plena forma. En SF hay muchísimas start-ups y muchas de ellas basan su tecnología en la web. Rails encaja muy bien con la filosofía de una start-up: permite prototipar muy rápido sin que el código deje de ser mantenible, ir refinando el prototipo mediante iteraciones cortas, incorporar gente al equipo es fácil porque todo el mundo sigue las mismas convenciones… Aquí se han dado cuenta de todas estas ventajas y, pese a que hay una cantidad tremenda de empresas… siguen haciendo falta programadores!

  • ¿Como te has adaptado a SF?

SF es una ciudad muy acogedora, siempre encuentras alguien dispuesto a orientarte o echarte un cable. Tengo la sensación de que muchos de sus habitantes también proceden de otros sitios y hay cierto ambiente de solidaridad.

Eso sí, es una ciudad muy cara, especialmente el tema del alojamiento está por las nubes. En nuestro caso hemos optado por vivir en las afueras, en Berkeley: en 20 minutos de BART (parecido al metro) estamos en la ciudad y es un sitio más pequeño que encaja muy bien con nuestro estilo de vida (venimos de vivir en un pueblecito de la Costa Brava). Nos gusta tener la ciudad cerca para hacer alguna escapada de vez en cuando, pero para el día a día preferimos un sitio más tranquilo… será que nos hacemos mayores :D

El idioma es sin duda mi punto débil, pero es parte de lo que quiero mejorar durante el tiempo que esté aquí. Por suerte mis compañeros de trabajo son encantadores y tienen una paciencia tremenda conmigo.

Lo que no podemos evitar es echar de menos a la familia: por suerte podemos hablamos por videoconferencia muy a menudo y les mantenemos informados por facebook para compartir con ellos un poco de nuestro día a día. Tener la familia y los amigos lejos es sin duda lo que más nos cuesta de estar aquí.

  • ¿Como ves Ruby y RoR desde un punto de vista tan privilegiado como heroku?

Heroku aloja miles de aplicaciones basadas en Rails y en ese sentido  sí es un punto de vista privilegiado porque puedes ver cómo aumenta el número de empresas que apuestan por Rails. Nuestro equipo de ventas nos informa cuando detecta alguna empresa conocida adopta nuestra plataforma y por suerte ocurre bastante a menudo. Por otra parte, Heroku utiliza internamente muchísimos proyectos open source desarrollados en Ruby. En todos ellos ves que la evolución no para y que tienen un ritmo de actividad impresionante, igual que impresiona el número de grupos locales y de conferencias dedicadas a practicar y difundir las bondades de Ruby y Ruby on Rails por todo el mundo. Por todo esto creo que tanto a nivel de popularidad entre las empresas
como de actividad por parte de la comunidad Ruby y Ruby on Rails están en un momento dulce.

  • Que crees que le falta a RoR para difundirse mas?

Tiempo. Creo que en las tecnologías, como en muchas áreas de conocimiento,cada persona tiene distintos grados de interés y de
permeabilidad hacia las novedades. Diría que tanto Ruby en el campo de la programación como Rails en el del desarrollo web han hecho suficiente “ruido” como para que la gente que tiene interés en estar al día haya oído hablar de ellos.
También creo que esa entre esa gente se ha creado suficiente masa crítica de usuarios como para darle entrada en el mundo empresarial, y que las empresas que tienen interés y se lo pueden permitir han empezado a probar Ruby y Rails con pequeños proyectos. Creo que es importante hacer esta puntualización sobre “las empresas que se lo pueden permitir” porque hay empresas que, o bien porque se dedican a temas en los que Ruby y Rails no encajan, o tienen una estructura demasiado rígida que les impide evaluar nuevas tecnologías (lo cual me parece peligroso a largo plazo si la tecnología juega un papel importante en su negocio).
El siguiente nivel de “permeabilidad” serían las personas y empresas que sólo prueban y aprender nuevas tecnologías cuando no les queda más remedio, porque el mercado se lo exige. Ese paso es con diferencia el  más lento y sólo el tiempo dirá si Ruby y Rails llegan a penetrar a ese nivel, pero eso depende en gran medida de otros factores diferentes a la difusión.

  • ¿Que crees que le falta a ruby o RoR o en que podía mejorar?

Antes de nada me gustaría resaltar que Ruby no es el lenguaje perfecto ni Ruby on Rails el framework ideal para desarrollo web porque “there are no silver bullets”.
Vamos con Ruby:
– a nivel de sintaxis es un lenguaje muy conciso pero me gustaría que lo fuera un poco más (por ejemplo soy fan de la tabulación de python vs el “end”).
– del desarrollo del lenguaje en sí apenas conozco nada así que poco puedo aportar. Si acaso comentaría que en alguna de las listas
oficiales (ruby-dev) aún se utiliza japonés y yo unificaría en todas el uso del inglés.
– en cuanto a las librerías creo que rubyems, pese a ser un proyecto indispensable para cualquier programador Ruby, aún está a mucha distancia por ejemplo del CPAN de Perl.
– para terminar, siempre le pediremos a ruby más rendimiento y menos consumo de recursos: por suerte hay gente muy buena trabajando en las diferentes implementaciones de Ruby así que veremos mejoras.

En cuanto a Rails:
– la versión 3 ha traído una fuerte reestructuración interna: ahora Rails es mucho más hackeable pero creo que el rendimiento (al menos en modo desarrollo) se ha resentido mucho, así que me gustará ver si mejora en ese aspecto.
– la documentación, tanto a nivel de API como de tutoriales y guías de buenas prácticas, es fundamental para facilitar la adopción y uso de un framework. Por suerte gente como Xavier Noria han dado un paso al frente y con un trabajo diario han conseguido generar una documentación magnífica además de facilitar la participación de cualquier interesado en corregirla o completarla, espero que más gente se anime a colaborar en este apartado.
– como twitteaba hace poco @mgnoriega, es bueno ver que tras una etapa de consolidación Rails está de nuevo innovando: me gustará ver en funcionamiento la gestión automática de assets y su integración con coffeescript en su siguiente versión. Era algo que hasta ahora se gestionaba con plugins: espero que siendo los nuevos defaults su adopción crezca entre los desarrolladores, muchos usuarios se verán beneficiados al visitar webs con contenidos comprimidos y optimizados para su descarga y cacheo.

  • ¿Quizá uno de los aportes de RoR sea la metaprogramacion aplicada?

Sí y no. Yo creo que la metaprogramación es buena cuando sirve para evitar repetir código, pero creo que en algunas versiones anteriores de Rails se llegó a abusar demasiado de ella: algunos fragmentos eran demasiado “exóticos” y eso dificultaba corregir errores o simplemente comprender cómo funcionaban. Creo que hay que buscar un compromiso entre la elegancia y la legibilidad del código y creo que en ese sentido Rails ha madurado bastante.

  • ¿Que ventajas ves a ROR frente a PHP y al todo poderoso JAVA?

La primera ventaja que yo veo es la sintaxis: creo que Ruby es un lenguaje muchísimo más conciso y elegante que PHP y Java. Hay gente que no le da importancia a estas cosas, pero a mí me parece fundamental que el código sea siempre fácil y rápido de leer, mantener y modificar. En ese sentido creo que Ruby es mejor que PHP (cuya sintaxis para trabajar con orientación a objetos siempre me ha parecido un apaño) y que Java (que en mi opinión tiene una sintaxis que conduce a diseños demasiado recargados).

Para mí, hasta hace poco tiempo PHP era una alternativa válida frente a Rails cuando necesitabas desarrollar una web muy sencilla. Con la aparición de rack y Sinatra no encuentro un ejemplo en el que optar por PHP. Otra ventaja que tenía PHP era su ubicuidad y su facilidad de despliegue: con Heroku tardas menos de un minuto en crear y pasar a producción una aplicación Ruby… Así que yo ya no le veo ninguna ventaja a PHP.

Java tiene un mercado empresarial grandísimo en varias plataformas diferentes y por tanto hay mucho dinero invertido, no se dejará de utilizar de la noche a la mañana y seguro que mantiene una posición privilegiada en mercados concretos. Eso sí, creo la desaparición de Sun supone un revés muy importante, y no sé si Oracle tiene muy claro qué hacer con lo que ha comprado… Diría que Java es como los abuelos cascarrabias de las películas: le queda mucho tiempo entre nosotros pero cada vez menos gente quiere hacerse cargo de él.  Como anécdota, Jonathan Schwartz (ex CEO de Sun) utiliza Rails en la empresa que fundó tras vender Sun, y no creo que le falten contactos ni recursos para contratar profesionales Java de primer nivel :D.

  • Cómo evitar que ROR crezca hasta hacerse inmantenible como JAVA?  ¿Está RoR hecho para el mundo Enterprise?
    Las aplicaciones de mi empresa tienen muchos usuarios… ¿Rails escala?  ¿Crees que hay mundo después de java?

(Agrupo estas tres preguntas para darles una respuesta común).
Creo que con la tecnología que tenemos hoy en día, los culpables de que un proyecto sea difícil de mantener somos las personas y no los lenguajes o frameworks que utilicemos. Los plazos de entrega irreales y la desgana a la hora de programar pueden darse tanto en proyectos Rails como en proyectos Java. Sí creo, como te decía antes, que creo que Ruby ayuda a tener un código más mantenible que Java… pero durante mi tiempo de freelance he visto aplicaciones Rails cuyo mantenimiento debe ser un infierno, así que usar ruby no asegura nada.
En el 2008, yellowpages.com explicaba en conferencias cómo había migrado de Java a Ruby on Rails. El código pasó de 125.000 a 20.000 líneas, se alegraron de comprobar que había mejorado muchísimo su mantenibilidad y seguían sirviendo más de mil millones de páginas al mes. Como ejemplo extremo de escalabilidad tenemos empresas como twitter o facebook que han probado distintas tecnologías y han terminado ajustándolas a medida para que se adapten a lo que necesitan. El límite de Rails parece que está entre ambos ejemplos pero lo desconozco porque no he trabajado en proyectos de esa escala.

  • Ya tenemos muchos programadores formados… ¿Compensaría fórmalos en RoR?

Yo lo haría si fuera mi empresa y pudiera permitírmelo. Como mínimo, aunque no quieras cambiar de tecnología, seguro que sacarían algunos patrones interesantes que poder aplicar con la tecnología que utilizan actualmente.

  • ¿Serían nuestros programadores más felices trabajando con RoR?

No lo sé, puedo decirte que yo sí lo soy (he trabajado previamente con PHP y Java).

[1] wikipedia.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.