История и потерянная любовь к языкам статической печати

Я люблю шаблоны проектирования; он добавляет дополнительный уровень красивой сложности, когда вы пытаетесь решить проблему.
За годы учебы в колледже я с удовольствием читал о шаблонах проектирования, в течение того периода (и два года спустя) я я использовал в основном языки статической типизации (C #, Java), и мне это понравилось !!
Языки статической типизации лучше всего демонстрируют шаблоны проектирования, поэтому я провел в этом мире добрых шесть лет своей жизни.

Отметьте Шаблоны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования (Великая книга)

Проработав пару лет над реальными проектами, я всегда вижу следующее
- Я всегда нахожу много разных слоев, даже если проект был простым
- Использование языков статического типа кажется излишним, указание типов всякий раз переменная определена, все хорошо и все; но это просто кажется медленным

Что произошло дальше, я использовал Rails, и все изменилось, разработка была в десять раз проще, а также я стал больше участвовать в создании приложений SPA, я полностью перешел на работу с динамическими языками на всех стеках, и мне это понравилось. !!

Языки, компилируемые в Javascript

Когда впервые появился Coffeescript, я был очень взволнован и любил кодировать с его помощью, мне нравится Javascript, но в то время он никогда не обновлялся.
Это изменилось с ES2015, и с этим я больше не фанат с языками, которые компилируются в Javascript. Зачем делать другой язык, если Javascript сейчас находится в активной разработке

Вяз и то и другое, почему ты об этом говоришь?

Elm - это язык, созданный на основе Javascript, но подождите ... в этом есть что-то другое

Большинство языков, построенных на основе Javascript, имеют Javascript и другие функции.

Elm, с другой стороны, вообще не занимается Javascript, он пытается создать лучший язык для создания веб-приложений (язык полностью отличается от Javascript)

Почему вяз отличный (высокий уровень)

А пока скажем, что лучший способ создать веб-приложение - это использовать React и Redux.
Эльм принял эту идею и встроил ее в ядро ​​самого языка.

Redux находится под сильным влиянием Elm

Результат: у вас есть язык, который твердо придерживается мнения о том, как лучше всего создавать веб-приложения, и дает вам соответствующие инструменты для их создания.

Что еще замечательно, все библиотеки elm работают вместе, и помимо воображения elm о том, как создавать веб-приложения, вы не найдете таких библиотек, как React, Angular, Ember.
Elm уже использует свой путь к способ создания веб-приложений, и все библиотеки улучшат его, вместо того, чтобы пытаться найти лучший способ создания веб-приложений.
Сам язык уже ответил на этот вопрос в начале

Почему вяз крутой (низкий уровень)

У Elm есть несколько замечательных функций, поэтому я люблю его, даже несмотря на то, что это язык статического типа.

Чистые функции

Чистая функция - это функция, в которой возвращаемое значение определяется только входными значениями без наблюдаемых побочных эффектов.

Это означает, что вы не можете ничего изменить внутри функции, см. Следующий пример.

addIsCalled = false;
function add(x, y) {
 addIsCalled = true; // Invalid in Elm
 return x + y;
}

Компилятор умной задницы

Что прекрасного в компиляторе Elm, так это то, что он похож на отладочную машину, перебирающую ваш код,
- он сообщит вам, есть ли у вашей функции побочные эффекты
- он не сработает, если вы напишете `if` без Блок `else`
- он дает вам отличные сообщения об ошибках о том, как исправить проблемы в вашем коде

Причина, по которой я не против того, чтобы Elm был языком статического типа, заключается в том, что в Elm вы чувствуете, что компилятор создан для того, чтобы вы могли писать лучший код и исправлять любые проблемы, он просто помогает вам и не мешает

Функциональный язык
elm функциональный, современный и простой для понимания, если вам нужен повод для изучения функционального программирования. Elm - отличный вариант.

Заключение

вяз все еще находится на начальной стадии; многие подумали бы, что есть крошечный шанс, что они когда-либо будут работать с этим языком сейчас в своей компании, так зачем беспокоиться?
Да, вы должны проверить это по следующим причинам:
- это принесет пользу вы как разработчик, и это изменит ваш взгляд на решение проблем
- вы будете дисциплинированно писать функции и делать их чистыми
- функциональное программирование вам понравится немного больше

Если вам нужны доказательства, то на один из самых известных государственных менеджеров, который всегда используется с React, Redux сильно влияет вяз

Я хочу добиться того, чтобы изучение языка - это не просто изучение другого инструмента для решения проблем.

Всякий раз, когда язык, библиотека или фреймворк высказывают мнение о своем видении правильного способа создания приложений; их изучение сделает вас лучшим разработчиком

Ресурсы, если вы хотите начать работу с вязом
- Руководство по началу работы с вязом
- Настоятельно рекомендую курс вяз для начинающих от Джеймса Мура, он включает в себя оба функциональное программирование и вяз (бесплатно)