Навремето Scheme се смяташе за добър първи език. Тогава Python стана популярен. В днешно време започвам да си мисля, че Елм би могъл идеално да пасне на тази роля.
Нека обясня защо.
На първо място: какво искате от един език за програмиране?
Ако вашият единствен проблем е __, тогава трябва да изберете __:
- Сурова скорост: вероятно C
- Намиране на работа с такъв език днес? Вероятно Java
- Намиране на работа след 5 години? Трудно е да се каже, но вероятно Java или C или PHP или Python
- Писане на код, който може да се разпространява почти такъв, какъвто е, с най-малко триене: Javascript
- Писане на правилен код, който е лесен за преработване: вероятно Haskell
- Най-лесен за научаване: Мисля, че е трудно да се обобщи. Може би лого? Python? бряст?
Сега бих казал, че за първи език за програмиране бихте искали нещо, което:
- Разбира се, лесно се учи
- Учи ви на солидни основи и добри навици
- Може да се прилага за практически проекти
Нека разгледаме Elm от тази гледна точка:
- Крива на обучение:
Погледнете раздела „основен език“ на ръководството за Elm. Трудно е да се получи по-просто от това. По-специално: Без обектна ориентация (независимо от вашите мнения относно полезността на OO, безспорно е, че усложнява нещата много)
- Страхотни съобщения за грешка
- Стабилна цел (т.е. авторът е много консервативен относно добавянето нови функции), което, макар и досадно за някои хора, вероятно го прави по-удобно за учене
- Вградена рамка на потребителския интерфейс (незабавно удовлетворение за учащите и т.н.). - Солидни основи:
- Силно типизиран език с извод за тип златен стандарт в индустрията (т.е. наравно с Haskell и OCaml)
- Функционален без компромиси (неизменност, първокласни функции, съвпадение на шаблони, без нулева стойност на всеки тип и т.н.).
- Поставя ви на правилния път, за да научите по-усъвършенствани неща, които се намират в други езици като обектна ориентация, типове класове, типове с по-висок род и т.н. - Приложимо към реални проекти: Благодарение на архитектурата на Elm хората изграждат готови за производство уеб приложения. Тъй като се компилира в JavaScript, той може лесно да се разпространява и изпълнява навсякъде (сравнете ситуацията с Python например).
Вероятно можете лесно да изберете React / Redux след това, ако имате нужда от него по някаква причина.
Това е всичко.