Продам:
1. SCALA для нетерпеливых — 300 грн
2. Приемы объектно-ориентированного проектирования. Паттерны проектирования — 200 грн
3. Java Эффективное программирование
4. Структуры данных и алгоритмы в Java. Классика Computers Science.
5. «Современные операционные системы»
Ми чикаєм OpenJdk від оракла, не HotSpot.
Вот здесь не понял вас.
Oracle JDK и OracleOpenJDK JDK 11 builds сами по себе билды OpenJDK c виртуальной машиной под названием HotSpot. Внутренности практично идентичны для версий 9 и выше. До этого все таки было много отличий: -XX:+UnlockCommercialFeatures, диагностические тулзы (Java Flight Recorder), но внутри все равно HotSpot
GraalVM
Все таки нужно понимать что GraalVM объединяет под единым названием:
1. Graal (JIT компилятор для JVM). Можно использовать с JDK 9 и выше, благодаря JEP 317
2. Truffle (в грубой форме — фрейморк для построение AST)
3. SubstrateVM ( Ahead-of-time Compilation и запуск как единного бинарника/native image)
4. и т.д. Полный список github.com/oracle/graal
Если 2 пункт является довольно узкоспециализированным, то остальные 1 и 3 очень даже применимы для рядового разработчика или обычных программ.
Особенно 1, Twitter получил хороший буст при замены C2 на Graal:
В продакшне мы экономим 8% утилизации CPU просто с помощью замены C2 на Graal. А в масштабах Twitter это много денег.
https://habr.com/company/jugru/blog/349638/
Serverless архітектура
Вот здесь как раз и приходит на помощь связка Graal + SubstrateVM:
1. Быстрый старт приложение
2. Единый бинарник/native image, что ведет за собой удобный деплой.
3. AOT компиляция
Micronaut Framework
И вот здесь стоит вспомнить что не все так сладко в связке Graal + SubstrateVM и есть разные ограничения и одно из них это dynamic class loading, что вызывает проблемы для «стандартного» приложение/стека (Spring/Hibernate). И вот здесь появляется Micronaut с его EFFICIENT COMPILE-TIME DEPENDENCY INJECTION AND AOP. Ждем ответа от Pivotal в виде Spring Fu
Vert.x
Я бы еще добавил сюда рост популярности к асинхронным и не блокирующим вычислениям:
1. Reactive Relational Database Connectivity https://github.com/r2dbc
2. Project Loom: lightweight threads/coroutines/continuations и т.д. Нативная поддержка в самой JVM
3. Kotlin Coroutines https://github.com/Kotlin/kotlin-coroutines/tree/master/examples
Законно иметь оружие в этой стране невозможно в принципе
А в чем проблемы ? С 21 гладкоствольное, с 25 нарезное. Документы на получение не вызывают большой головное боли. Не все так просто как в штатах, но вполне реально. Да есть момент что вы не можете владеть короткоствольным оружием, если не относитесь к определенным группам граждан. Но единственная большая проблема связанная с самозащитой (насколько я знаю), это понятие самообороны с помощью огнестрельного оружие в Уголовном кодексе Украины.
Хотя это понятие является субъективно-оценочным, Уголовный кодекс Украины указывает на то, что меры и средства, примененные потерпевшим, должны соответствовать характеру и степени угрозы от нападающего . То есть применение оружия против безоружного человека может быть расценено как превышение мер самообороны, если не вдаваться в детали.
В отличие от9-ки, никакого изменения по перформансу или потреблении памяти замечено не было.
Graal не пробовали использовать в качестве C2 компилятора ? Учитывая что он теперь есть в JDK 10 без специальных приседаний было бы интересно увидеть графики различия на вашем ворклоаде.
С ними можно добиться существеного буста перфоманса за счет избегания боксинга..
1. Автор ничего не писал про боксинг
2. Укажите мне связь между возможности создавать struct и боксинга ?)
Если первое про использование памяти, а второе про проблемы примитивных типов и их reference реализаций в мире jvm)
In Java, generic types are a purely a compiler trick. The JVM has no notion of which classes have type-arguments, and it’s unable to perform parametric specializations at runtime.
И здесь имеется ввиду. Что дженерики в jvm не совсем честные. Они есть только на этапе компиляция для проверки типов. В рантайме есть только мета информация
И если вас уже так сильно цепляет проблема боксинга, то есть JEP 169
openjdk.java.net/jeps/169 где решается проблема и возможность писать «List [int]»
С вашего позволения я бы все таки прекратил бы этот спор.
The CLR has coroutines (implemented with the C# ’yield’ keyword). The JVM does not.
мне все таки кажется, что асинхронные операции ближе к операционным системам. Смешивать ключевое слово языка, виртуальные машины в данном контексте — очень странно
arguably a JAR (i.e. Java ARchive) as evidenced by being able to specifiy a jar in the classpath and have it treated like a folder of code.
О какой JVM говорит автор ? Здесь важно учитывать что JVM это спецификация, следуя которой вы можете написать свою виртуальную машину и после сертификации от oracle называть ее JVM. Так вот одна из jvm под названием Excelsior JET компилирует java классы в исполняемый бинарник.
Можно комментировать и другие цитаты автора, но отличия конечно же будут. Но я не говорил что лучше а что хуже...
@Oleksii Kraieviy @Stanisav Silin
Я изначально не правильно выразился. Изначально я имел ввиду JVM, а не Java.
Один из самый простых аргументов, это то что в JVM вложили намного больше времени и усилий в отличии от CLR. Возможно в скором времени благодаря .NET Core все изменится.
Другой момент, вытекает из первого, возможность работы на linux открывает более широкие возможности, за примером далеко ходить не нужно, тот же NETTY, при запуске на linux позволяет более тесно интегрироватся и использовать нативные возможности linux.
Так что ни кого не хотел обидеть, в плане языка C# имеет куда более интересные возможности и плюшки, но вот что касается виртуальных машин исполнения )
async/await
Уже давно есть, только используются не языковые конструкция а библиотека языка — CompletableFuture.
Если нужно еще больше сахара, можно использовать Kotlin/Scalaasync {
doSomething(foo)
...
}
При это async, не ключевое слово, а библиотечная функция
Довольно не удачный наезд на Java, со стороны многопоточности, где .NET платформа, в качестве догоняющего
вот новый JEP, который основан на старом JEP 305
openjdk.java.net/jeps/325
— А где AI будет использоваться ? И для каких целей ?
— Как хранятся и раздаются растровые данные ?
— Чем сшиваете фотки с дрона ?
— Какой стек используется на стороне фронта ?
openjdk.java.net/projects/jdk/10
286: Local-Variable Type Inference — ну вот вам сахара немного дали )
Я думаю что вы уже слышали про новый релизный цикл.
Developers who prefer rapid innovation, so that they can leverage new features in production as soon as possible, can use the most recent feature release or an update release thereof and move on to the next one when it ships
Вот и стараются меньше пообещать, и справится с обещаным. Будет время до релиза, может еще что-то выкатят.
Я все самые большие вкусняшки уже выкатят в следующем LTS верисии
б.у. шки дешевле в разы
Нужно учитывать что есть внутренняя сборка, заводы skoda, toyota и наверное другие, от этого и цена будет значительно меньше, так как растаможки нет на машину.
В предрелизных билдах была 32 версия OpenJDK 9, после выхода GA доступна только 64 для linux. Если очень сильно заморочится, можно найти версию, люди ее на файлообменники заливали.
Возможный дизайн подсистемы макросов в dotty
Довольно интересный выпуск с гостем Евгением Бурмако, в тему макросов
scalalaz.ru/series-23.html
можно еще добавить плейлист с DevOpsDays Moscow 2017
www.youtube.com/…HpqVpASHAkCeTPkNjB6-XmXS3
и сколько заплатите налогов с вашего европейского счета ?