Чтобы добавлять сообщения и комментарии, .

@ermine:
ermine

Неделю назад воткнула в свой gradle скрипт на котлине. Неделю радовалась, пока сегодня не обнаружила, что idea не умеет такой вариант конфигурации gradle, а обнаружила это, потому что решила вставить в депендсы еще одну сборку, чтобы и в свой мега-проект вставить такой же крутой скрипт конфигурации (вместо убогого json). С этим видом конфигурации еще одна печаль — вообще нет документации на эту тему, приходится списывать из чужих кодов.

@ermine:
ermine

Чуть не сломав себе одну извилину в своем мозгу, но зачем-то перевела build.gradle на build.gradle.kst, то бишь внедрила скриптинг на котлине вместо groovy. Чуть не сломала, потому что никак не могла найти в примерах, как добавлять левые репозитории мавена и как указывать версию котлина. В итоге, первое решалось через maven { setUrl("url"), а на втором я забила — градле сам тащит котлин версии 1.1-dev-xxxxx, как того велят kotlinx.coroutines. Короутины, кстати, фигня — они позволяют писать код "плоско", то бишь без оглядки на обработчиков из CompletionHandler, зато фиг поймшь, как без этих обработчиков надо жить в некоторых случаях. Всё же писать на golang проще — там нет хитрых скриптов сборки и нет расширяемости языка, читать в интернете про то "как это сделать" нечего, в отличие от котлина....

@ermine:
ermine

Две детские неожиданности в котлине: у меня не работает функция javaClass, хотя работает A::class.java (и в частности, не работает this:class.java). а еще долго искала почему не работает getResourceAsStream(), оказалось, надо к имени файла дописать строчку "/resources/", т.е. писать "/resources/filename" вместо "filename".

@ermine:
ermine

Сегодня праздник — объединение наций, кажись. Сегодня в котлине научилась объединять все типы так, что val a: Boolean? или String? запросто принимает значение 123 и при этом ничего не падает. Адриатик не тонет!

@ermine:
ermine

Обнаруживаю, что забываю в коде на котлине вписывать круглые скобки в if (...). Зачем нужны эти скобки, если вы нацелились на концепцию "поменьше букв писать"? (в говядине скобки в ifах не нужны)

@ermine:
ermine

Раз в котлине нет своего разборщика командной строки, а в яве их — тысячи, то я удумала в качестве разминки перегнать паккадж flag из говядины, даром что он совсем небольшой.

@ermine:
ermine

Начать программировать на котлине оказалось тяжелым занятием: с чего начинается программирование на любом языке? конечно, со чтения и разбора аргументов командной строки! так и не нашла доступной библиотеки на котлине для этого, неужели надо писать ручной парсер командной строки?

@ermine:
ermine

Целый день гуглила-гуглила и переругивалась с @vt (дядечка втирал, что надо абстрагироваться!) и вроде бы определилась в выборе ембедед базы данных — LMDBJava. Что скажете?

@deep:
deep

кстати выпустили таки без javascript из коробки, но обещают наверстать.

@deep:
deep

У меня только один вопрос "Что это за пиздец!?" kotlinlang.org Как они себе представляют несколько вложенных foreach-ей map-ов и filter-ов? Там просто будет адский ад из лейб этих.

@ermine:
ermine

async {} works? Kak blin v emulatore vkluchat' russkie bukvy?

@dluciv:
dluciv

Или я чего-то не догнал, или в Котлине, если ты хочешь сделать функцию с локальными переменными, тебе придётся возвращать значение при помощи `return`.

Я это объехал, но код красивее что-то не стал:

```
fun bugaga() : Int = when(true) { else -> {
val z = 5
z
}}
```

Или я чего-то очень-очень не догнал, или Котлин пилили фанаты `goto`...

@deep:
deep

А что, он уже готов? 280 просмотров у видяшки на ютубе с новостью о поддержке котлина в идее 15 (

@dluciv:
dluciv

Есть тут люди, которые рубят во всяких Мавенах и прочих унылых ужасах?

* Есть Hello World на Котлине: pastebin.com
* Есть описание проекта для Мавена: pastebin.com — тоже ничего особенного, фактически минимум, чтобы Котлин собирался.

Если билдишь в чистый каталог, то всё зашибись. А если билдишь поверх уже собранного, то выдаёт следующую дрянь:

```
[INFO] Kotlin Compiler version 1.0.0-beta-2189
[INFO] Compiling Kotlin sources from [D:\\tmp\\mav\\mavk2\\my-app\\src\\main\\kotlin]
[INFO] Classpath: D:\\tmp\\mav\\mavk2\\my-app\\target\\classes;C:\\Users\\d\\.m2\\repository\\org\\jetbrains\\kotlin\\kotlin-stdlib\\0.1-SNAPSHOT\\kotlin-stdlib-0.1-SNAPSHOT.jar;C:\\Users\\d\\.m2\\repository\\org\\jetbrains\\kotlin\\kotlin-runtime\\0.1-SNAPSHOT\\kotlin-runtime-0.1-SNAPSHOT.jar
[INFO] Classes directory is D:\\tmp\\mav\\mavk2\\my-app\\target\\classes
[INFO] Module name is my-app
[ERROR] D:\\tmp\\mav\\mavk2\\my-app\\src\\main\\kotlin\\name\\dluciv\\test1\\App.kt: (4, 1) ''public fun main(args: kotlin.Array<kotlin.String>): kotlin.Unit'' is already defined in name.dluciv.test1
```

Т.е. он *до смерти* пугается только что откомпилированного самим собой кода. С Java таких дурацких проблем, понятное дело, нету.

С какой стати это происходит и как бороть?

@ermine:
ermine

как на модном языке котлин вбить в строчку нолик, типа "\000" + user + "\000" + password?

@khades:
khades

не вижу сильно хитрой необходимости в нём, учитывая что есть в яве Optionals и Project Lombok

@k0st1x:
k0st1x

увидел, что котлин очень вкусный и где-то даже удобнее, чем C#

@shaggie:
shaggie

Kotlin резко прятнее Java, целая куча родовых багов исправлена, при этом код выглядит привычнее для рядового разработчика, чем кложуры/скалы.
НО. 1) Провоцирует писать пачками map/filter/fold, при этом не являясь скалой. Как Jetbrains будет наращивать производительность получающегося выхлопа.
И. 2) После скалы выглядит всё-таки местами неполноценно и ограничивает в возможностях, только начинаешь разгоняться — хлоп по пальцам! Куда, мол, руки свои суёшь.
Но в целом выглядит перспективно и направление движения выбрано верное.

@wwarlock:
wwarlock

#kotlin #groovy #scala

Пересмотрел презентацию Андрея Бреслава о языке Котлин.
Получается, что они пытаются занять нишу между груви и скалой.
Котлин — статически типизированный язык, и при этом имеет меньше всяких неявных вещей.
В отличие, от Скалы, эти неявности проще диагностировать.
Если по простому, то всегда можно снавигироваться к той или иной реализации прямо в IDE.
В Scala, во многих случаях, без дебаггера не разберёшься откуда применился метод.

Не могу сказать, что это всё краеугольные камни в разработке, но наверное какую-то свою нишу займут, среди тех кому только и нужно что замыканий, да мал-мало синтсахара.

@sky:
sky

Ну не знаю. Прелесть NPE в том, что оно вылетает максимально близко к проблемному месту (в подавляющем числе случаев). А вот эти танцы с "?" только прячут ошибку. Удачного дебага, остается пожелать котловодам.
confluence.jetbrains.net

@Equidamoid:
Equidamoid

На сабже под андроид кодить можно?

@odin:
odin

kotlin-demo.jetbrains.com

@wwarlock:
wwarlock

Jetbrains выпускают новый статически-типизированный язык.
По ссылке объяснение, зачем они изобрели ещё один велосипед.
Там же приводятся отличия от Java и Scala.
confluence.jetbrains.net