На Хабре мы публикуем видео всех докладов, по одному на пост, чтобы можно было в комментариях обсудить то, что не успели обсудить на JetBrains Night, особенно с теми, кто не смог приехать лично.
Сегодня — видео доклада Дмитрия Жемерова, ведущего разработчика в команде Kotlin. Встречайте, Дмитрий Жемеров, Kotlin как первый шаг к JVM:
Комментарии (11)
sshikov
11.11.2016 10:32-1А есть планы переделать/доделать maven plugin, чтобы он работал скажем как аналогичный от Eclipse для Groovy?
yole
14.11.2016 14:49Можно, пожалуйста, конкретнее? «Как аналогичный» в каком отношении?
sshikov
14.11.2016 15:38Да все очень просто на самом деле. Речь о совместной компиляции kotlin+java.
Вот как работает groovy: используется штатный maven-compiler-plugin, тот самый, который компилирует java. Eclipse groovy компилятор (groovy-eclipse-compiler) это расширение к нему.
Соответственно, в итоге никаких проблем с совместной компиляцией groovy+java нет, все работает из коробки. За зависимостями внутри проекта можно не следить — это забота компилятора.
А теперь сравните это с тем, что нужно сделать, чтобы скомпилировать проект, содержащий kotlin и java:
To compile mixed code applications Kotlin compiler should be invoked before Java compiler.
Ну и сравните сложность настройки.
Вот это вот все — довольно сильное ограничение.Я не хочу сказать, что собрать такой проект невозможно, но на сегодня это скажем так, далеко от идеала. Который, как мы видим на примере groovy, вполне возможен.
yole
14.11.2016 16:07А зачем в случае котлина следить за зависимостями внутри проекта? Компилятор котлина отлично умеет читать исходный код на java, поэтому то, что нужно запускать его перед запуском javac, никак вас не ограничивает в том, как именно у вас зависят друг от друга классы на kotlin и на java.
Сложность настройки — да, согласен, но это то, что нужно сделать один раз, причём не руками, а предоставить это IDE.sshikov
14.11.2016 16:47Пардон, но насчет «предоставить это IDE» я не понял. Вы вот про это, например?
<configuration> <sourceDirs> <sourceDir>${project.basedir}/src/main/kotlin</sourceDir> <sourceDir>${project.basedir}/src/main/java</sourceDir> </sourceDirs> </configuration>
или вот про это?
<execution> <id>default-compile</id> <phase>none</phase> </execution>
По-моему и то и другое отдать IDE не получится. Да, насчет один раз — тут вы правы, это не каждый день делается. Ну и в целом это не шоу стоппер, конечно же, но скажем так, некоторое неприятное неудобство, хотя надо сказать, по сравнению с первыми версиями плагина уже стало намного лучше.yole
14.11.2016 17:11+1Про «предоставить IDE» я имею в виду, что у нас есть экшн Tools | Kotlin | Configure Kotlin in Project, который автоматически вносит нужные изменения в ваши pom.xml.
sshikov
15.11.2016 16:22Кстати, вот это вот: «Компилятор котлина отлично умеет читать исходный код на java, поэтому то, что нужно запускать его перед запуском javac, никак вас не ограничивает в том, как именно у вас зависят друг от друга классы на kotlin и на java.» на первый взгляд ниоткуда не следует. Т.е. открыв документацию на тот же maven plugin, я там этого не вижу. Было бы неплохо как-то отразить этот факт.
technik
14.11.2016 15:37-2Сделайте уже мультиязычность и русификацию ваших продуктов наконец!
Я конечно могу пользоваться и так, но на родном языке всё равно удобнее.
point212
16.11.2016 21:17«Привет, Перл» :)
Научите Перл компиляться в JVM и все остальное станет просто не нужно )))
Синтаксического сахара в нём просто целая коробка рафинада )
lesha_firs
Научите PyCarm нормально работать с pytest. Цены вам не будет!
Что хотелось бы:
— подхват fixture из `conftest.py`
— подхват встроенных fixture
— встроенные переменные типа `pytest_plugins, pytestmark`
UbuRus
https://youtrack.jetbrains.com/issues