Después de cambiar entre varios lenguajes de scripting esta semana, me encontré pensando en lo similares que son. Sin embargo, siempre busco a Google (o hoy SO) para recordar detalles como los equivalentes locales de "instanceof" y "endswith", o la sintaxis correcta para declarar una interfaz, o lo que sea.¿Cuáles serían los impedimentos para crear un lenguaje de scripting universal tipo "Europanto"?
Esto me recordó el lenguaje (humano) Europonto. Simplemente elija una sintaxis vagamente en inglés y un vocabulario vagamente romance/germánico/eslavo, ¡y todo está bien!
Entonces, ¿qué pasaría si intentáramos hacer lo mismo con un lenguaje de scripts? ¿En el estado de ánimo para bloques con sangría de estilo Python hoy? ¡Multa! ¿Quieres usar un objeto prototipo? ¡De acuerdo! ¿Solo puedo recordar cómo deletrear los nombres PHP de alguna función de biblioteca? ¡No hay problema!
De todos modos, esa es la idea loca y loca. Como necesitamos una pregunta que admita respuestas concretas, vamos a ajustarla así:
¿Cuáles serían los conflictos más importantes en la creación de un lenguaje de scripts que permitiera todas las funciones de sintaxis y biblioteca nativas de [Python, Ruby, PHP, Perl, shell y JavaScript], de forma tal que pueda entremezclar libremente bloques de código y nombres de funciones entre idiomas.
Y digamos que cualquier construcción en particular debe ser coherente en el nivel de extracto. Así que vamos a permitir:
foreach($foo as $bar)
{
if $foo == 2:
print "hi"
}
pero no, por ejemplo,
foreach($foo as $bar)
{
if $foo == 2:
print "hi"
endif
end
conflictos pueden incluir: ambigüedades del analizador; colisión del nombre; semántica conflictiva para objetos o funciones o cierres; etc. Supongo que el alcance será un problema descomunal, pero dígame.
Comenzaré esto como "wiki de la comunidad" desde el principio, así que si crees que es una pregunta divertida pero quieres hacerlo más riguroso, puedes editarlo.
Nunca vi ese Europanto antes. Muy gracioso, puedo leer mucho de inmediato. Gracias por compartir el enlace ;) – OregonGhost