lunes, diciembre 08, 2008

Multicore: Profesionales e Industria

"Multicore: Profesionales e Industria" es el título de un artículo de dos páginas en la revista Sólo Programadores (Nº 164) escrito por José Antonio Álvarez Bermejo. Este hombre es profesor en la Universidad de Almería, pertenece al departamento de Arquitectura de Computadores.
Yo nunca había comprado esta revista, me parece cara (6€, cuando mucho de su contenido, o parecido, se puede adquirir gratis por internet), pero como estaba en la estación de autobuses de Granada a las 6:00 de la mañana y tenía que esperar a que mi novia viniera a buscarme (ella estaba en un congreso de enfermería donde ganó el premio a la mejor comunicación oral!) pués fuí al quiosco de la estación y me compré la revista y me puse a leer.
En aquel entonces, hace dos meses, sólo leí unas cuantas páginas que me resultaban, a priori, interesantes. Una sobre XPath y otra sobre XSLT. Hace un par de días volví a coger la revista que tenía tirada por encima de la cama y, comenzando a ojearla desde el final hasta el principio, me topé con un articulo que se titulaba igual que este post. Y me lo leí.
Al contrario de lo que parece no es un texto sobre la arquitectura de los nuevos microprocesadores; es un texto sobre como esta nueva arquitectura de varios nucleos puede afectar a la industria del desarrollo de software.
La mitad del artículo habla de como en los últimos años la arquitectura de los micros no han cambiado, únicamente subían de Mhz y listo. Esto hizo que los conocimientos sobre arquitectura fueran cada vez menos importantes hasta el punto de no ser considerados por algunos como necesarios ¿para que estudiar arquitectura de computadores si es algo que siempre es igual?. Pues no, ahora resulta que va y cambia, aunque algunos programadores no se han dado cuenta aún.
Una vez nos presenta el pasado y el presente del hardware nos habla del presente del desarrolo de software: el Ingeniero y el Experto Express. El primero es aquel que tiene una base sólida, adquirida principalmente en la universidad, y quizá no muy preparado en lo que la industria demanda. El segundo es todo lo contrario, alguien especializado y preparado en para solventar lo que actualmente la industria demanda. Un ejemplo sería un Ingeniero Infomático titulado y el segundo alguien sin carrera pero con un curso de 1 año en JEE (por ejemplo). Está claro quien de los dos empezará a sacar trabajo en un puesto estandar de los demandados en Infojobs: "se busca programador junior J2ee, se valora experiencia en Struts, no se necesitan estudios mínimos. 12.000 - 16.000 € brutos/año".
Y ahora viene lo que me ha resultado interesante del artículo, porque según augura este profesor: "Las arquitecturas multicore habrán supuesto una formalización en la separación entre ingenieros y otros profesionales. Es decir, habrá desarrolladores que implementan programas en paralelo sin saber realmente qué es lo que están haciendo porque otros desarrolladores más avanzados han creado marcos de portación o librerías que les pemitan abstraer los detalles de la computadora en igual forma que SQL abstrae los detalles del almacenamiento físico de los datos. Incluso entre ingenieros habrá una clara división entre aquellos con un fuerte perfil orientado a la arquitectura del procesador y el resto".
Y esto me ha hecho pensar cuantos programadores, ya sean Ingenieros o no, son conscientes de los efectos que tienen sus líneas de código sobre el hardware sobre el que se ejecutan. Cuantos de ellos saben realmente lo que supone hacer un "new". Estoy seguro de que los Ingenieros Informáticos entienden más que otros profesionales lo que están haciendo. De todo hay, por supuesto, pero creo que asignaturas como Arquitectura de computadores o Concurrencia y tiempo real sólo se imparten en las Ingenierías Informáticas.
Por último decir que este hombre como Ing. en Informática y trabajando para la Universidad puede estar "barriendo para su casa"... pero vamos, la idea base sobre la que reflexionar es completamente objetiva.

4 comentarios:

  1. Hola

    La cuestión de programar un micro de múltiples núcleos requiere pasar por taquilla en cuanto a conocimientos se refiere; como bien dices, ¿quien sabe realmente qué hace un ordenador cuando haces un 'new'? alguien sabe realmente que es dependiente del lenguaje de programación? alguien sabe que es una máquina virtual? ...y un lenguaje interpretado? ...qué es una arquitectura superescalar? y un procesador vectorial...? son preguntas que yo estudié en la carrera en el cps y que realmente por ahí, y la verdad es que viajo bastante y toco muchas empresas, pocas personas saben realmente qué se hacen; las palabras ingeniería informática brillan por su ausencia, lo que importa en España es ganar dinero empresarialmente sin mirar quien desarrolla o hace algo; es más útil un FP o una persona con un cursillo de 150 horas de programación estructurada en Java que un ingeniero, básicamente por que tienen que pagarle más; el salario base es más caro etc etc luego se quejan de que les hacen unos sistemas de mierda, cosa que he visto no en un sitio importante, sino en muchos sitios cosas que realmente son auténtica basura. Pero este comentario algunos lo leerán como una pataleta; ese es el problema, si nos uniéramos todos por la misma causa, se acabarían las tonterías. El mayor ejemplo sobre las retribuciones como ingeniero lo puedes encontrar en una empresa que hace estudios de ingeniería industrial....esta empresa estudia si una máquina es factible desarrollarla o comprarla hecha y a raíz de eso evalúan costes, personal, etc.... en informática es lo mismo, además, una máquina no funciona sola....funciona sobre un hardware...que un ingeniero industrial no diseña, normalmente se diseña conjuntamente con electrónicos e informáticos, el industrial sólo da la aplicación física, la base del funcionamiento y los materiales necesarios para abaratar costes; pero después hace falta un software...y ahí un industrial no tiene ni puta idea hablando en plata.
    Esto explicado pasa en cada cosa con la ingeniería informática, es una ingeniería de futuro, otra cosa es que lo quieran ver, ah y que no me digan de ciencias etc...por que más matemáticas que he estudiado yo, lógica difusa, autómatas y electrónica no ha estudiado otra persona de otra carrera.

    Ahí queda eso, Saludos

    ResponderEliminar
  2. Vaya comentario! el más largo en mi blog. Gracias por la aportación

    ResponderEliminar
  3. Menuda barrila....
    podias poner algo de porno de vez en cuando

    ResponderEliminar