Сборник заметок о ненавести к JVM
e в степени pi в сетепи
- JVM type erasure
- Как было до generic на уровне byte code
- method invoke
- Что привнесло java 5 - byte code
- method invoke не иззменился
- добавили sign в byte code
- Что могли бы сделать
- monomorh как C++
- scala implicit class type param
- Как было до generic на уровне byte code
- Где блин usize ?
- java array limit 2gb
- вообще вон, в C есть usize тогда еще было понятно что архитектура будет меняться
- hashCode на уровне Object
- Почему лимиттирован в 32bit ?
- equals на уровне Object
- Проблемма эквивалентности и идентификации объектов
- просто эквивалентность - понятие относительное, и это важно не для самого объекта, а тому кто им пользуется, привет Типажи.
- Проблемма эквивалентности и идентификации объектов
- Динамические лямбда функции - динамическое создание
- Проблемма - javac и прочие - ни разу не компилятор
- Рефлексия - зло
- вообще могли бы в работу в макросы и в compile time
- макросы - не плохобы сразу манипулировать деревом tAST
- Дублирование на уровне byte code - лишние инструкции
- просмотреть список инструкций
- Дублирование if
- нафига switch когда есть if
- а вообще можно было бы завести нормальные pattern match
- ну в scala тоже с этим так себе
- Пул констант - мальенький
- Зачем throwable exception в сигнатуре - ???
- А зачем отдельно надо было примитивные типы ?
- Очень мало средств для метапрограммирования
- Развитая рефлексия - которое зло
- Нет чистых функций и контроля side effect
- см borrow checker в rust
- это как так iterator - immutable ?
- Нет adhoc полиморфизма
- NewType ???
- вообще если что-то унаследовал, то вот сузить уже тяжелее
- Блин null и всякие NPE
- а могли бы type sum
- нет просто struct
- нет union
- а где бы прозрачных типов ???
- а зачем вообще в класическом ООП нам связывать methods + data в тип
- лишние инструменты и отсуствие стандартов в вопросах
- тестирование - много разного и все убогие
- пакеты - то же самое
- переопределение операторов ?
- типично нельзя переопределить только
<
- типично нельзя переопределить приоритет операторов
- типично нельзя переопределить только
- другая крайность - много всякого можно переопределить, но нет точных границ - привет scala
- await/async - другая крайность
- ох уж for compreheation
- а потеря информации о типах, о ast в байт - коде
- а в javadoc могли бы уже и markdown прикрутить
- сколько должно было пройти времени чтоб появился repl
- когда же будет hotreload для method sign changed