@pieczarek:
Na pewno to nie jest czas stracony - ale uczyć się pisać kompilatory to nie pomoże w dobrym nauczeniu się programowania w danym języku... bo to jest specyficzny problem. Jak najbardziej polecam naukę Javy oraz czystej architektury jak pisać duże systemu oparte na mikroserwisach, wydzielanie warstw dostępu do danych, providerów, testy jednostkowe, modularność etc
Wiesz, niekoniecznie.
Zaletą tego typu projektu jest na pewno to, że jest on "pure", jesteś tylko Ty, input.txt z kodem i np. AST wydrukowane na konsolce czy tez LLVM IR wyemitowany. Żadnego GUI, przycisków, WebAPI, frameworków jsowych, bazek danych, dockerów, rabbitów, redisów i JWT.
Uważam że projekt kompilatora bardzo dobrze sprawdza wiedzę z OOP oraz modelowania, bo zazwyczaj trzeba żonglować jakimiś danymi pomiędzy "oddalonymi kawałkami" logiki i trzeba to jakoś sensownie zrobić aby uniknąć jakichś haków, ifków, wielu pustych property i innych obejść.
Trzeba mocno przemyśleć oraz sensownie zaimplementować całą hierarchię Nodów aby nie tylko miało to sens, ale dało się z tym pracować, a nie że nagle chcesz emitować IR i brakuje ci 10 informacji. A następnie jak userzy będą z tego korzystać? jakie API im wystawisz? to są zagadnienia które są w każdym innym sofcie.
Naprawdę polecam tego typu projekt jeżeli ktoś chce się zmierzyć z modelowaniem, niestety jest to czasochłonne.
Nie mówię też jako tylko programista, ale i przedsiębiorca. Szlag mnie trafia jak ktoś wymyśla koło od nowa.
No chyba że na ta konkretna rzecz jest corem twojego businessu, to wtedy wypadałoby mieć nad nią pełną kontrole :P