1. Smalltalk
Zaprojektowany pierwotnie przynajmniej częściowo jako sposób na korzystanie przez dzieci z komputerów do nauki. Składnia jest wystarczająco prosta, aby opisać ją w akapicie. Podobnie jak LOGO jest przykładem zasady „niska bariera wejścia, wysoki sufit”.
Smalltalk to czysty język OO w tym sensie, że „wszystko jest przedmiotem”.
Uczy również wielu technik funkcjonalnych, szczególnie w interfejsie API Collection: łączenie komunikatów, funkcje wyższego rzędu, mapowanie, zmniejszanie i tak dalej.
Społeczność Squeak jest żywa i przyjazna. Zobaczysz także wiele dyskusji na temat zaawansowanych technik: podobnie jak społeczność lisp, na liście dyskusyjnej jest wielu bardzo doświadczonych Smalltalkerów, którzy chętnie dzielą się swoją wiedzą. (Nie szkodzi, że społeczność Squeak ma dużą populację profesjonalnych nauczycieli). Jest też inna lista dla początkujących.
2. PROLOG
Programowanie logiki języka, który daje bardzo odmienny pogląd obliczeń na niemal każdym innym języku. Prolog jest również wysoce deklaratywny (ale nie całkowicie: !
operator lub cut może mieć znaczący wpływ semantyczny na predykat).
3. Common Lisp
Zamień tutaj program, jeśli chcesz. Common Lisp obsługuje wiele paradygmatów, zwłaszcza OO i funkcjonalny. Ma również długą historię (Lisp jest drugim najstarszym wciąż powszechnie używanym językiem: tylko starszy FORTRAN).
4. Haskell
(Zastrzeżenie: Dopiero zacząłem się go uczyć.) Prawdopodobnie najczystszy funkcjonalny język na świecie. Ma bardzo zaawansowany system typu statycznego. Dostępne są przydatne książki wprowadzające .
5. C lub Delphi
Musisz wiedzieć, jak działają komputery. Musisz wiedzieć, jak działa pamięć i procesor. Oba są tradycyjnie „bliskie metalu” i mają społeczności, które zachęcają do myślenia o tym, jak ich język kompiluje się w asemblerze.
Dlaczego to zamówienie?
Smalltalk jest bardzo łatwy do nauczenia, więc możesz szybko zacząć koncentrować się na rozwiązywaniu problemów zamiast walczyć z kompilatorem („niska bariera wejścia”). Po rozpoczęciu programowania nie ma również sztucznego ograniczenia tego, co możesz zrobić - „wysoki sufit”.
Gdy masz już całkiem jasne pojęcie o tym, jak działa OO (i - pod warunkiem, że WIELE istnieje inne rozumienie tego, co oznacza „OO” - można powiedzieć, że OO dominuje na rynku), przejście na Prolog gwarantuje, że nie zaczniesz myśląc, że OO jest jedynym sposobem. Prolog bardzo różni się od większości języków i rozciąga mięśnie mentalne, abyś nie zaczął myśleć, że wiesz wszystko.
Z kolei Common Lisp jest językiem dla dorosłych. Ma dojrzały standard, jest liderem w projektowaniu języków od dziesięcioleci (wraz z Smalltalk) - wszystkie te fantazyjne nowe funkcje, które właśnie zyskał Twój ulubiony język? Szanse są pomysłami inkubowanymi w Lisp lub Smalltalk. Common Lisp jest również trochę wartki, a wszędzie znajdziesz brodawki.
Haskell jest czwarty na liście, ponieważ (powiedziano mi: dopiero zacząłem się uczyć) jego czystość oznacza, że niektóre bardzo powszechne rzeczy (jak We / Wy) są trudniejsze do zrobienia niż w mniej czysto funkcjonalnych językach. Haskellowie używają również dość egzotycznych terminologii (powiedzmy, takich jak „katamorfizm”, powiedzmy), i prawdopodobnie lepiej byłoby mieć trochę doświadczenia w programowaniu pod ręką, zanim się z tym zmierzysz. (Ale muszę powtórzyć, dopiero zacząłem się tego uczyć! Weź tę opinię ze szczyptą soli!)
A dlaczego C / Delphi trwa? Ponieważ chyba, że pracujesz w systemach wbudowanych, tak naprawdę nie powinieneś uczyć się programowania, myśląc, że wystarczy manualne zarządzanie pamięcią. Śmieci działał wystarczająco dobrze dla maszyny poziomu 1980. Twój telefon jest tak potężny!
Na koniec nie umieściłem Erlanga na powyższej liście, chociaż naprawdę powinienem.