Desarrolle sus habilidades y su cartera
En mi opinión, sería una muy buena experiencia de aprendizaje, ya que:
- obligarte a mirar debajo del capó ,
- guiarlo para aprender cómo se hacen las cosas internamente ,
- animarlo a mirar y comparar otras implementaciones ,
- mantén tus habilidades algorítmicas al día,
- hacerte codificar (y con suerte documentar ) mucho, lo cual tampoco es malo,
- darle un proyecto significativo y una base de código que podría compartir en línea para que todos lo vean, para:
- disfrute personal y gratificación ,
- mostrando sus habilidades a posibles empleadores,
- comunicarse e intercambiar con compañeros interesados en la misma área,
- potencialmente dejarlo crecer en algo más ...
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 ...:
- Si tiene un período de tiempo limitado, yo diría que se sumerja y codifique la cosa.
- Si tiene un período de tiempo más amplio, entonces podría ir por el camino largo y escribir especificaciones, tutoriales, manuales, etc.
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.