¿Por qué alguien desarrollaría su propio lenguaje para usarlo solo dentro de esa empresa cuando tiene XY otros lenguajes que pueden ayudarlo con sus bibliotecas, lógica, etc.? ¿No es mucho más simple seguir la corriente con algo más que desarrollar tu propio idioma?
programming-languages
Josip Ivic
fuente
fuente
Respuestas:
Es mucho más fácil de entender cuando te das cuenta de que a menudo es producto de un proceso largo y no de alguien que simplemente dice "queremos hacer un nuevo lenguaje".
Por lo general, comienza con la idea de que se puede resolver algún problema utilizando un lenguaje simple específico del dominio. La intención a menudo es que los no expertos usen este lenguaje, por lo que es simple y a menudo carece de características como escritura y módulos fuertes.
Hasta ahora tan bueno. Pero luego, las personas comienzan a enfrentar problemas que el lenguaje no puede resolver. Así que se agregan lentamente nuevas "características" para resolver esos problemas. Y como el proceso es lento y las características son poco frecuentes, no hay motivación para diseñar esas nuevas características correctamente, siempre que se resuelvan los problemas.
Con el tiempo, el nuevo lenguaje adquiere características que lo convierten de un lenguaje simple de dominio específico a un lenguaje complejo de propósito "general", a menudo con una semántica conflictiva y confusa y reglas de sintaxis difíciles de seguir.
Y cuando las personas se dan cuenta de que crearon una bestia tan grande, ya es demasiado tarde para matarla y reemplazarla con un lenguaje diseñado adecuadamente.
Hay algunas lenguas que se desempeñó como este que no están obligados a compañías específicas tos JavaScript tos PHP tos .
fuente
Claro, pero para seguir eso hasta un final absurdo, todos estaríamos escribiendo todo en conjunto si nadie desarrollara nuevos idiomas.
A veces no hay flujo. Los nuevos idiomas llegan a existir porque alguien tiene ganas de rascarse, ya sea un aficionado a los idiomas que solo quiere inventar algo nuevo o una empresa con una necesidad no satisfecha por lo que ya existe.
Esto es exactamente lo que sucedió cuando John Backus propuso el Sistema de traducción de fórmulas matemáticas de IBM en 1953. Quería una forma más fácil para que los usuarios científicos especificaran fórmulas matemáticas que escribiéndolas en conjunto. Ese producto patentado se convirtió en el primer lenguaje de programación que no era ensamblador, y lo conoce como Fortran.
Donde Fortran fue el primero en haber tomado esa ruta, Erlang es prácticamente el hijo del cartel. Ericsson quería mejorar la forma en que se desarrolló el software para sus conmutadores telefónicos e inventó un lenguaje para la creación de prototipos con características específicas de lo que necesitaban. Cuando lo exploré por primera vez, mi conclusión fue que fue desarrollada por personas con un problema real para resolver que no habría sido atendida por ninguno de los otros idiomas disponibles en 1986. Erlang siguió siendo un producto propio y propio como su colega encontrado hasta que fue de código abierto más de una década más tarde, y ahora es un lenguaje convencional.
Tanto Go como Scala son idiomas relativamente jóvenes en el gran esquema de las cosas, y es muy posible que el idioma en uso en la compañía de su colega sea anterior a ambos. Lo que debe hacer es preguntar sobre su historia, por qué llegó a existir y por qué continúa usándose.
Pasé la década entre 2003 y 2013 trabajando para una compañía que hizo un uso extensivo de un entorno específico de la industria que incluía su propio lenguaje que tiene sus raíces a fines de la década de 1970. Si bien algunos idiomas más nuevos podrían haber sido reemplazos más adecuados (y los ganchos para ellos fueron injertados con el tiempo), esa industria tuvo una inversión lo suficientemente grande y un gran cuerpo de código bien probado que simplemente no había un buen caso de negocios para cambiar a otra cosa.
fuente
He visto esto antes. Nunca funciona bien Algunas personas tienen un complejo "no inventado aquí". Por lo general, hace que una empresa corra reinventando la rueda.
Piénsalo. Este nuevo lenguaje probablemente se rompe todo el tiempo. Entre un analizador, compilador, VM, enlazador, lo que sea ... Ahora hay miles de errores con los que las personas perderán horas depurando problemas aleatorios. Todo por lo que creen que necesitan que otros idiomas no tienen.
C / C ++ se usa para escribir sistemas operativos como, ya sabes, todos ellos. Y sin embargo, alguien pensó que necesitaba algo diferente.
fuente