Lenguajes de programación: El fundador de Java, James Gosling, revela más sobre Java y Android

, Author

Popularidad de los lenguajes de programación: Python supera a Java y Rust sigue subiendo

James Gosling, el padre de Java, uno de los lenguajes de programación más utilizados en el mundo, ha hablado con el investigador científico Lex Fridman sobre los orígenes de Java y sus motivaciones para crear un lenguaje que se utilizaría en decenas de miles de millones de dispositivos y se convertiría en algo fundamental para el desarrollo de Android en Google.

Gosling diseñó Java hace 25 años mientras trabajaba en Sun Microsystems. En 2009, Java sería una de las razones clave por las que Oracle adquirió Sun. Según Oracle, hoy hay 51.000 millones de máquinas virtuales Java (JVM) activas desplegadas en todo el mundo.

Pero mucho antes de la adquisición de Sun por parte de Oracle, Gosling dijo que a él y a un equipo de Sun «les preocupaba que hubiera cosas en el universo de la computación que la industria informática se estaba perdiendo», lo que se convertiría en el actual Internet de las Cosas.

SEE: Hiring Kit: Desarrollador de Python (TechRepublic Premium)

«Se trataba de lo que estaba ocurriendo en términos de hardware informático, procesadores y redes que estaba fuera de la industria informática», dijo.

«Se trataba de todo, desde los primeros destellos de los teléfonos móviles que se producían entonces hasta los ascensores y locomotoras y los sistemas de control de procesos en las fábricas y todo tipo de equipos de audio y vídeo».

«Todos tenían procesadores dentro, todos hacían cosas con ellos y parecía que había algo que pasaba allí que necesitábamos entender».

En esa etapa, C y C++ «eran absolutamente dueños del universo» y todo se escribía en esos lenguajes.

Gosling afirma que su equipo realizó varios «viajes épicos por carretera» en torno a 1990 para visitar Toshiba, Sharp, Mitsubishi y Sony en Japón, Samsung y otras empresas surcoreanas, y recorrió «toda Europa» para visitar empresas como Philips, Siemens y Thomson.

«Una de las cosas que saltaban a la vista era que estaban haciendo todas las cosas habituales de la informática que la gente había estado haciendo 20 años antes», recuerda.

«Estaban reinventando las redes informáticas y estaban cometiendo todos los errores que la gente de la industria informática había hecho».

«Como he trabajado mucho en el ámbito de las redes, íbamos a visitar a la empresa X, que nos describía lo que estaban haciendo en materia de redes, y sin necesidad de nada, podía decirles como 25 cosas que iban a ser un completo desastre».

Descubrir que la industria ajena al mundo de la informática tradicional estaba repitiendo errores anteriores fue una de las razones clave por las que Gosling y sus colegas pensaron que podían ofrecer algo útil en Java.

Sin embargo, también se dio cuenta de que la industria de la electrónica de consumo y la de la informática tenían una visión muy diferente de los clientes, lo que ayudó a informar sobre cómo diseñar Java.

«Lo primero en la lista era que veían su relación con el cliente como algo sagrado. Nunca estaban dispuestos a hacer concesiones por la seguridad. Una de las cosas que siempre me puso nervioso en la industria informática fue que la gente estaba dispuesta a hacer concesiones en materia de fiabilidad para obtener rendimiento», dijo Gosling.

«Sólo hay que averiguar… cómo asegurarse de que si se pone una tostada en la tostadora, no va a matar al cliente. No va a estallar en llamas y quemar la casa», añadió.

Después de esos viajes por carretera, Gosling y la empresa construyeron un prototipo de sistema de control en código C y C++ para artículos de electrónica doméstica, como un televisor y un vídeo. La seguridad era una consideración clave en sus objetivos para lo que se convertiría en Java.

«A principios de la década de los 90 se sabía que la fuente número uno de vulnerabilidades de seguridad eran los punteros, eran sólo bugs, como el 50% a 60% a 70% eran bugs y la gran mayoría de ellos eran como desbordamientos de búfer. Tenemos que asegurarnos de que esto no ocurra. Y eso fue lo original para mí fue ‘Esto no puede continuar'».

Pero a principios de este año, Gosling leyó un informe de noticias sobre el equipo de Chromium que encontró que el 70% de los errores de seguridad en la base de código de Chrome eran errores de gestión de memoria y de seguridad.

«Chrome es como una pieza gigante de código C++. Y entre el 60% y el 70% de todas las vulnerabilidades de seguridad eran estúpidos trucos de punteros. Y pensé que habían pasado 30 años y todavía estábamos allí», dijo Gosling.

Más allá de las consideraciones de seguridad para Java, quería garantizar la «velocidad del desarrollador».

«Me volví muy religioso al respecto porque había pasado una cantidad ingente de tiempo de mi vida persiguiendo errores de punteros misteriosos. Los errores de puntero misterioso suelen ser los más difíciles de encontrar porque… los que hacen daño tienen una probabilidad entre un millón», señala.

«Cuando haces mil millones de operaciones por segundo, significa que va a ocurrir. Me volví religioso en cuanto a que si algo falla, sucede de forma inmediata y visible. Una de las cosas que realmente atrajo a Java a muchos talleres de desarrollo fue que sabemos que nuestro código se pone en marcha el doble de rápido».

SEE: Stephen Hawking se equivocó al decir que la IA mataría a los humanos (dice el robot)

La programación orientada a objetos también fue un concepto importante para Java, según Gosling.

«Una de las cosas que se consiguen con la programación orientada a objetos es una metodología estricta sobre cuáles son las interfaces entre las cosas y tener muy claro cómo se relacionan las partes entre sí»

Esto ayuda a abordar las situaciones en las que un desarrollador intenta «escabullirse por el lado» y rompe el código para otro usuario.

Admite que molestó a algunas personas al impedir que los desarrolladores utilizaran puertas traseras. Era un asunto de «ingeniería social», pero dice que la gente descubrió que la restricción marcaba la diferencia cuando se construían piezas de software grandes y complejas con muchos colaboradores en varias organizaciones. Dio a estos equipos claridad sobre cómo se estructuran esas cosas y «te salva la vida».

Ofreció una breve crítica al manejo de Java por parte del ex jefe de Android, Andy Rubin, en el desarrollo de Android. Gosling en 2011 tuvo un breve paso por Google tras la adquisición de Sun por parte de Oracle. La demanda de Oracle contra Google por el uso de las API de Java aún no se ha resuelto del todo tras una década de vistas judiciales.

«Estoy contento de que lo haya hecho», dijo Gosling, refiriéndose a su uso de Java en Android. «Java había estado funcionando en los teléfonos móviles durante bastantes años y funcionaba muy, muy bien. Hubo cosas sobre cómo lo hicieron, en particular varias formas en las que como que violaron todo tipo de contratos.»

«El tipo que lo dirigió, Andy Rubin, cruzó muchas líneas. Se cruzaron líneas que desde entonces se han convertido en gigantescos casos judiciales. no necesitaban hacerlo y, de hecho, habría sido mucho más barato para ellos no cruzar las líneas», añadió.

«Llegué a creer que no importaba lo que hiciera Android, iba a explotar. Empecé a pensar que era como un fabricante de bombas»

jamesgoslingusergroupsatgoogleyoutubeb.jpg

James Gosling: «La gente estaba dispuesta a hacer concesiones en cuanto a fiabilidad para conseguir rendimiento».

Imagen: James Gosling/UserGroupsAtGoogle/YouTube

Deja una respuesta

Tu dirección de correo electrónico no será publicada.