Pull to refresh
10
1
Subscribers
Send message
Хм, это еще более спорное утверждение: для познания C "во всей красе" как известно достаточно Кернигана-Ричи и недели; Python познается за 2 недели, если со сторонними библиотеками то за 2 месяца.

Kotlin вообще замечателен: Java-программисту достаточно от 2 до 4 часов на написание пары примерчиков, чтения документации от корки до корки и привыкание к синтакситу для типов x: Int.
выбор языка программирования, которому бы хотели посвятить свою жизнь

При всем уважении, но такая фраза выглядит чрезвычайно странно. Язык не религия чтобы ему кого-то посвящать. Получается не язык для программиста, а программист для языка. Лучше поправить, IMO.
Все что мешало работать — убрали до 1.0, имел в виду это.
На практике проблем не возникает. Наоборот, библиотека котлина одна из немногих, исходный код которой приятно читать.

Говорю за себя, но Котлин нужно пробовать. Он как хорошие кроссовки — и подошва удобная, и сами не слишком тяжелые. А всевозможные теоретические аргументы за четыре года успели обсудиться, и тот дизай который есть сейчас уже доказал свою оправданность на реальных больших проектах.
Подобные проблемы с читабельностью обычно решаются нормальным форматированием. Например поля класса в Котлине никто в одну строчку не пишет, разбивают на несколько. Код в статьях призван просто демонстрировать принципы, и не всегда похож на "промышленный".
«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, спасибо за наводку! Я попробовал связаться с Майком, но он никак не реагирует уже сутки, так что источник, откуда он взял эту информацию, остается неясным. Статью поправил.
Но согласитесь что `return` (в синтаксическом смысле) для функций не обязателен. А то получается что в JavaScript есть, а в Kotlin нету.
Тогда это уже требование «чистоты» (purity) к функциям, которого в Kotlin (пока) нету по принципиальным причинам.
Не очень понимаю, что Вы имеете в виду про обязательность `return`. Можете пояснить? Это Kotlin:
fun log(s: String) = if (loggingEnabled) println(s)
Я с вами полностью согласен, проблема скобок при вызове функций (в Haskell) это серьезный фактор читабельности кода. Специально для этого случая в Kotlin есть трюк, позволяющий вместо функций использовать методы на объектах.

Стандартный пример на Haskell:
take 3 (reverse (filter even [1..10]))
take 3 . reverse . filter even $ [1..10]

Приписывается на Kotlin почти дословно:
(1..10).take(3).reverse().filter(::even)
Я с вами полностью согласен, проблема скобок при вызове функций (в Haskell) это серьезный фактор читабельности кода. Специально для этого случая в Kotlin есть трюк, позволяющий вместо функций использовать методы на объектах.

Стандартный пример на Haskell:
«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 (никогда сам не использовал)

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity