Un políglota, en términos simples de inglés, es una persona capaz de comunicarse en más de un idioma. El uso de esta palabra en el contexto de programación está relacionado. La primera definición se da a continuación. (Llegaremos al segundo más tarde)
Polyglot – los programas
En informática, un políglota es un programa de computadora o script escrito en una forma válida de múltiples lenguajes de programación, que realiza las mismas operaciones o resultados independientemente del lenguaje de programación utilizado para compilarlo o interpretarlo. [1]
Hacer esto se vuelve un poco complicado porque diferentes lenguajes de programación tienen diferentes tokens asociados con la misma operación. Por ejemplo, para declarar un entero simple y asignarle un valor de 100 en C ++, puede escribir:
- ¿Cómo podría una startup hacer socios de canal en la industria del software?
- ¿Cuáles son algunos problemas que encuentran los analistas de garantía de calidad del software?
- ¿Cuáles son los mejores campos de entrenamiento para ingenieros de software en Silicon Valley? Especialmente aquellos que apuntan a habilidades en algoritmos, programación, codificación y diseño.
- ¿Cuáles son todas las cosas que necesito saber sobre la programación de software si voy a inventar, por ejemplo, el próximo mejor Facebook?
- ¿Cuáles son los principios de las pruebas exploratorias?
int x = 100;
Pero en Python, las variables no tienen que declararse explícitamente para reservar espacio en la memoria. El método más simple para hacerlo sería
x = 100
PERO, la primera línea de código (que usé para C ++) se puede usar en Python porque acepta esa sintaxis. La segunda línea que utilicé para Python no es válida si la ejecuta en un compilador de C ++.
Entonces, ¿cómo se escribe un políglota?
En lenguajes como C, puede redefinir varios tokens como otros en diferentes idiomas. Wikipedia me dice que, por lo general, los políglotas se escriben en una combinación de C (que permite la redefinición de tokens con un preprocesador) y un lenguaje de secuencias de comandos como Lisp o Perl. Puede encontrar varios ejemplos en la página de Wikipedia vinculada.
Polyglot – la persona
Por lo tanto, un políglota también se puede definir como una persona que conoce varios lenguajes diferentes que son lo suficientemente variados como para hacer una diferencia (sabiendo que Java y C # son demasiado similares en construcciones, por ejemplo) y lo suficientemente expertos como para reconocer formas de hacer el mejor uso de cierto número de idiomas para resolver un problema mezclando la solución. Un buen programador polygot no solo lanza “otros” lenguajes porque son geniales o nuevos. Tienen que existir por una razón. Un políglota DEBE saber qué idioma es el mejor para usar en una situación particular.
Por ejemplo, usar Ruby para construir un DSL tiene más sentido ya que se presta a esa solución (en comparación con C #, por ejemplo), pero Ruby puede no ser el lenguaje más efectivo para decir un sistema incrustado. Ser capaz de mezclar los dos (o tres, o cuatro) juntos de manera armoniosa es donde sobresale la programación polygot. [2]
Para convertirse en un políglota, sugeriría aprender un lenguaje de programación en el que puede redefinir tokens (como C y C ++) en profundidad (con todas sus desventajas y ventajas). Luego, encuentre áreas en las que este idioma carece y donde otros idiomas prominentes pueden realizar mejor estas tareas. Después de aprender los conceptos básicos del otro lenguaje de programación, uno debe poder integrar ambos lenguajes de programación.
En resumen, los beneficios:
- Optimiza el rendimiento donde importa.
- Optimice la productividad, la extensibilidad, la agilidad y la personalización del usuario final en cualquier otro lugar.
Desventajas
- Más complejidad con más de 2 idiomas.
- Se hace difícil manejar la interfaz entre dos capas
[1] Polyglot (informática)
[2] lenguaje agnóstico: ¿cómo se define un programador políglota? – Desbordamiento de pila