
Baruch
23.03.2017
19:25:11
Напрасно вы это всё. Я никогда не ругал Котлина.

guga
23.03.2017
19:26:22
только ярых фанатиков?

Alexander
23.03.2017
19:28:57

Igor
23.03.2017
19:29:53

Google

Kirill
23.03.2017
19:30:53

Vladislav
23.03.2017
19:32:27

Baruch
23.03.2017
19:32:37

Kirill
23.03.2017
19:32:47

Alexander
23.03.2017
19:33:01

Baruch
23.03.2017
19:33:18
ага

Диёр
23.03.2017
19:33:19
А если котлин может в js, то получается что его можно использовать для unity?

Alexander
23.03.2017
19:34:17
А еще для джумлы
И друпала
Жкевери на котлине наверно удобно

Sergey
23.03.2017
21:12:06

Viktor
23.03.2017
21:12:42

Google

Sergey
23.03.2017
21:12:48
есть еще жс

guga
23.03.2017
21:12:58
и ещё подобие пайтона есть
boo кажись
или как-то так

Sergey
23.03.2017
21:13:52
https://unity3d.com/learn/tutorials/topics/scripting/c-vs-js-syntax?playlist=17117

Marat
23.03.2017
21:17:11
и морально устарел

Mr.
23.03.2017
22:47:04
поясните про Java 9 Modules
пора бы уже

Anton
23.03.2017
22:50:42
ну будет, в Java 9

Mr.
23.03.2017
22:51:55
Да ладно, я и не знал. Я спрашивал есть ли тут кто-то кто может пояснить в чём прикол этих самых "модулей".

Marat
23.03.2017
22:52:47

Alexander
23.03.2017
22:52:57
по фану

Mr.
23.03.2017
22:52:59
Ладно пойду JSR читать...

Anton
23.03.2017
22:53:00
прикол - разве что в том, что некоторые программы врядли так сразу на девятке запустятся

Mr.
23.03.2017
22:53:21
чем transitive отличается от static
особенно мне выносит мозг вот что
module M.N {
requires A.B;
requires transitive C.D;
requires static E.F;
requires transitive static G.H;

Anton
23.03.2017
23:01:01
чёт както мудрёно, да

Google

Mr.
23.03.2017
23:01:33
А, всё попроще. Транзитивное требование заставляет все модули которые требуют данный модуль, неявно требовать требуемые модули данным модулем.
A -transitive> B -> C
A -implicitly> C
Ага. Я понялл. Теперь не будет просто import, а при запуске JVM не будет тащить за собой вагон библиотек и маленькую тележку.

Anton
23.03.2017
23:05:22
ну это вроде сам смысл модуляризации jdk был.
а что такое static - нашёл?

Marat
23.03.2017
23:06:20
добавили процесс линковки, теперь почти как во взрослых языках будет...

Anton
23.03.2017
23:06:55
а, типа во время компиляции требуемая зависимость?

Mr.
23.03.2017
23:07:12
Они переписали там что-то. Теперь компилятор жабы работает ну прямо как gcc
Они даже думают зарелизить его как отдельное приложение
sjavac

Anton
23.03.2017
23:07:43
чёт я нигде разумного описания этого дела не найду даже

Mr.
23.03.2017
23:07:43
Действительно, там появилось что-то вроде линковки и оптимизации байт-кода.

Marat
23.03.2017
23:07:54


Mr.
23.03.2017
23:08:25
Ну смотрите, теперь не будет в Java пакете папки jre
Вообще. Не будет больше rt.jar
В первую очередь это сделано для переносимости. Я так понял они хотят выбросить отдельные пакеты ME/EE
static оказывается попроще, хоть и не логично. Он просто указывает что модуль обязателен при компиляции, но не обязателен при рантайме.
Есть ещё открытый и нормальный модификатор модуля.
open module/module
Тут я нихера не понял.
A normal module, without the open modifier, grants access at compile time and run time to types in only those packages which are explicitly exported. In addition, a normal module grants reflective access to types in only those packages which are explicitly opened.
An open module, with the open modifier, grants access at compile time to types in only those packages which are explicitly exported, but grants access at run time to types in all its packages, as if all packages had been exported. In addition, an open module grants reflective access to types in all its packages.
Очевидно он влияет только на магию classpath и юзаться будет в крайних случаях


Anton
23.03.2017
23:11:55
open придумали для того чтобы всякие DI-фреймворки остались работать

Mr.
23.03.2017
23:12:24
Похоже, ораклы выбросили в трубу обратную совместимость, лол.

Google

Anton
23.03.2017
23:12:28
то есть во время компилияции, как написано, он весь модуль не открывает. но во время рантайма всё равно можно будет достучаться до внутренних пакетов рефлекшенов

Marat
23.03.2017
23:12:41

Anton
23.03.2017
23:12:41

Mr.
23.03.2017
23:12:58
Ну да, ну понятно, я ж говорю магия :D

Anton
23.03.2017
23:13:27
пошли на поводу у недобросовесных пользователей :)

Mr.
23.03.2017
23:13:44
Модули поддерживают аннотации.

Admin
ERROR: S client not available

Mr.
23.03.2017
23:14:01
Смотрим дальше...
exports P.Q;
exports R.S to T1.U1, T2.U2;
uses V.W;
provides X.Y with Z1.Z2, Z3.Z4;

Marat
23.03.2017
23:15:18
Подозреваю, что ещё отдельная свистопляска нужна будет с приложениями, которые плагины юзали через ServiceLoader

Mr.
23.03.2017
23:16:07
Кстати в целом согласно стандарту подгружать модули динамически нельзя. Они обязаны быть на этапе компиляции.
Это "постулат" модулей.

Marat
23.03.2017
23:16:23
о, увидел костылик для jdbc

Mr.
23.03.2017
23:16:47
На рантайме их может не быть.
Ошибся

Anton
23.03.2017
23:16:59

Marat
23.03.2017
23:17:48
module com.mysql.jdbc {
requires java.sql;
requires org.slf4j;
exports com.mysql.jdbc;
provides java.sql.Driver with com.mysql.jdbc.Driver;
}
provides-with

Mr.
23.03.2017
23:19:38
Ключевое слово opens - на самом деле модификатор доступа, который позволяет члену быть доступным ТОЛЬКО на этапе рантайма
Мммм, то есть член может быть публичным но не будет доступен вне модуля через код?

Marat
23.03.2017
23:20:04

Google

Mr.
23.03.2017
23:20:38
на девятке вообще что-то взлетит?
Почему они такой хернёй страдают вместо того же var

Marat
23.03.2017
23:21:04

Mr.
23.03.2017
23:21:20
Кстати повышает порог входа заоблачно
Ыыы

Anton
23.03.2017
23:21:53

Mr.
23.03.2017
23:22:36
uses V.W;
provides X.Y with Z1.Z2, Z3.Z4;
я так и не понял что это
The uses statement in a module declaration specifies a service interface which the current module may discover via java.util.ServiceLoader.
зашкварище какое-то
О...
ООООО Я понял

Marat
23.03.2017
23:24:44

Mr.
23.03.2017
23:25:45
The provides statement specifies a service interface for which the with clause specifies one or more possible service implementations to java.util.ServiceLoader.
Почему я не знаю что это?

Marat
23.03.2017
23:26:32
Аж в 3 местах надо будет говорить, что ты реализуешь интерфейс: в классе, в файлике внутри META-INF, а теперь еще и в module-info.java

Anton
23.03.2017
23:26:40
бгг

Mr.
23.03.2017
23:27:05
pizda
Так, поясните про сервисы.

Marat
23.03.2017
23:29:07