Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Buenas a todos.
Ese post es para que den la opinión sobre el futuro del lenguaje de programación Java respecto a la inteligencia artificial.
La verdad, yo era de los que pensaba que las aplicaciones de visión artificial o redes neuronales entre otras tenían que programarse en C/C++ por su alto rendimiento.
Recientemente me enteré de que en la NASA han estado programando módulos (captura de imagen, interfaz de usuario y visión estereoscópica), de la misión Mars en C++ y Java.
http://www.sun.com/aboutsun/media/features/mars.html
Eso me dio a pensar que en el futuro Java puede estar presente en muchas otras aplicaciones por ejemplo, relacionadas con la inteligencia artificial.
Uno de los problemas que le veo a Java es su rendimiento, pero la tendencia por lo que veo es sacrificar rendimiento por seguridad.
¿Veis futuro a Java en aplicaciones orientadas a la robótica?
¿Creéis que vale la pena sacrificar rendimiento por seguridad?
Saludos.
Te hablo desde la ignorancia sobre Java, de cual estoy orgulloso:
La eficiencia del lenguaje de programación es tan importante como voluminoso sea el caudal de información que se tenga que procesar con éste. Lo de la seguridad (supongo que te refieres a la de no cometer fallos al programar), no tiene demasiada repercusión el lenguaje. Java te evita cometer fallos con los punteros (simplemente porque no existen en Java), pero ese no es el único fallo que se comete programando y, sin embargo, suele ser el fallo más facil de cazar. Lo que quiero decir es que si estás escribiendo código y pones '+' en vez de '*'... eso sí es dificil de cazar y ningún lenguaje te va a ayudar en eso.
Por otra parte, es poco común e insultantemente ineficiente programar algoritmos de visión artificial de bajo nivel, ya sea en Java, C++, Python o lo que quieras. La única, y digo *única*, forma de programar eficientemente un algoritmo de visión de bajo nivel es usando las instrucciones superescalares del repertorio de los nuevos procesadores. Cuando digo *bajo nivel* me refiero a un algoritmo de bajo nivel de abstracción, como por ejemplo, pasar un determinado filtro a una imagen.
Todo el mundo pensará: "Este tipo está colgado, ahora mismo voy a ponerme yo a empollarme las instrucciones SSE3...". No es eso lo que quiero decir, lo que quiero decir es que lo ideal es usar una librería eficiente que ya esté hecha y no reinventar la rueda malamente. Mi elección cotidiana es C++, usando las librerías IPP de Intel que te dan un rendimiento de la hostia.
Hoy día casi todos los buenos lenguajes te permiten llamar a funciones hechas en C/C++: Python te deja, Java te deja, Ruby te deja... Así que la solución para la visión es: usa el lenguaje que te de la gana, cualquiera, pero asegurate de poder enlazar con funciones eficientes. De esta forma el código irá a la velocidad de código ensamblador optimizado para usar el microprocesador al máximo, pero en tu lenguaje favorito.
Eso hablando de visión artificial, que es lo que consume más recursos. Cuando sales de visión el caudal de datos a procesar disminuye drasticamente, por lo que la discusión no tiene cabida y lo mejor es usar el lenguaje con el que más cómodo te sientas.
Aprovecho para recomendar pasarse a programación orientada a componentes. Ice (www.zeroc.com) funciona en Linux y Windos para C++, Java, Python, Ruby y PHP. Esto nos permite (además de muchas cosas mucho más importantes) usar varios lenguajes de programación a la vez. Gracias a la escalabilidad conseguida con la programación orientada a componentes hemos hecho RoboComp (C++ y Python): http://robocomp.wiki.sourceforge.net/
De todas formas a pesar de que Python me pone, a mi el C/C++ que no me lo quiten.
Java puede ser compilado completamente y ejecutado directamente sin pasar por la máquina virtual.
Además existen procesadores que se han creado específicamente para ejecutar programas de java. (TINI de Dallas: http://www.maxim-ic.com/products/microcontrollers/tini/ )
S2
Ranganok Schahzaman
Las opencv son muy rápidas.
¿Hay librerias IPP libres o hay que pagar?
Mi eterna pregunta ¿Como añado graficos a mi C++ de forma fácil sin cargar con mucho código? (no me gusta java pues es dificil trabajar con archivos)
Luis, enhorabuena por tu fructifera estancia en UK.
Animo con tu proyecto que estas entrando en un campo muy interesante y con mucho futuro.
La verdad es que no se cuales son tus intenciones a futuro, supongo que estarás valorando el irte a trabajar fuera o cualquier otra opción de trabajar en una compañia importante. O la opción de investigar en la universidad que por mi parte tiene todos los respetos.
Personalmente te animo a que intentes una incursión en el mundo empresarial, ya sabemos que todo el tema de gestión y demás queda un poco lejos de la tecnología pero es necesario.
No se si conocerás a la gente de Iniciativa Joven, están en Mérida pero creo que en Cáceres tienen una oficina, si no recuerdo mal están donde termina el paso Canovas hacia Plasencia. Vete por allí y pideles pasta, también puedes conseguir un despacho para poder trabajar hasta que tu proyecto sea solvente.
Te comento, si pierdes tres o cuatro años de tu vida intentando construir tu proyecto, a 40 o 50 años vista es irrelevante (económicamente hablando). Cuando te jubiles practicamente el que haya trabajado 40 o 45 años podrá haber ahorrado lo mismo, si consigues tener 600 mil euros, el dejar de trabajar estos años repercutirá en tener 500 mil aprox. que prácticamente dos personas con esos recursos pueden hacer las mismas cosas en el mundo en el que nos encontramos.
En cambio si consigues llevar tu proyecto a buen puerto habrás conseguido lo que muy pocos consiguen, sentirte realizado y tener libertad económica (tiempo libre para disfrutar).
Trabajar para una multinacional en la informática es la minería del siglo XXI. Las empresas grandes tienen los pies de barro, en cualquier equipo hay 10 personas y practicamente en la mayoría solo dos o tres del equipo están realizando la mayor parte del trabajo, esto repercute en servicios con precios desorbitados, un monton de problemas en los proyectos (uufffffff retrasos) y perdida de innovación.
Bueno pido disculpas por la parrafada, pero si quieres analizar la realidad de la vida desde otro punto de vista y necesitas algún aporte que derive de la experiencia y conocimiento del mercado empresarial y laboral puedes enviarme un MP estaré encantado de contestarte.
Suerte.