La création d'un langage de script pour ma propre expérience d'apprentissage personnel en vaut-elle la peine?
La raison pour laquelle je demande, c'est qu'il y a déjà tellement de langages de programmation disponibles, je sais que le mien n'aura jamais d'autre utilisation réelle que de fournir une bonne expérience d'apprentissage. Cependant, je vois des inconvénients à essayer de créer un langage de script comme une expérience d'apprentissage: cela prendra beaucoup de temps et d'efforts pour que je puisse faire quelque chose de plus "productif".
La création d'un langage de programmation (y compris la rédaction de projets de son objectif, sa syntaxe, sa philosophie, son interprète, etc.) en vaut-elle le temps, l'effort et l'expérience d'apprentissage? Ou y a-t-il d'autres projets dont je pourrais bénéficier davantage?
Réponses:
Développez vos compétences ET votre portefeuille
À mon avis, ce serait une très bonne expérience d'apprentissage car elle:
Je vois donc cela comme un produit, utile et globalement "en vaut la peine".
Commencer
Maintenant, vous pouvez utiliser différentes approches, en fonction du temps que vous prévoyez de consacrer à cela ...:
Commencer petit
Je vous recommanderais plutôt de commencer petit . Personne n'a jamais, à ma connaissance, écrit directement une langue géniale comme ça. Vous trébuchez et tombez, échouez, échouez et échouez . Ensuite, vous réussissez, en ce sens que ça marche mais ça craint toujours, alors vous recommencez. Et vous ajoutez de nouvelles fonctionnalités et ça devient finalement cool, mais soudain vous vous rendez compte qu'il y a un concept fondamental que vous avez foiré au début. Alors vous recommencez encore une fois ...
Cela me semble très éducatif.
Allez-y (et partagez le lien avec nous).
Petit, comme "court"
Mais encore une fois, je vous recommande de commencer petit . N'ayez pas peur si les gens disent que cela va prendre beaucoup de code et de temps. Pas nécessairement, si vous ne visez pas une langue compliquée. Alan Kay et d'autres ingénieurs de Xerox PARC auraient développé une première version de Smalltalk qui tient sur une seule feuille de papier , comme un objectif de justesse (lire Xerox PARC: Dealers of Lightning pour plus de détails sur l'histoire du PARC ). Semble une bonne approche, suffisamment pédagogique et contrainte (tant qu'elle ne sacrifie pas la lisibilité).
Petit, comme dans "contraint"
Vous n'avez pas besoin de prendre en charge immédiatement un système de type avancé, des fonctions d'ordre supérieur et un mélange de 42 paradigmes différents. Il pourrait simplement s'agir d'un langage d'expression mathématique.
Réutilisez (et jetez un œil à) les connaissances des autres
Vous pouvez également consulter les outils utilisés pour écrire des langues à partir de zéro. Vous pouvez tout réimplémenter vous-même, mais il vaut peut-être aussi la peine de regarder les lexers et les générateurs d'analyseurs existants, par exemple.
Et évidemment, vous voudrez peut-être lire sur la construction du compilateur dans son ensemble.
Maintenant, si nous modifions votre question pour qu'elle soit "serait-ce l'utilisation la plus productive de votre temps?" cela devient un problème entièrement différent :)
Il y a des tonnes d'autres projets d'apprentissage que vous pourriez entreprendre, et qui formeraient et présenteraient vos compétences aussi bien, sinon mieux. Cela dépend de ce que vous voulez viser.
la source
Je dis allez-y.
L'implémentation d'un langage de programmation couvre un large éventail de sujets, et vous en apprendrez beaucoup sur la façon dont les choses fonctionnent sous le capot. Vous vivrez probablement une demi-douzaine de tentatives infructueuses, mais l'expérience d'apprentissage est inestimable.
la source
Concevoir et implémenter un langage de programmation (jouet mais complet) était en fait l'un des exercices (requis?) Dans l'une de mes classes CS de division supérieure (soit la classe de compilation ou l'enquête sur le langage de programmation, j'oublie lequel ...)
Donc, au moins un professeur CS le pensait.
Vous vous retrouverez avec une bien meilleure appréciation pour toutes ces "bizarreries" que les autres langues ont.
la source
Cela prendrait du temps. Envisagez-vous de le maintenir?
Je suppose que votre situation financière n'est pas infinie, alors je dirais que cela ne vaut pas le temps. Vous pouvez passer votre temps sur d'autres projets utiles qui peuvent vous rapporter de l'argent. Gardez à l'esprit que ce n'est peut-être pas la réponse que vous recherchez, mais d'un point de vue logique, je dirais que votre langage de programmation n'est peut-être pas le bon projet pour le moment. Je considérerais cela si vous étiez un informaticien à la retraite et ressentiez le besoin de contribuer à l'industrie. Il semble que vous ayez une forte passion pour la programmation, et c'est formidable. Mais, construire un tout nouveau langage de script? Ce sera un projet extrêmement long. Pendant ce temps, vous auriez pu créer de nombreuses applications que vous pouvez lancer dans votre portefeuille. Je pense que la question est:
la source
Mon conseil est
Ne réinventez pas la roue
Vous devez vous demander:
Je comprends que vous voulez avoir plus d'expérience d'apprentissage et pour cette raison, personnellement, je pense que la création d'un cadre vous donnera plus d'expérience d'apprentissage et avec le bonus que vous / votre équipe / communauté pouvez réutiliser plus tard, que la création d'un script.
Et cette bande dessinée xkcd est un peu pertinente, il suffit de changer "standards" en "langue" également:
la source