
dimiii
12.06.2018
15:20:21
Меня лично, всегда изумлял http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/tip/src/share/classes/java/net/URL.java авторства самого Гослинга

Alexander
12.06.2018
15:20:28

Quantum Harmonizer
12.06.2018
15:20:50
А что там не так?
extends Hashtable как минимум, это НЕ МОГЛО пройти кодревью, и, наверное, было кем-то засунуто прямо в мастер

Alexander
12.06.2018
15:20:51
Они вроде в языке ничего не портят...

Google

dimiii
12.06.2018
15:21:05

Alexander
12.06.2018
15:21:18
HashTable тогда был жив. А потом умер

Quantum Harmonizer
12.06.2018
15:21:18

Vladimir
12.06.2018
15:21:31

dimiii
12.06.2018
15:21:36
Тогда j.u.collections и не было природе еще

Anton
12.06.2018
15:21:58
вы про префы или про проперти

Quantum Harmonizer
12.06.2018
15:22:18

Alexander
12.06.2018
15:22:44
Оно все создавалось как альтернатива ini. И поверьте мне (я еще на паскале писал, когда он жив был), очень хорошая инициатива. Сейчас, конечно, давно протухло.

Quantum Harmonizer
12.06.2018
15:23:23

Vladimir
12.06.2018
15:23:44

Alexander
12.06.2018
15:23:45
Так и он был хорош... по тем временам.

Quantum Harmonizer
12.06.2018
15:24:05

Google

Vladimir
12.06.2018
15:24:45

Quantum Harmonizer
12.06.2018
15:25:27
а вот extends GenericClass<Concrete arguments> ломает

Alexander
12.06.2018
15:26:16
Мы сейчас это понимаем. По тем временам - это считалось годным решением. Объектный угар, наследование и полиморфизм. Я думаю, что класс вообще создавался как финальный для конкретного внутреннего использования. Я и в более позднем коде такие решения видел.

Vladimir
12.06.2018
15:27:46

Quantum Harmonizer
12.06.2018
15:28:16

Alexander
12.06.2018
15:29:11
Ими вообще лучше не пользоваться. Не понятно, зачем.

Egor
12.06.2018
15:30:35
Парсить .properties файлы вручную
...а, у меня удалили стикер
ну да

Quantum Harmonizer
12.06.2018
15:31:07

Egor
12.06.2018
15:31:30
Ага, я забыл

Alexander
12.06.2018
15:31:40
А кто сейчас ini пользуется? Это было в доXMLную эру

Quantum Harmonizer
12.06.2018
15:32:15

Alexander
12.06.2018
15:33:07
Ну для хранения конфигурации да.

Quantum Harmonizer
12.06.2018
15:35:10

Alexander
12.06.2018
15:36:44
Не вижу, в чем проблема.

Quantum Harmonizer
12.06.2018
15:37:14
ну если нужна хоть какая-то иерархия, YAML гораздо привлекательнее

Melodeiro
12.06.2018
15:37:16
Эра json еще не наступила?:)

Google

dimiii
12.06.2018
15:37:39
etcd!
вроде все варианты рассмотрели, нет?

Alexander
12.06.2018
15:38:10
Да любой иерархический формат. XML просто встроен в JVM, остальное нет.
Правда к вопросу о граблях, мне очень не нравится стандартная реалзиация XML

Quantum Harmonizer
12.06.2018
15:39:00

Alexander
12.06.2018
15:39:33
Да, там API кошмарненький :)
Минимальная Json библиотека всего несколько десятков килобайт. Если и так таскаешь с собой kotlin-stdlib, то в общем-то не жалко.

Quantum Harmonizer
12.06.2018
15:43:13
как жаль, что JSON — такое говно
* в контексте статических языков

dimiii
12.06.2018
15:43:33

Alexander
12.06.2018
15:53:56
Javax.json примерно такой же кошмарный, как и стандартный XML. Думаю, что поэтому и не запихали.

Quantum Harmonizer
12.06.2018
15:56:07

Alexander
12.06.2018
15:56:22
А что в ней плохого?

Quantum Harmonizer
12.06.2018
15:57:01

Alexander
12.06.2018
15:58:08
Не вижу проблемы, честно говоря. Пишется один раз when на входе и усе. Я правда не исползую Json внутри кода, только при чтении конфигурации.

Melodeiro
12.06.2018
15:58:15
Пишем файл в пару строк, читаем тоже, и у нас готовые объекты, коллекции в памяти

Quantum Harmonizer
12.06.2018
15:59:13

Alexander
12.06.2018
15:59:26
Нет.

Google

Alexander
12.06.2018
15:59:32
Зависит от того, что именно надо
Если на входе сразу превращать в свою структуру, то эта штука вообще один раз встречается. Как верно было замечено, можно вообще взять что-то типа jackson и просто напрямую превращать файлы в объекты (я так не делаю, но это можно).
Обычно кстати такой фигни нет, поскольку при чтении заранее знаешь, что именно ожидаешь увидеть в поле с определенным именем. Надо только поставить проверку на ошибку.

Quantum Harmonizer
12.06.2018
16:01:56
Можно хлебнуть говна. Можно совсем немножко, а можно посредством библиотеки.

Egor
12.06.2018
16:02:09
Просто в котлине все еще нет паттерн матчинга
*картинка с ослом из шрека*

Alexander
12.06.2018
16:02:49
Вот уж священная корова этот ваш паттерн матчинг.
Я понимаю, зачем бывают нужны тайп-классы, но полноценный паттерн матчинг - это по-моему просто фетиш.

Quantum Harmonizer
12.06.2018
16:03:58

Egor
12.06.2018
16:04:03
А что делать, он слишком удобный

Quantum Harmonizer
12.06.2018
16:04:12

Alexander
12.06.2018
16:04:25
Поддерживаю предыдущего оратора

Egor
12.06.2018
16:04:30
Как раз чтобы структуры разбирать
Но да, в Котлине не приживется

Quantum Harmonizer
12.06.2018
16:04:48

Igor
12.06.2018
16:04:53
А как же компиляторы писать без этого ;)

Alexander
12.06.2018
16:04:59
Где-то была дискуссия с людьми от JetBrains, они сказали, что будут думать про паттерн матчинг, если кто-нибудь реально приведет пример, где без него никак. Никто не привел.

Quantum Harmonizer
12.06.2018
16:05:04

Alexander
12.06.2018
16:05:27
Вот компилятор - это был как раз в этой дискусси единственный use-case/

Vladimir
12.06.2018
16:07:08

Google

Egor
12.06.2018
16:07:19
Хороший пример адекватного паттерн-матчинга это, например, в динамическом функциональном языке жисон разбирать (привет эликсир)

Alexander
12.06.2018
16:07:56
Не надо пожалуйста динамических функциональных языков.
Никто не сомневается, что чисто функциональные языки без этого не живут, что статические, что динамические, ну а нам-то, рыбам, зачем.

dimiii
12.06.2018
16:09:39

Egor
12.06.2018
16:10:47
до ума не доведен (пока?)
Я уже не вспомню, в чем проблема была, когда делаешь проверку на null, а оно не кастится к не-нулабл типу
Вспомнить бы кейс

dimiii
12.06.2018
16:11:59

Egor
12.06.2018
16:12:34
Да нет, траблы иногда вполне осязаемые

dimiii
12.06.2018
16:12:56
Вспомнить бы кейс
Я бы предложил отсутствие глубокого деструктурирования, но вот это совсем ни разу не понадобилось пока

Igor
12.06.2018
16:15:33

Egor
12.06.2018
16:16:06
Слишком мейнстримно, камон

Alexander
12.06.2018
16:16:20
И убиться об нее :)

Sergey
12.06.2018
16:20:40

ven
12.06.2018
18:29:36
сорри за офтоп. Отстал.Не нашел Почему в Идее в Джаве переменные предваряются "val" вместо их типа (с какого-то врем. помимо SAM замены на лямбды, и до кликатна коде)? Разве в джаве тоже val уже вводится ?

1337
12.06.2018
18:30:53
java10

ven
12.06.2018
18:33:44
а убрать это (только это, не лямбды) можно?

Maxim
12.06.2018
18:36:48

ven
12.06.2018
18:38:17
в Джаве(не котлине) все кр.final мутабельны. неудобно. путаешь сырцы с котлином токо.