Próbuję dowiedzieć się więcej o Erlangu niż projektach zabawek, którymi się bawiłem. W tym celu czytam Programowanie Erlang i niektóre archiwa Armstronga na temat oprogramowania .
Chciałbym również przeczytać przykładowy kod (najlepiej produkcyjny), który pokazuje rodzaje rzeczy, które można zbudować za pomocą Erlanga, które byłyby nieproporcjonalnie trudne w innych językach. Poza (zakładam) Ziewaniem , czy są jakieś publicznie dostępne przykłady pięknego kodu Erlanga, które mógłbym przeczytać, aby lepiej zrozumieć język i / lub zobaczyć idiomatyczne zastosowania różnych konstrukcji językowych?
W szczególności nie szukam kodu, który „wykonuje zadanie”, ale używa wątpliwych praktyk lub przykładów w stylu „oto, jak piszesz factorial
w Erlangu”.
Podobnie, czy ktoś może polecić dobrą literaturę do nauki tego języka (inną niż wspomniany „Programowanie Erlang”)? Jeśli chcesz, nauczysz się tego, ale jeśli masz na to jakieś standardowe książki, wrzuć je.
Odpowiedzi:
Innym dobrym źródłem informacji jest Erlang i OTP w akcji .
O przykładach kodu: trudno jest znaleźć najlepsze praktyki dla Erlanga, ale sugeruję wypróbowanie tych stron:
Sprawdź linki w tym artykule (oprogramowanie open source napisane w języku erlang), a może znajdziesz interesujący kod.
źródło
Ponieważ dodałeś znacznik programowanie funkcjonalne, co powiesz na pisanie kompilatora lub interpretera Erlanga w Haskell? Erlang nie jest już tak jak na razie najnowocześniejszy. Polecam nauczyć się języka Erlang w ciągu jednego lub dwóch dni, podobnie jak niektórych innych języków (LISP, Prolog), a następnie zapomnieć o nich; są tylko krokiem do odkrycia imperatywnych języków OOP.
W przypadku mniejszych zadań niż implementacja kompilatora zobacz Project Euler .
[EDYCJA] Aby odpowiedzieć na komentarz:
Z technicznego punktu widzenia: Erlang był dobry w dawnych czasach, kiedy nie było procesorów wielordzeniowych. Ale teraz - biorąc pod uwagę istniejące kompilatory / interpretatory, których się znam - po prostu nie skaluje się już tak, jak powinien. Tłumacz napisany w języku Haskell skalowałby się, kompilowany w języku Haskell przyspieszyłby, ale usunąłby funkcję zastępowania kodu w locie.
Z punktu widzenia programistów: Haskell nie jest najlepszym wyborem dla wszystkich odpowiednich zadań, ale prawdopodobnie bardziej zaawansowane języki są bardzo eksperymentalne, a te niestosowne zadania zwykle mają coś wspólnego z systemami wbudowanymi (takimi jak mikrokontrolery i GPU) lub crunching, gdzie C i Asembler są nadal najlepszym wyborem.
Co dokładnie można zrobić z Erlangiem lepiej niż w innych językach?
źródło