Хм, это еще более спорное утверждение: для познания C "во всей красе" как известно достаточно Кернигана-Ричи и недели; Python познается за 2 недели, если со сторонними библиотеками то за 2 месяца.
Kotlin вообще замечателен: Java-программисту достаточно от 2 до 4 часов на написание пары примерчиков, чтения документации от корки до корки и привыкание к синтакситу для типов x: Int.
выбор языка программирования, которому бы хотели посвятить свою жизнь
При всем уважении, но такая фраза выглядит чрезвычайно странно. Язык не религия чтобы ему кого-то посвящать. Получается не язык для программиста, а программист для языка. Лучше поправить, IMO.
На практике проблем не возникает. Наоборот, библиотека котлина одна из немногих, исходный код которой приятно читать.
Говорю за себя, но Котлин нужно пробовать. Он как хорошие кроссовки — и подошва удобная, и сами не слишком тяжелые. А всевозможные теоретические аргументы за четыре года успели обсудиться, и тот дизай который есть сейчас уже доказал свою оправданность на реальных больших проектах.
Подобные проблемы с читабельностью обычно решаются нормальным форматированием. Например поля класса в Котлине никто в одну строчку не пишет, разбивают на несколько. Код в статьях призван просто демонстрировать принципы, и не всегда похож на "промышленный".
«Instant run» традиционно для JVM называется «Hot Swap». Суть в том что из-за разбиения исполняемого кода в классы возможно подменить код функции\метода, не меняя данные в полях объектов. Это с давних пор делили JRebel, правда совсем не бесплатно zeroturnaround.com/software/jrebel. Жалко ребят, теперь они out of busyness, хотя рано или поздно это должно было случиться.
Пробовал писать Swift в AppCode полгода назад, и был разочарован зачаточной поддержкой. Но дело то не в JetBrains, а то что сам Swift тогда только внезапно вышел в свет. А вот для старого доброго ObjectiveC еще тогда поддержка была просто божественна.
Огромное спасибо команде за великолепный продукт! Использовал еще в ранней бетта, но даже в зачаточном состоянии 0xDBE была на голову выше чем родная студия в MSSQL. Особенно было круто работать с MSSQL сидя в линуксе. А сейчас еще и баги починили. Однозначно рекомендую!
Дело в том что в мобильном приложении этот заголовок выглядит немного не так, в частности в нем нету ссылки. Так что думаю что моя просьба весьма обоснованна.
Впрочем, свободная среда разработки на Java IntelliJ IDEA Community Edition хоть и написана на той же самой Java, бесполезно почти. Проект слишком сложный, чтобы туда сунуться.
Да? Вы говорите «почти»? Загляните в репозиторий плагинов для нее. Значительная их часть написана сторонними разработчиками, никак не связанными с JetBrains.
А еще Вы могли не знать, но как минимум Android Studio, Cursive (IDE для Closure) и RoboVM Studio — все базируются на Intellij IDEA CE и разработаны полностью вне JetBrains
grossws, спасибо за наводку! Я попробовал связаться с Майком, но он никак не реагирует уже сутки, так что источник, откуда он взял эту информацию, остается неясным. Статью поправил.
Я с вами полностью согласен, проблема скобок при вызове функций (в Haskell) это серьезный фактор читабельности кода. Специально для этого случая в Kotlin есть трюк, позволяющий вместо функций использовать методы на объектах.
Стандартный пример на Haskell:
take 3 (reverse (filter even [1..10]))
take 3 . reverse . filter even $ [1..10]
Я с вами полностью согласен, проблема скобок при вызове функций (в Haskell) это серьезный фактор читабельности кода. Специально для этого случая в Kotlin есть трюк, позволяющий вместо функций использовать методы на объектах.
«Maybe это ещё и аппликативный функтор» — это то да, но вот использовать его аппликативность получится только в языке с каррированием. И даже в Haskell не обойтись без приседаний.
Путь Kotlin в данном случае — напролом, т.е. применение функций с несколькими параметрами требует явных проверок. Бинарные операторы это известная боль, но они относительно редки:
val x: Int? = 32
val y: Int? = null
val g1: Int? = if(x != null && y != null) x + y else null
var g2: Int? = x?.let {y?.plus(x)} // it's the shortest one can get
Интересно было бы посмотреть как это решается в funKtionale (никогда сам не использовал)
Kotlin вообще замечателен: Java-программисту достаточно от 2 до 4 часов на написание пары примерчиков, чтения документации от корки до корки и привыкание к синтакситу для типов
x: Int.При всем уважении, но такая фраза выглядит чрезвычайно странно. Язык не религия чтобы ему кого-то посвящать. Получается не язык для программиста, а программист для языка. Лучше поправить, IMO.
Говорю за себя, но Котлин нужно пробовать. Он как хорошие кроссовки — и подошва удобная, и сами не слишком тяжелые. А всевозможные теоретические аргументы за четыре года успели обсудиться, и тот дизай который есть сейчас уже доказал свою оправданность на реальных больших проектах.
Да? Вы говорите «почти»? Загляните в репозиторий плагинов для нее. Значительная их часть написана сторонними разработчиками, никак не связанными с JetBrains.
А еще Вы могли не знать, но как минимум Android Studio, Cursive (IDE для Closure) и RoboVM Studio — все базируются на Intellij IDEA CE и разработаны полностью вне JetBrains
А то сейчас она звучит немного категорично.
Стандартный пример на Haskell:
Приписывается на Kotlin почти дословно:
Стандартный пример на Haskell:
Путь Kotlin в данном случае — напролом, т.е. применение функций с несколькими параметрами требует явных проверок. Бинарные операторы это известная боль, но они относительно редки:
Интересно было бы посмотреть как это решается в funKtionale (никогда сам не использовал)