Costruisci le tue abilità E il tuo portafoglio
Secondo me sarebbe un'ottima esperienza di apprendimento in quanto:
- ti costringono a guardare sotto il cofano ,
- guidarti ad imparare come vengono fatte le cose internamente ,
- incoraggiarti a guardare e confrontare altre implementazioni ,
- mantieni aggiornate le tue abilità algoritmiche ,
- farti codificare (e possibilmente documentare ) molto, il che non è neanche male,
- darti un progetto e una base di codice significativi che puoi condividere online affinché tutti possano vederli, per:
- godimento personale e gratificazione ,
- mostrando le tue capacità ai potenziali datori di lavoro,
- comunicare e scambiare con colleghi interessati alla stessa area,
- potenzialmente lasciarlo crescere in qualcosa di più ...
Quindi vedo questo come prodotto, utile e nel complesso "ne vale la pena".
Iniziare
Ora puoi usare approcci diversi, a seconda di quanto tempo pensi di spendere per questo ...:
- Se hai un periodo di tempo limitato, direi di immergermi e codificare la cosa.
- Se hai un periodo di tempo più ampio, potresti davvero seguire la strada lunga e scrivere specifiche, tutorial, manuali, ecc ...
Inizia in piccolo
Preferirei raccomandarti di iniziare in piccolo . Nessuno ha mai, che io conosca, scritto direttamente un linguaggio fantastico proprio così. Inciampi e cadi, e fallisci, e fallisci e fallisci . Quindi ci riesci, in quanto funziona ma fa ancora schifo, quindi ricomincia ancora una volta. E aggiungi nuove funzionalità e finalmente sta diventando interessante, ma all'improvviso ti rendi conto che c'è un concetto fondamentale che hai rovinato all'inizio. Quindi ricomincia ancora una volta ...
Mi sembra molto educativo.
Vai avanti (e condividi il link con noi).
Piccolo, come in "corto"
Ma di nuovo, ti consiglio di iniziare in piccolo . Non aver paura se la gente dice che ci vorrà molto tempo e codice. Non necessariamente, se non miri a un linguaggio complicato. Alan Kay e altri
ingegneri PARC di Xerox avrebbero sviluppato una prima versione di
Smalltalk che si adattava a un singolo foglio di carta , come obiettivo di terseness (leggi Xerox PARC: Dealers of Lightning per dettagli sulla storia del PARC ). Sembra un approccio buono, educativo e abbastanza limitato (purché non sacrifichi la leggibilità).
Piccolo, come in "vincolato"
Non è necessario supportare subito un sistema di tipo avanzato, funzioni di ordine superiore e un mix di 42 paradigmi diversi. Potrebbe essere solo un linguaggio di espressione matematica.
Riutilizzare (e sbirciare) le altre conoscenze
Potresti anche dare un'occhiata agli strumenti che sono usati per scrivere lingue da zero. Puoi reimplementare tutto da solo, ma forse vale anche la pena guardare i lexer e i generatori di parser esistenti, per esempio.
E ovviamente, potresti voler leggere sulla costruzione del compilatore in generale.
Ora, se modifichiamo la tua domanda in "sarebbe l'uso PIÙ produttivo del tuo tempo?" diventa un problema completamente diverso :)
Ci sono un sacco di altri progetti di apprendimento che potresti affrontare e che potrebbero allenare e mostrare le tue abilità allo stesso modo, se non meglio. Dipende da cosa vuoi mirare.