Lohnt es sich, eine Skriptsprache für mein persönliches Lernerlebnis zu erstellen?
Der Grund, den ich frage, ist, dass es bereits so viele Programmiersprachen gibt, dass ich weiß, dass meine niemals eine andere Verwendung haben werden, als eine gute Lernerfahrung zu bieten. Ich sehe jedoch Nachteile, wenn ich nur versuche, eine Skriptsprache als Lernerfahrung zu machen: Es wird viel Zeit und Mühe kosten, etwas "Produktiveres" zu tun.
Wäre das Erstellen einer Programmiersprache (einschließlich des Schreibens von Entwürfen für den vorgesehenen Zweck, die Syntax, die Philosophie, den Dolmetscher usw.) die Zeit, den Aufwand und die Lernerfahrung wert? Oder gibt es andere Projekte, von denen ich mehr profitieren könnte?
Antworten:
Bauen Sie Ihre Fähigkeiten und Ihr Portfolio auf
Meiner Meinung nach wäre das eine sehr gute Lernerfahrung.
Ich sehe dies als produktiv, nützlich und insgesamt "wert".
Loslegen
Jetzt können Sie verschiedene Ansätze verwenden, je nachdem, wie viel Zeit Sie dafür einplanen ...:
Fangen Sie klein an
Ich würde Ihnen eher empfehlen, klein anzufangen . Niemand, von dem ich weiß, hat jemals direkt eine großartige Sprache so geschrieben. Sie stolpern und fallen und scheitern und scheitern und scheitern . Dann gelingt es dir, dass es zwar funktioniert, aber trotzdem nervt, also fängst du noch einmal von vorne an. Und wenn Sie neue Funktionen hinzufügen, wird es endlich cool, aber plötzlich stellen Sie fest, dass es ein grundlegendes Konzept gibt, das Sie am Anfang vermasselt haben. Also fängst du noch einmal von vorne an ...
Scheint mir sehr lehrreich.
Fahren Sie fort (und teilen Sie den Link mit uns).
Klein wie "kurz"
Aber auch hier würde ich empfehlen, dass Sie klein anfangen . Haben Sie keine Angst, wenn die Leute sagen, es wird viel Code und Zeit in Anspruch nehmen. Nicht unbedingt, wenn Sie keine komplizierte Sprache anstreben. Alan Kay und andere Xerox PARC Ingenieure angeblich eine frühe Version entwickelt Smalltalk , dass fit auf einem einzigen Blatt Papier , als Ziel für Prägnanz (lesen Xerox PARC: Händler von Blitz für Details über die Geschichte des PARC ). Scheint ein guter, lehrreicher und eingeschränkter Ansatz zu sein (solange er die Lesbarkeit nicht einschränkt).
Klein, wie in "eingeschränkt"
Sie müssen nicht sofort ein erweitertes Typsystem, Funktionen höherer Ordnung und eine Mischung aus 42 verschiedenen Paradigmen unterstützen. Es könnte nur eine mathematische Ausdruckssprache sein.
Das Wissen anderer wiederverwenden (und einsehen)
Vielleicht möchten Sie sich auch die Tools ansehen, mit denen Sprachen von Grund auf neu geschrieben werden. Sie können alles selbst neu implementieren, aber vielleicht lohnt es sich auch, sich zum Beispiel vorhandene Lexer und Parser-Generatoren anzuschauen.
Und natürlich möchten Sie vielleicht mehr über die Compilerkonstruktion im Allgemeinen erfahren .
Wenn wir Ihre Frage dahingehend ändern, dass sie "die produktivste Nutzung Ihrer Zeit ist"? es wird ein ganz anderes Thema :)
Es gibt Unmengen anderer Lernprojekte, die Sie angehen könnten, und die Ihre Fähigkeiten ebenso gut trainieren und präsentieren würden, wenn nicht sogar besser. Es kommt darauf an, was Sie anstreben.
quelle
Ich sage, mach weiter.
Die Implementierung einer Programmiersprache deckt eine breite Palette von Themen ab, und Sie erfahren viel darüber, wie die Dinge unter der Haube funktionieren. Sie werden wahrscheinlich ein halbes Dutzend gescheiterter Versuche durchleben, aber die Lernerfahrung ist von unschätzbarem Wert.
quelle
Das Entwerfen und Implementieren einer (Spielzeug-, aber vollständigen) Programmiersprache war tatsächlich eine der (erforderlichen?) Übungen in einer meiner CS-Klassen der oberen Klasse (entweder die Compilerklasse oder die Programmiersprachenumfrage, ich vergesse welche ...)
Mindestens ein CS-Professor hat das gedacht.
Sie werden am Ende eine viel bessere Wertschätzung für all die "Macken" haben, die andere Sprachen haben.
quelle
Es würde eine Weile dauern. Planen Sie es zu pflegen?
Ich gehe davon aus, dass Ihr finanzieller Status nicht unendlich ist, daher würde ich sagen, dass es die Zeit nicht wert ist. Sie können Ihre Zeit für andere nützliche Projekte verwenden, mit denen Sie Geld verdienen können. Denken Sie daran, dass dies möglicherweise nicht die Antwort ist, nach der Sie suchen. Aus logischer Sicht würde ich jedoch sagen, dass Ihre Programmiersprache derzeit möglicherweise nicht das richtige Projekt ist. Ich würde es in Betracht ziehen, wenn Sie ein pensionierter Informatiker wären und das Bedürfnis verspüren, zur Industrie beizutragen. Es scheint, dass Sie eine starke Leidenschaft für das Programmieren haben, und das ist großartig. Aber eine ganz neue Skriptsprache erstellen? Das wird ein extrem langes Projekt. In dieser Zeit hätten Sie viele Anwendungen erstellen können, die Sie in Ihr Portfolio aufnehmen können. Ich denke die Frage ist:
quelle
Mein Rat an Sie ist
Das Rad nicht neu erfinden
Sie sollten sich fragen:
Ich verstehe, dass Sie mehr Lernerfahrung haben möchten, und aus diesem Grund denke ich, dass das Erstellen eines Frameworks Ihnen mehr Lernerfahrung verschafft und mit dem Bonus, dass Sie / Ihr Team / Ihre Community es später wiederverwenden können, als das Erstellen eines Skripts.
Und dieser xkcd-Comic ist ein bisschen relevant, ändern Sie einfach "Standards" in "Sprache".
quelle