![image][1]
_Предлагаю вашему вниманию перевод [оригинальной статьи][2] Роберта С. Мартина._
За последние несколько месяцев я попробовал два новых языка. [Swift][3] и [Kotlin][4]. У этих двух языков есть ряд общих особенностей. Действительно, сходство настолько сильное, что мне стало интересно, не является ли это новой тенденцией в нашей [языкомешалке][5]. Если это действительно так, то _это тёмный путь_.
Оба языка включают в себя некоторые функциональные характеристики. Например, в них обоих есть лямбды. В целом, это хорошая штука. Чем больше мы узнаем о функциональном программировании, тем лучше. Эти языки далеки от по-настоящему функционального языка программирования; но каждый шаг в этом направлении — хороший шаг.
Проблема в том, что оба языка сделали ставку на сильную статическую типизацию. Кажется, оба намерены заткнуть _каждую дыру_ в своём родном языке. В случае со `Swift` – это странный гибрид `C` и `Smalltalk`, который называется _Objective-C_; поэтому, возможно, упор на типизацию понятен. Что касается Kotlin – его предком является уже довольно строго типизированная Java.
Я не хочу, чтобы вы думали, что я против статически типизированных языков. Я не против. Есть определенные преимущества как для динамических, так и для статических языков; и я с удовольствием пользуюсь обоими видами. Я предпочитаю динамическую типизацию, и поэтому я иногда использую `Clojure`. С другой стороны, я, вероятно, пишу больше `Java`, чем `Clojure`. Поэтому вы можете считать меня би-типичным. Я иду по обеим сторонам улицы — если так можно выразиться.
Дело не в том, что меня беспокоит, что `Swift` и `Kotlin` статически типизированы. Скорее меня беспокоит _глубина_ статической типизации.
[Погрузиться в пучину тьмы][6]
[1]:
https://habrastorage.org/files/c03/c9f/f4e/c03c9ff4e3a44b23a2ed021881faa39b.jpg
[2]:
http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.html
[3]:
https://swift.org/
[4]:
https://kotlinlang.org/
[5]:
http://blog.cleancoder.com/uncle-bob/2016/07/27/TheChurn.html
[6]:
https://habrahabr.ru/post/324122/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut