Are we our mind? Dan Siegel at TEDxPrague 2013
Los lenguajes de programación comerciales actuales: - C ++ y Java, en particular, son demasiado complejos y no se adaptan adecuadamente a los entornos informáticos actuales, argumentó el ingeniero distinguido de Google Rob Pike en una charla el jueves en la Conferencia de Código Abierto O'Reilly.
Pike se defendió "lenguajes de programación industrial" durante su conferencia magistral en la conferencia en Portland, Oregon.
"Creo que estos lenguajes son demasiado difíciles de usar, demasiado sutiles, demasiado intrincados. Son demasiado detallados y su sutileza, complejidad y verbosidad parecen irá aumentando con el tiempo ", dijo Pike. "Están sobrevendidos y se usan demasiado ampliamente".
Pike detalló las deficiencias de tales idiomas como una forma de describir los objetivos que él y otros ingenieros de Google tienen para un nuevo lenguaje de programación que desarrollaron, llamado Go.
Como ilustración de la complejidad de tales idiomas, Pike mostró algunos ejemplos de código C ++. Un ejemplo fue una declaración variable que se extendía casi a lo largo de toda una línea de la pantalla.
"¿Cómo tenemos cosas como esta [llegar a ser] la forma estándar de informática que se enseña en las escuelas y se usa en la industria? " preguntó, retóricamente. Este tipo de programación "es muy burocrático. Cada paso debe justificarse para el compilador", dijo.
Aunque Pike admitió que estaba siendo algo bromista, aseveró que aún se deben hacer tales preguntas. C ++ surgió debido a la frustración de las personas al trabajar con el lenguaje C de bajo nivel, y Java surgió como una forma de simplificar C ++. Con el tiempo, sin embargo, se agregaron nuevas características a ambos lenguajes, haciéndolos más y más complejos.
"El ruido viene con sofisticación", dijo.
Pike también agregó que tales idiomas se desarrollaron antes del advenimiento del procesamiento multinúcleo. y una red generalizada, por lo que no se adaptan fácilmente a estos nuevos entornos.
Pike no es el único empleado de Google que expresa su insatisfacción con los lenguajes tradicionales de grado comercial.
En la conferencia anual de USENIX el mes pasado, el ingeniero de Gmail Adam de Boor sorprendió a la audiencia al notar que el servicio de Gmail de la compañía estaba escrito enteramente en JavaScript, y que todo su código, alrededor de 443,000 líneas, fue escrito a mano.
Señaló que aunque Java es más expresivo, también es más detallado. "En este momento para mí, es una cuestión de elección qué idioma se utiliza", dijo de Boor.
JavaScript es uno de un lote completo de idiomas, otros incluyen Ruby y Python, que se han desarrollado en los últimos 10 años en respuesta a la creciente complejidad de C ++ y Java. Pero aunque tiene una sintaxis más simple, dichos idiomas también tienen sus inconvenientes, argumentó.
Estos nuevos lenguajes tienden a ser más lentos, no se escalan mejor y pueden albergar más errores, explicó Pike.
Los idiomas tienden a ser interpretados en lugar de compilados, lo que significa que los programas escritos en dichos idiomas no se compilan antes de ejecutarse, por lo que tienden a ser más lentos como resultado. También tienden a ser tipificados dinámicamente, lo que significa que los programadores no necesitan especificar qué tipo de datos contendrán sus variables.
"La tipificación dinámica no es necesariamente buena. Se obtienen errores estáticos en el tiempo de ejecución que realmente debería ser capaz de capturar en tiempo de compilación ", dijo.
Con todo esto en mente, Pike describió Go como un intento de fusionar los mejores atributos de ambos conjuntos de idiomas.
" Go es un intento de combinar la seguridad y el rendimiento de lenguajes tipados estáticamente con la comodidad y la diversión de los lenguajes interpretativos de tipado dinámico ", dijo, antes de agregar," en la medida en que tenga éxito, tendrá que juzgar por usted mismo ".
Un miembro de la audiencia, Larry Augustin, el CEO del proveedor de software de administración de relaciones con clientes SugarCRM, estuvo de acuerdo con la evaluación de Pike de que C ++ y Java se volvieron demasiado complejos, aunque señaló que esto generalmente ocurre con todos los idiomas a medida que crecen para satisfacer una gama más amplia de casos de uso.
"La razón por la cual estos idiomas han crecido en complejidad es porque cuanto más se utilizan, más errores y ambigüedades hemos encontrado, y los intentos de eliminar esas ambigüedades y errores han creado algo más complejo", dijo Augustin, que tiene una Experiencia en ingeniería de software y diseño de lenguaje de programación.
"Aprecio su objetivo", dijo acerca de los esfuerzos de Pike. "La pregunta es ¿puede alcanzar su objetivo de resultado? O Go [se vuelve más complejo] a medida que más gente lo usa", dijo Augustin.
Joab Jackson cubre software empresarial y noticias de última hora sobre tecnología general para The IDG News Service. Sigue a Joab en Twitter en @Joab_Jackson. La dirección de correo electrónico de Joab es [email protected]