Выбор Языка (Haskell Или Go)

Перевод статьи о проблеме выбора языка и компромиссе между сложностью и производительностью.

Предупреждение: это тирада.

Недавно я сделал еще один большой шаг вперед на пути изучения Хаскеля.

Я наконец-то вижу, как гармонично сочетаются разные части головоломки Haskell. В этот момент я почувствовал, что готов двигаться вперед и писать полезные программы.

я читать исходный код веб-фреймворка Скотти и был приятно удивлён, что прекрасно понимаю, как это работает. Я полностью влюблен в Haskell. Мне нравится, что это заставляет задуматься.

Вы не просто открываете текстовый редактор и начинаете нажимать клавиши, чтобы написать программу на Haskell. Мне нравится, что Haskell поощряет обобщения и абстракции.

Одним из моментов «эврики» в моем путешествии было понимание всех последствий того, почему такая функция, как а -> а имеет только одну реализацию.

Меня зацепила возможность впервые запустить программу и знать, что она будет работать (после долгих лет борьбы с компилятором).

Я думаю, что монады и линзы — очень умные вещи.

Да, по многим критериям Haskell — идеальный язык программирования.

И мне потребовалось 4 года, чтобы достичь этой точки.

Раньше меня это так расстраивало, что я брал перерыв на недели или месяцы просто потому, что не видел смысла продолжать.

Но я всегда возвращался.

И вот, наконец, я прибыл туда, где нахожусь.

Я бы сказал, что я хаскеллианец среднего уровня.

Конечно, я подумываю написать на работе несколько программ на Haskell, что будет довольно легко, учитывая нашу сервис-ориентированную архитектуру.

я тоже играл с Чистый скрипт — это диалект Haskell, который компилируется в Javascript. Во многих отношениях Purescript намного лучше Haskell, поскольку у него нет этого исторического багажа.

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

Конечно, здорово сказать: «Давайте перепишем это на Purescript» и ожидать, что кто-то вернется после выходных, выучив это достаточно хорошо, хотя мне потребовалось 4 года.

Еще один замечательный пример — сообщество открытого исходного кода.

Если вы выберете Haskell для своего проекта с открытым исходным кодом, вы будете продуктивны, вы сможете безопасно рефакторить код, вы будете писать мало кода - но сколько людей захотят изучить Haskell, чтобы внести свой вклад в ваш проект или внести исправления? Многие из моих друзей по Haskell любят подшучивать над языком.

Идти .

Я сам делал это не раз.

Имейте в виду, что этот язык объективно очень плохой дизайн.

Обработка ошибок, никаких дженериков, ужасный менеджер пакетов, абсурдная система типов, вот эта штука диапазон и так далее.

Это почти полная противоположность Haskell. И при всем при этом Го оказывается гораздо большим более популярным чем Haskell, согласно GitHub. Внезапно на Go уже написано так много замечательных проектов, таких как Docker, InfluxDB и т. д., консул, прометей, упаковщик и многие другие.

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

Почему-то массы используют явно худший инструмент для создания крутых вещей.

Что мы должны из этого вынести? Выбор языка программирования имеет значение.

Программирование — это социальная деятельность.

Кажется, что «меньше функций» равно «легче в освоении».

Обобщение и новаторство в языках программирования, похоже, выходят из моды.

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

Мы почти наверняка предпочтем инструмент низкого качества, которым легко пользоваться без необходимости читать инструкции.

Мы скорее щелкнем фотографию на смартфоне, чем научимся пользоваться профессиональной зеркальной камерой.

Теги: #Go #haskell #программирование #haskell #Go

Вместе с данным постом часто просматривают: