¿Crear un nuevo lenguaje de scripting para la experiencia de aprendizaje? [cerrado]

13

¿Vale la pena crear un lenguaje de scripting para mi propia experiencia de aprendizaje personal?

La razón por la que pregunto es que ya hay muchos lenguajes de programación disponibles, sé que el mío nunca tendrá otro uso que no sea proporcionar una buena experiencia de aprendizaje. Sin embargo, sí veo inconvenientes con solo intentar hacer un lenguaje de secuencias de comandos como una experiencia de aprendizaje: tomará mucho tiempo y esfuerzo en lo que podría estar haciendo algo más "productivo".

¿Valdría el tiempo, el esfuerzo y la experiencia de aprendizaje la creación de un lenguaje de programación (incluidos los borradores de su propósito, sintaxis, filosofía, intérprete, etc.)? ¿O hay otros proyectos de los que podría beneficiarme más?

    
pregunta Ivan 17.08.2011 - 01:29

5 respuestas

15

Desarrolle sus habilidades Y su cartera

En mi opinión, eso sería una muy buena experiencia de aprendizaje, ya que lo hará:

  • obligarte a mirar debajo del capó ,
  • lo guiará para aprender cómo se hacen las cosas internamente ,
  • lo alentamos a mirar y comparar otras implementaciones ,
  • mantenga sus habilidades algorítmicas al día,
  • te hace código (y con suerte documento ) mucho, lo que no es un malo tampoco,
  • le proporciona un proyecto y un código base significativos 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 puedes usar diferentes enfoques, dependiendo de cuánto tiempo planea gastar en esto ...:

  • Si tiene un período de tiempo limitado, diría que se sumerja y codifique la cosa.
  • Si tiene un período de tiempo más amplio, entonces podría ir al largo camino y especificaciones de escritura, tutoriales, manual, etc ...

Empezar pequeño

Prefiero recomendarte que comience con poco . Nadie ha tenido nunca Sé que escribí directamente un lenguaje impresionante como ese. tu tropezar y caer, y fallar, y fallar y fallar . Entonces tienes éxito, en que funciona pero sigue siendo una mierda, así que empiezas de nuevo una vez más. Y tu agrega nuevas funciones y finalmente se está poniendo genial, pero de repente darse cuenta de que hay un concepto fundamental que se equivocó en el comenzando. Así que vuelve a empezar ...

Me parece muy educativo.

Adelante (y comparte el enlace con nosotros).

Pequeño, como en "short"

Pero, de nuevo, te recomiendo que empieces poco a poco . No tengas miedo si La gente dice que tomará mucho código y tiempo. No necesariamente, Si no apuntas a un lenguaje complicado. Alan Kay y otros los ingenieros de Xerox PARC supuestamente desarrollaron una versión anterior de Smalltalk que cabe en una sola hoja de papel , como objetivo para más información (lea Xerox PARC: Dealers of Lightning para obtener más información sobre la historia de PARC ). Parece una buena educación y enfoque suficientemente limitado (siempre que no se sacrifique legibilidad).

Pequeño, como en "restringido"

No necesita admitir de inmediato un sistema de tipo avanzado, Funciones de orden superior y una mezcla de 42 paradigmas diferentes. Podria solo se un lenguaje de expresión matemático.

Reutilizar (y echar un vistazo a) el conocimiento de otros

También puede querer echar un vistazo a las herramientas que se utilizan para escribir Idiomas desde cero. Puedes volver a implementar todo tú mismo, pero Tal vez también vale la pena mirar a los lexers y analizadores existentes generadores, por ejemplo.

Y, obviamente, puede que desee leer sobre construcción del compilador en general.

Ahora, si modificamos su pregunta para que sea "sería EL MÁS productivo uso de su tiempo? "se convierte en un problema completamente diferente :)

Hay muchos otros proyectos de aprendizaje que podrías abordar, y eso entrenaría y mostraría tus habilidades igualmente bien, si no mejor. Eso Depende para lo que quieras apuntar.

    
respondido por el haylem 17.08.2011 - 02:21
3

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á una media docena de intentos fallidos, pero la experiencia de aprendizaje es invaluable.

    
respondido por el tdammers 17.08.2011 - 08:16
2

Diseñar e implementar un lenguaje de programación (completo pero completo) fue en realidad uno de los ejercicios (¿requerido?) en una de mis clases de división superior de CS (ya sea la clase de compilador o la encuesta del lenguaje de programación, no recuerdo cuál ...)

Así que al menos un profesor de CS pensó eso.

Obtendrás una apreciación mucho mejor por todas esas "peculiaridades" que tienen otros idiomas.

    
respondido por el hotpaw2 17.08.2011 - 06:13
1

Tomaría un tiempo para hacer. ¿Planeas mantenerlo?

  

Sería crear un lenguaje de programación (incluyendo escribir borradores de   Su propósito, sintaxis, filosofía, intérprete, etc., valdrán   ¿El tiempo, esfuerzo y experiencia de aprendizaje? O hay otros   ¿Proyectos que podrían beneficiarme más?

Supongo que su estado financiero no es infinito, por lo que diría que no vale la pena. Puedes dedicar tu tiempo a otros proyectos útiles que pueden hacerte ganar dinero. Tenga en cuenta que puede que esta no sea 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 científico 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, ¿construir un nuevo lenguaje de scripting? Ese será un proyecto extremadamente largo. En ese tiempo, podría haber creado muchas aplicaciones que puede incluir en su cartera. Creo que la pregunta es: ¿Tengo el tiempo y / o una prioridad abierta en mi vida que me permita crear un nuevo lenguaje de programación desde cero?

    
respondido por el Ryan 17.08.2011 - 01:54
-1

Mi consejo para ti es

No reinventar la rueda

  

La inspiración para esta metáfora idiomática reside en el hecho de que la rueda es el arquetipo del ingenio humano, tanto en virtud del poder agregado y la flexibilidad que ofrece a sus usuarios, como también en los antiguos orígenes que le permiten sustentar mucho. Si no todo, de la tecnología moderna. Como ya se ha inventado, y no se considera que tenga fallas operativas, un intento de reinventarlo no tendría sentido y no agregaría ningún valor al objeto, y sería una pérdida de tiempo, desviando los recursos del investigador de objetivos posiblemente más valiosos. que sus habilidades podrían avanzar más sustancialmente.

Deberías preguntarte:

  • ¿Por qué necesitas crear un script? ¿El script existente no es suficiente?
  • ¿Lo mantendrá y lo publicará, y confía en que otros programadores utilizarán su script? Si tu respuesta es no, no lo hagas.

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 pueden reutilizarlo. más tarde, que la creación de un script.

Y este cómic xkcd es un poco relevante, solo cambia "estándares" a "lenguaje" también:

    
respondido por el Rudy 17.08.2011 - 05:25

Lea otras preguntas en las etiquetas