Czy warto tworzyć język skryptowy do własnych doświadczeń edukacyjnych?
Pytam dlatego, że dostępnych jest już tak wiele języków programowania, wiem, że mój nigdy nie będzie miał innego rzeczywistego zastosowania niż zapewnienie dobrej nauki. Widzę jednak wady polegające na tym, że próbuję uczynić język skryptowy doświadczeniem uczenia się: zajmie to dużo czasu i wysiłku, w których mógłbym robić coś bardziej „produktywnego”.
Czy tworzenie języka programowania (w tym pisanie szkiców zgodnie z jego przeznaczeniem, składni, filozofii, tłumacza itp.) Byłoby warte czasu, wysiłku i nauki? Czy są też inne projekty, z których mógłbym skorzystać więcej?
Odpowiedzi:
Zbuduj swoje umiejętności i swoje portfolio
Moim zdaniem byłoby to bardzo dobre doświadczenie edukacyjne, ponieważ:
Dlatego uważam to za produkt, użyteczny i ogólnie „warty tego”.
Zaczynaj
Teraz możesz korzystać z różnych metod, w zależności od tego, ile czasu planujesz poświęcić na to ...:
Zacznij od małego
Wolałbym raczej zacząć od małej . Nikt nigdy nie, o którym wiem, napisał wprost tak niesamowitego języka. Potkniesz się i upadniesz, i upadniesz, i upadniesz i upadniesz . Potem odniesiesz sukces, ponieważ działa, ale nadal jest do bani, więc zaczynasz od nowa. Dodajesz nowe funkcje i wreszcie robi się fajnie, ale nagle zdajesz sobie sprawę, że istnieje podstawowa koncepcja, którą spieprzyłeś na początku. Więc zaczynasz od nowa jeszcze raz ...
Wydaje mi się to bardzo pouczające.
Śmiało (i udostępnij nam link).
Mały, jak w „krótkim”
Ale znowu polecam zacząć od małego . Nie bój się, jeśli ludzie powiedzą, że zajmie to dużo kodu i czasu. Niekoniecznie, jeśli nie dążysz do skomplikowanego języka. Alan Kay i inni inżynierowie Xerox PARC rzekomo opracowali wczesną wersję Smalltalk, która mieści się na jednym arkuszu papieru , jako cel zwięzłości (przeczytaj Xerox PARC: Dealerzy Błyskawicy, aby uzyskać szczegółowe informacje na temat historii PARC ). Wydaje się być dobrym, edukacyjnym i wystarczająco ograniczonym podejściem (o ile nie obniża czytelności).
Mały, jak w „ograniczonym”
Nie musisz od razu obsługiwać zaawansowanego systemu typowania, funkcji wyższego rzędu i kombinacji 42 różnych paradygmatów. Może to być po prostu matematyczny język wyrażeń.
Ponownie wykorzystaj wiedzę innych
Możesz także rzucić okiem na narzędzia używane do pisania języków od zera. Możesz ponownie zaimplementować wszystko sam, ale być może warto też przyjrzeć się na przykład istniejącym leksykonom i generatorom parserów.
I oczywiście możesz przeczytać więcej na temat budowy kompilatora .
Teraz, jeśli zmienimy twoje pytanie na „czy byłoby to NAJBARDZIEJ produktywne wykorzystanie twojego czasu?” staje się zupełnie inną kwestią :)
Istnieje wiele innych projektów edukacyjnych, z którymi można by się zmierzyć, które mogłyby wyszkolić i zaprezentować Twoje umiejętności równie dobrze, jeśli nie lepiej. To zależy od tego, do czego chcesz dążyć.
źródło
Mówię śmiało.
Implementacja języka programowania obejmuje szeroki zakres tematów, a dowiesz się wiele o tym, jak wszystko działa pod maską. Prawdopodobnie przeżyjesz kilkanaście nieudanych prób, ale doświadczenie edukacyjne jest nieocenione.
źródło
Zaprojektowanie i wdrożenie (zabawnego, ale kompletnego) języka programowania było w rzeczywistości jednym z (wymaganych?) Ćwiczeń w jednej z moich klas CS wyższej klasy (albo klasy kompilatora, albo ankiety w języku programowania, zapomniałem, które ...)
Tak przynajmniej uważał jeden profesor CS.
Skończysz ze znacznie większym uznaniem dla wszystkich tych „dziwactw”, które mają inne języki.
źródło
Zajmie to trochę czasu. Czy planujesz go utrzymać?
Zakładam, że twój status finansowy nie jest nieskończony, więc powiedziałbym, że nie jest to warte czasu. Możesz spędzać czas na innych przydatnych projektach, które mogą przynieść ci pieniądze. Pamiętaj, że nie może to być odpowiedź, której szukasz, ale z logicznego punktu widzenia powiedziałbym, że Twój język programowania może nie być w tej chwili właściwym projektem. Rozważałbym to, gdybyś był emerytowanym informatykiem i odczuwał potrzebę wniesienia wkładu do branży. Wygląda na to, że masz wielką pasję do programowania i to świetnie. Ale budujesz zupełnie nowy język skryptowy? To będzie wyjątkowo długi projekt. W tym czasie mogłeś zbudować wiele aplikacji, które możesz wrzucić do swojego portfolio. Myślę, że pytanie brzmi:
źródło
Moja rada jest dla ciebie
Nie wymyślaj koła ponownie
Powinieneś zadać sobie pytanie:
Rozumiem, że chcesz mieć więcej doświadczenia w nauce i z tego powodu osobiście uważam, że tworzenie frameworka zapewni ci więcej doświadczenia w uczeniu się i będzie miało dodatkową zaletę, że Ty / Twój zespół / społeczność możecie go później wykorzystać, niż tworzenie skryptu.
I ten komiks xkcd jest nieco odpowiedni, wystarczy zmienić „standardy” na „język” również:
źródło