Scala vs Clojure

(с) Алексей Гурский https://illustrators.ru/users/aleksey-gurskiy
(с) Алексей Гурский https://illustrators.ru/users/aleksey-gurskiy

Clojure - очень хороший язык, с ним легко. Легко начать, легко продолжить. Через какое-то время начинаешь замечать, что как-то не до конца понимаешь уже, что происходит в твоём коде и говоришь себе: так, стоп, надо пойти хоть тесты написать. Садишься за это дело, и лёгкость куда-то уходит, через пару дней всё надоедает настолько, что хочется бросить. Похожие чувства я испытывал, когда писал что-то на JavaScript. Что у них общего, что придаёт эту лёгкость и "хипстоту" сочинения кода? Динамическая типизация, конечно. Scala или Haskell с этой точки зрения выглядят весьма уныло.

Система типов - это как мама, которая заставляет регулярно убираться в комнате, менять носки и чистить зубы. Да, это может раздражать, но может и войти в привычку. Настолько, что станет нормой жизни и дойдёт до автоматизма. Перестанешь замечать, что это вообще стоит каких-то усилий. Зато - становишься чуть более приятным в общении и уравновешенным, собранным человеком, который знает, где у него что лежит.

Другое дело - когда родители на недельку уехали и оставили тебя без присмотра. Куришь на балконе, ешь на диване, устраиваешь вечеринки с друзьями и никогда, никогда не моешь посуду. Круто? Да... это очень круто, но в конце-концов обнаруживаешь себя посреди настоящего свинарника и либо делаешь вид, что тебе норм, либо закатываешь рукава и с тяжёлым сердцем начинаешь большую мучительную уборку. А потом ещё родители возвращаются (код выходит в пормышленную эксплуатацию), и можно отхватить по полной за своё безобразное поведение и беспечное весёлое житьё.

Слушайся маму - пиши на Scala.