Навремето Scheme се смяташе за добър първи език. Тогава Python стана популярен. В днешно време започвам да си мисля, че Елм би могъл идеално да пасне на тази роля.

Нека обясня защо.

На първо място: какво искате от един език за програмиране?

Ако вашият единствен проблем е __, тогава трябва да изберете __:

  • Сурова скорост: вероятно C
  • Намиране на работа с такъв език днес? Вероятно Java
  • Намиране на работа след 5 години? Трудно е да се каже, но вероятно Java или C или PHP или Python
  • Писане на код, който може да се разпространява почти такъв, какъвто е, с най-малко триене: Javascript
  • Писане на правилен код, който е лесен за преработване: вероятно Haskell
  • Най-лесен за научаване: Мисля, че е трудно да се обобщи. Може би лого? Python? бряст?

Сега бих казал, че за първи език за програмиране бихте искали нещо, което:

  • Разбира се, лесно се учи
  • Учи ви на солидни основи и добри навици
  • Може да се прилага за практически проекти

Нека разгледаме Elm от тази гледна точка:

  • Крива на обучение:
    Погледнете раздела „основен език“ на ръководството за Elm. Трудно е да се получи по-просто от това. По-специално: Без обектна ориентация (независимо от вашите мнения относно полезността на OO, безспорно е, че усложнява нещата много)
    - Страхотни съобщения за грешка
    - Стабилна цел (т.е. авторът е много консервативен относно добавянето нови функции), което, макар и досадно за някои хора, вероятно го прави по-удобно за учене
    - Вградена рамка на потребителския интерфейс (незабавно удовлетворение за учащите и т.н.).
  • Солидни основи:
    - Силно типизиран език с извод за тип златен стандарт в индустрията (т.е. наравно с Haskell и OCaml)
    - Функционален без компромиси (неизменност, първокласни функции, съвпадение на шаблони, без нулева стойност на всеки тип и т.н.).
    - Поставя ви на правилния път, за да научите по-усъвършенствани неща, които се намират в други езици като обектна ориентация, типове класове, типове с по-висок род и т.н.
  • Приложимо към реални проекти: Благодарение на архитектурата на Elm хората изграждат готови за производство уеб приложения. Тъй като се компилира в JavaScript, той може лесно да се разпространява и изпълнява навсякъде (сравнете ситуацията с Python например).
    Вероятно можете лесно да изберете React / Redux след това, ако имате нужда от него по някаква причина.

Това е всичко.