Mostrando entradas con la etiqueta 2018. Mostrar todas las entradas
Mostrando entradas con la etiqueta 2018. Mostrar todas las entradas

sábado, 23 de diciembre de 2017

¿Cómo podría ser el futuro de los robots?

Se han Preguntado:

¿Cómo podría ser el futuro de los robots?

 

 

 

La tecnología de los robots no sólo debe crecer en el ámbito de mejores estructuras o desarrollo de compuestos (como el uso del enlace supercovalente del silicio para formar estructuras de microprocesadores), sino también en el desarrollo de la inteligencia artificial.
Si bien la Ley de Moore dice que el desarrollo tecnológico se duplicará por año (específicamente dice que el número de transistores en un microprocesador se duplicará por cada año, pero que luego se extendió el plazo a dos años por cuestiones de exactitud), los robots han avanzado mucho en cuanto a nuevos materiales con los que puedan soportar las nuevas funciones que se les atribuyen y para las que se les necesitan.
La ley de Moore:
Aunque los pasos de investigación en robótica parezcan agigantados, no se ha logrado el progreso deseado en I.A lamentablemente. ¿Pero cómo es que los sistemas informáticos (como mi smartphone) tienen cada vez mayor cantidad de funciones? ¿Eso no los hace más inteligentes?
Pues sí, pero el mayor desafío en lo que a robots respecta es imitar las funciones de un cerebro (puede ser humano o animal, en todo caso lograr aunque sea lo último sería un gran avance), objetivo que aun no se ha conseguido, y nos falta demasiado camino por recorrer.
En primer lugar, el ser humano posee la capacidad de interpretar situaciones y analizar espacios a una velocidad increíble y percibir nuevas situaciones con la capacidad de tomar decisiones.
Para ponerlo más claro:
  • Cuando una persona ingresa a una habitación y ve una mesa, de inmediato procesa la información y sabe lo que esto significa, de manera que al salir de la habitación e ingresar de nuevo, la mesa seguirá siendo una mesa.
  • Pero cuando un robot ingresa en la habitación (este experimento fue realizado por el MIT para ver los avances en I.A.), este interpreta todo el espacio como un montón de líneas y figuras tridimensionales, luego de procesar todo, recién puede decir que lo que ve es una mesa. Pero al sacarlo y hacerlo entrar nuevamente, repite su proceso observando otra vez líneas y figuras tridimensionales.
  • La diferencia más notable, es que aunque cambiemos de posición o incluso la pongamos boca abajo, las personas podemos reconocer a la mesa, cosa que sería toda una odisea para un robot en la actualidad.
Esto demuestra que la investigación no ha avanzado al doble por año (como pudo imaginarse Moore) Es más, actualmente no podemos imitar el cerebro de un insecto con unos cientos de neuronas, pues a pesar de esta limitación cerebral, estos pueden maniobrar en una habitación tridimensional sin errores, cosa que un sistema con I.A. actual aun no consigue (el MIT lo intentó, pero el resultado fue un insecto robótico que no podía volar sin estrellarse con las paredes u objetos de la habitación).
Lo irónico es que las máquinas realizan actividades que serían consideradas imposibles para un cerebro humano promedio (operaciones matemáticas complejas, probabilidades en el ajedrez, etc.) pero sufren infinitamente para realizar actividades elementales (atravesar una habitación, tomar decisiones en un incendio, o en un embotellamiento del tráfico, obtener resúmenes de libros, comprender cuentos infantiles, etc.).
Pero no todo son malas noticias, pues en lo que sí ha habido un avance considerable es en nanotecnología. Las posibilidades de este tipo de investigación son increíbles pues podrían llegar a alterar el funcionamiento del mundo como lo conocemos. Yo destacaría dos aspectos muy interesantes:
  • Metamateriales o la puerta a la invisibilidad. Esto no es algo sacado de una película de ciencia ficción, pues el desarrollo de estas mini-máquinas capaces de desviar la luz podría brindarnos la llave de la invisibilidad óptica.
Actualmente, con la investigación de metamateriales ha conseguido desviar la luz roja con éxito, (al tener mayor logitud de onda) y se busca conseguir la desviación de todas las longitudes de onda existentes.
  • Materia Programable, o la alteración de la composición interna de la materia. Por ejemplo, cambiar una pieza de hierro puro a oro, y no, no es la piedra filosofal; son mini-bots capaces de alterar el orden de los protones en los átomos cambiando así el elemento que forma. ¡Increíble! ¿No?

 

jueves, 21 de diciembre de 2017

¿Qué diferencia a un desarrollador de software de un programador?


Muchos se sorprenden. De repente caen en la cuenta de que los desarrolladores se tienen que vestir de corbata, visitar al cliente, hacer demos y hacer labores comerciales además de todo el enjundio técnico de programar aplicaciones que funcionen. Y ahí es cuando empiezan a entender la diferencia entre un desarrollador de software y un programador. Y entonces es cuando comprenden mejor que el perfil de los clientes de Velneo no es el de un programador en el sentido más restrictivo del término, sino de un analista-programador, de un desarrollador de aplicaciones para empresas.

¿Qué es un desarrollador de software?

La definición que existe en la Wikipedia de desarrollador de software está bastante bien, aunque la definición que la comunidad “wikipedista” ha elaborado en inglés me parece más precisa y completa.
En la primera parte de la definición se aclara que un desarrollador de software es una persona u organización encargada de aspectos que van más allá de picar código y del diseño dentro del proceso de desarrollo del software, y que en general se puede definir como la gestión de proyectos de desarrollo de software. Se especifica que a los desarrolladores de software tambíen se les denomina analistas de software.
Tras esta primera acalaración se explica que cada vez más la diferenciación entre el diseño de sistemas, el desarrollo de software y la programación es cada vez más pronunciada y aparente a medida que pasa el tiempo. Yo estoy de acuerdo con esta idea aunque está claro que existen muchas opiniones y debates en torno a los límites exactos entre unas tareas y otras.
Pero la parte de la definición de Wikipedia que más me gusta es la enumeración de las tareas que suele desempeñar un desarrollador de software que no hace un programador. El desarrollador de software suele desempeñar todas estas tareas:
  • participa en la definición del producto de software que se va a comercializar, incluyendo el análisis de los nichos de mercado al que va dirigido
  • especificaciones del software
  • el análisis de requerimientos del software
  • diseño y mejora de prototipos y de demos para validar requerimientos
  • el análisis del costo-beneficio, que incluye elegir el tipo de arquitectura y el framework que implica tener claro el presupuesto y el calendario de trabajo
  • diseño
  • programación
  • implementación
  • documentación para los usuarios del software desarrollado
  • testeo de las aplicaciones y supervisón del proceso de arranque de prueba de la aplicación
  • mantenimiento
En relación con este tema, Eric Sink, autor del muy recomendable The Business of Software, recomienda a las ISV’s (“Independent Software Vendors”, autónomos y pequeñas empresas de desarrollo de aplicaciones) contratar a desarrolladores y no a programadores -programador entendido como profesional de escribir código que no está dispuesto a hacer muchas de las tareas enumeradas arriba-.

Y claro, en las empresas grandes las tareas enumeradas arriba las realizan entre varias personas pero en un departamento de programación o en una PYME dedicada al desarrollo de aplicaciones en muchos casos hay una sola persona que se dedica a hacerlo todo.

 
biz.