¿Vale la pena crear un lenguaje de script para mi propia experiencia personal de aprendizaje?
La razón por la que pregunto es que ya hay tantos lenguajes de programación disponibles, sé que el mío nunca tendrá un uso real que no sea proporcionar una buena experiencia de aprendizaje. Sin embargo, veo inconvenientes con solo tratar de crear un lenguaje de secuencias de comandos como una experiencia de aprendizaje: tomará mucho tiempo y esfuerzo en lo que podría hacer algo más "productivo".
¿Valdría la pena el tiempo, el esfuerzo y la experiencia de aprendizaje para crear un lenguaje de programación (incluida la redacción de borradores de su propósito, sintaxis, filosofía, intérprete, etc.)? ¿O hay otros proyectos de los que podría beneficiarme más?
Respuestas:
Desarrolle sus habilidades y su cartera
En mi opinión, sería una muy buena experiencia de aprendizaje, ya que:
Así que veo esto como producto, útil y en general "vale la pena".
Empezar
Ahora puede usar diferentes enfoques, dependiendo de cuánto tiempo planea gastar en esto ...:
Empieza pequeño
Preferiría que comenzaras con algo pequeño . Que yo sepa, nadie ha escrito directamente un lenguaje asombroso como ese. Tropiezas y caes, y fallas, y fallas y fallas . Luego tienes éxito, ya que funciona pero todavía apesta, así que comienzas de nuevo una vez más. Y agregas nuevas funciones y finalmente se está volviendo genial, pero de repente te das cuenta de que hay un concepto fundamental que arruinaste al principio. Entonces comienzas de nuevo una vez más ...
Me parece muy educativo.
Adelante (y comparte el enlace con nosotros).
Pequeño, como en "corto"
Pero nuevamente, te recomiendo que comiences con algo pequeño . No tenga miedo si la gente dice que tomará mucho código y tiempo. No necesariamente, si no buscas un lenguaje complicado. Alan Kay y otros ingenieros de Xerox PARC supuestamente desarrollaron una versión inicial de Smalltalk que cabía en una sola hoja de papel , como un objetivo para la concisión (lea Xerox PARC: Dealers of Lightning para obtener detalles sobre la historia del PARC ). Parece un enfoque bueno, educativo y suficientemente limitado (siempre que no sacrifique la legibilidad).
Pequeño, como en "restringido"
No es necesario que admita de inmediato un sistema de tipos avanzado, funciones de orden superior y una combinación de 42 paradigmas diferentes. Podría ser simplemente un lenguaje de expresión matemática.
Reutilizar (y echar un vistazo) al conocimiento de los demás
También es posible que desee echar un vistazo a las herramientas que se utilizan para escribir idiomas desde cero. Puede volver a implementar todo usted mismo, pero tal vez también valga la pena mirar los generadores de analizadores y analizadores existentes, por ejemplo.
Y, obviamente, es posible que desee leer sobre la construcción del compilador en general.
Ahora, si modificamos su pregunta para que sea "¿sería el uso más productivo de su tiempo?" se convierte en un tema completamente diferente :)
Hay muchos otros proyectos de aprendizaje que podría abordar, y que entrenarían y mostrarían sus habilidades igualmente bien, si no mejor. Depende de lo que quieras apuntar.
fuente
Yo digo adelante.
La implementación de un lenguaje de programación cubre una amplia gama de temas, y aprenderá mucho sobre cómo funcionan las cosas bajo el capó. Probablemente vivirá media docena de intentos fallidos, pero la experiencia de aprendizaje es invaluable.
fuente
Diseñar e implementar un lenguaje de programación (¿juguete pero completo?) Fue en realidad uno de los ejercicios (¿obligatorios?) En una de mis clases de CS de división superior (ya sea la clase de compilador o la encuesta del lenguaje de programación, olvido cuál ...)
Entonces, al menos un profesor de CS pensó que sí.
Terminará con una apreciación mucho mejor por todas esas "peculiaridades" que tienen otros idiomas.
fuente
Llevaría un tiempo hacerlo. ¿Planeas mantenerlo?
Supongo que su estado financiero no es infinito, por lo que diría que no vale la pena el tiempo. Puedes dedicar tu tiempo a otros proyectos útiles que pueden hacerte ganar dinero. Tenga en cuenta que esta puede no ser la respuesta que está buscando, pero desde un punto de vista lógico, diría que su lenguaje de programación puede no ser el proyecto correcto en este momento. Lo consideraría si fuera un informático retirado y sintiera la necesidad de contribuir a la industria. Parece que tienes una gran pasión por la programación, y eso es genial. Pero, ¿construyendo un nuevo lenguaje de scripting? Ese será un proyecto extremadamente largo. En ese momento, podría haber creado muchas aplicaciones que puede incluir en su cartera. Creo que la pregunta es:
fuente
Mi consejo para ti es
No reinventes la rueda
Deberías preguntarte a ti mismo:
Entiendo que desea tener más experiencia de aprendizaje y, por esa razón, personalmente, creo que crear un marco le brindará más experiencia de aprendizaje y con la ventaja de que usted / su equipo / comunidad puede reutilizarlo más tarde que crear un script.
Y este cómic xkcd es un poco relevante, simplemente cambie los "estándares" a "lenguaje" también:
fuente