Imagen destacada

opinión   2023-02-07 2023-02-07   3 minutos de lectura

El Problema de Nombrar Cosas

El Problema de Nombrar Cosas

  0   phil karlton     carbon     programación     0   phil karlton   carbon   programación

El problema de nombrar cosas sucede con mucha frecuencia en nuestro campo de la programación. A veces se debe a una mala traducción, otras a no encontrar un término existente y tener que estirar otro para que cubra el sentido que queremos darle y muchas otras por error. ¿Conoces algunos de estos errores?

El problema de dar nombre a las cosas tiene tradición en el mundo de la informática porque un programador no solo tiene que proporcionar nombre a su proyecto, sino también a cada uno de los elementos que lo componen, como los módulos, las clases, las funciones, las variables y las constantes entre otros. Dar nombre a cada uno de estos elementos puede llegar a ser agotador:

Hay solo dos cosas difíciles en Ciencias de la Computación: la invalidación de caché y nombrar cosas. -- Phil Karlton

Aunque también hay que tener presente la importancia de esta tarea:

La cosa más importante de un lenguaje de programación es su nombre. Un lenguaje no puede tener éxito sin un buen nombre. Recientemente he inventado un nombre muy bueno y ahora busco un lenguaje que encaje. -- Donald Knuth

En el caso de Erlang también sucede, según me dijo una vez Robert Virding, ellos tenían el nombre pensado desde hace mucho y cuando hicieron el lenguaje ya sabían el nombre que le pondrían porque, al igual que dijo Knuth, aunque parezca broma, el nombre estuvo antes.

Lenguaje sucesor

Pero la motivación de escribir este artículo viene de un hecho reciente acontecido a raiz del lenguaje Carbon. Este lenguaje fue presentado como un lenguaje sucesor para C++. Por mi parte considero desafortunado el nombre, porque sucesor tiene como significado el relevo. Indicando el nombre y sin dar mayores explicaciones se da a entender la desaparición de C++ y su relevo a Carbon. Esto se hace más patente cuando muestran como ejemplo la sucesión entre Objetive-C y Swift donde este hecho sí se da.

Sin embargo, en lenguajes también mostrados como ejemplo en las charlas de presentación como son Kotlin o TypeScript, este caso no se sucede. Es decir, ni Kotlin ni TypeScript han sucedido a los lenguajes sobre los que se construyen (Java y JavaScript respectivamente) porque ambos lenguajes pueden emplearse conjuntamente como alternativa y los lenguajes a los que complementan no han descendido su nivel de uso.

Podríamos decir que lenguajes como Gleam, Carbon, Kotlin, TypeScript, Elm, y otros lenguajes transpilados constituyen lenguajes alternativos o teniendo en cuenta la sinergia construida con su anfitrión, podrían considerarse también lenguajes hospedados (porque parasitarios tiene connotaciones negativas). Lenguajes que necesitan de su anfitrión para ejecutarse.

Instanciar

Una más antigua pero que aún no entró en el diccionario es instanciar. Si digo crear una instancia a un programador de Java, C++ o cualquier otro lenguaje con soporte de orientación a objetos de seguro que entiende esta frase como la creación de un objeto a partir de una clase. Sin embargo, este es un anglicismo de instance que viene a significar un ejemplo o una ocurrencia simple de algo. Podríamos decir que instancia es un false friend pero aún así la empleamos por su similitud fonética al igual que empleamos bizarro como false friend de bizarre.

Tiempo real

Otro de los grandes errores hoy en día es la mal llamada real-time como la propiedad de una página web de conectarse usando WebSocket con el usuario para responder sus peticiones. En realidad, esa conexión puede considerarse asíncrona y puede atribuírsele el término de rápida, pero nunca tiempo real porque este término se suele emplear en sistemas de misión crítica para determinar el tiempo exacto en el que se ejecutan los programas o ciertas instrucciones, siendo el tiempo real blando el que es un poco más flexible a la hora de realizar estas ejecuciones permitiendo un pequeño grado de inexactitud y tiempo real duro el que no permite ningún gradeo de inexactitud.

Conclusiones

Nombrar es difícil, traducir es difícil, emplear el término correcto para el uso adecuado es a veces complejo, pero parece que rectificar y comenzar a emplear el término correcto cuando se descubre el uso inadecuado es imposible. ¿Qué opinas al respecto? ¡Déjanos tu comentario!

Comentarios

No hay comentarios. Inicia sesión para enviar un comentario.