• Новый фронтенд Одноклассников: запуск React в Java. Часть I
    +1
    По поводу Nashorn:

    github.com/graalvm/graaljs/blob/master/docs/user/NashornMigrationGuide.md

    никто просто так не будет выбрасывать наработки
    сдвинулись в стороны graal и truffle, так как реализовывать новые фичи из js мира достаточно ресурсоёмко, реализовывать с помощью truffle оказалось намного проще.
  • Новый фронтенд Одноклассников: запуск React в Java. Часть I
    +3
    как-то так
    github.com/oracle/graal

    отсюда берется CE версия
    для EE имеются закрытые дополнения касающиеся отдельных оптимизаций, но и сама EE платная для продакшена

    описание как собрать свою версию
    github.com/oracle/graal/blob/master/vm/README.md#example-build-the-base-graalvm-ce-image
  • No way back: Почему я перешел с Java на Scala и не собираюсь возвращаться
  • Как стать Java-разработчиком? А может быть, выбрать Python?
    +1
    ну это же элементарно =)

    всего лишь пару вопросов:

    1. как взять стектрейс у работающего приложения чтобы посмотреть где какие потоки находятся (обёртки которые подключаются через gdb и потом парсят вывод работают через раз, плюс требуют этого самого gdb на машинке и нужным пермишенов)
    2. как стейктрейс из лога вставить в ide чтобы она нормально переходила по клику на нужный файл и строку


    «А в остальном, прекрасная маркиза, всё хорошо, всё хорошо!»
  • Как модификаторы доступа тормозят развитие молодых специалистов
    +1
    к сожалению вы дали слишком старую ссылку

    начиная с 9й java
    openjdk.java.net/jeps/213

    It is also proposed that interfaces be allowed to have private methods.

    всё началось с момента как в интерфейсы довезли default методы которые предоставляют реализацию, а потом пошло поехало…

    www.journaldev.com/12850/java-9-private-methods-interfaces

    теперь ответить на вопрос на собесе «чем отличается абстрактный класс от интерфейса» стало ещё сложнее =)

    с шарпом тоже не всё так однозначно

    docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8#default-interface-methods

    дефолт методы туда подвезли и там же:
    Any of the modifiers are allowed on interface members.

    то есть ожидаем static, private и тд
  • Является ли Java лучшим языком программирования для начинающих?
    +1
    $ jshell
    |  Welcome to JShell -- Version 11.0.5
    |  For an introduction type: /help intro
    
    jshell> System.out.println("hi")
    hi
    
    jshell>
    


    openjdk.java.net/jeps/222
  • Спасет ли облако ультра-бюджетные смартфоны
    0
    на мобильных браузерах всяких адблоков нету

    та же ya.ru в инкогнито моде на хроме:
    1) 17.8k — сама index страница (пустая страница с минимальной разметкой и пару зашитыми скриптами весит почти 18кб??? половина из этого стили для одного блока ввода, вторая скрипты отсылки статистики)
    2) 29.8k — подтянули jqeury.min.js
    3) 71.7k — следущий скрипт, походу какая-то статистика, так как внутри Ya.Rum.sendTimeMark
    4) 39.4k — yandex metrica watch.js, куда же нам без всяких мониторингов

    и это якобы «минимализм с одним полем ввода» =) печаль
  • 11 советов для тех, кто использует Redux при разработке React-приложений
    +2
    обман, везде обман…

    сказали что 12 советов, но перечислили 11, так как 5й совет пропустили

    troll mode activated: интересно, а если у вас на год взять сервер, то вместо обещанных 12 месяцев тоже получишь 11?
  • Не Spring Boot’ом единым: обзор альтернатив
    0
    в данный момент набрасываю сервис на quarkus.io
    старт с CDI (поиск и инициализация всех бинов) занимает 1с

    ну и приложение посложнее чем в примерах =)
  • Как следует писать комментарии к коммитам
    0
    у себя придерживаюсь стиля распространенного во многих апачевских проектах, например spark:

    [mandatory ticket name][optional subsystem] description

    [SPARK-6237][NETWORK] Network-layer changes to allow stream upload.
    [SPARK-18073][DOCS][WIP] Migrate wiki to spark.apache.org web site

    дальше в самом комит сообщении можно развернуть более подробно, но уже по заголовку есть
    1. отсылка к багтрекеру с обсждением бага
    2. подсказка какие компоненты затрагивались (удобно для больших проектов)
    3. краткое описание, что сделано


    Квадратные скобки упрощают парсинг автоматическими утилитами.
  • Как следует писать комментарии к коммитам
    0
    Быстрое гугление подсказывает, что в 2018.1 версии наконец-то добавили partial commit. Но там как и на вашем скриншоте: комитить можно целиком chunk, выбрать отдельные строки нельзя. Поэтому пока лично я остаюсь на SourceTree.

    jetbrain blog.
  • Как следует писать комментарии к коммитам
    0
    По крайней мере в SourceTree всегда можно выбрать какие строки уйдут в комит, а какие останутся в unstaged. Полностью эмулируется поведение Interactive Staging.

    Как это делать из Idea не знаю, она у меня только для read-only работы с гитом, чтобы посмотреть как менялась история.
  • Как Netflix эвакуируется из региона AWS за семь минут
    0
    я же потому и попросил ссылки на доклады, так как сам ничего найти не могу
    везде они заявляют, что у них инфраструктура cloud native, но вот об использовании Kubernetes нигде ничего нету

    Поэтому если не сложно, то можно прямые ссылки на эти доклады?
  • Как Netflix эвакуируется из региона AWS за семь минут
    0
    Можно подробней ссылки про Netfix на Kubernetes?
    последнее, что видел The Evolution of Container Usage at Netflix
  • Пишем свой BitTorrent-клиент на базе библиотеки Bt
    0
    может я ошибаюсь, но разве Idea не идет сразу с Java8 если бандлом?
    ну и в требованиях я вроде уже встречал java 8
  • Comment from a drafted post.
  • Отмена роуминга. Нюансы и проблемы
    +1
    Да всё решаемо. Но не за две недели бумажкой от ФАС. Об этом и статья.

    идет вразрез с

    Еще в 2012 году Министерство связи России предложило отменить внутренний роуминг в стране. Понемногу этой идеей прониклись законодатели, и в 2016 году, в ноябре, отмена национального роуминга обсуждалась на официальном уровне с операторами связи. Тогда, 29 ноября, операторы сотовой связи пообещали разработать предложения по безроуминговым тарифам, а регуляторы взяли на себя обязательство изменить законодательство, чтобы роуминг можно было убрать.


    2 недели назад терпение ФАС истекло и вынесено предписание почему ничего не происходит.

    p.s. сам несогласен с требованием в обязательности магистральных операторов, это как у нас в РБ: цены между операторами нужно снижать, но напрямую они друг к другу в сети ходить не могут, только через землю в виде Белтелекома. Особо интересно это требование в контексте 4G/LTE связи, когда вышками владеет единая компания beCloud, а все операторы у неё арендуют мощности.
  • Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go
    +4
    1% если точнее =) а то у людей может сложиться предвзятое отношение после слова «полно»
  • Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go
    +5
    неправильно знаете =)

    нативный код может быть в 2 случаях:
    1) если вам не нравится стандартный java nio вы можете попросить epoll из линукса
    2) если не устраивает скорость ssl в java и вы используете обертку поверх openssl

    во всех остальных случаях чистая java которую хоть на android запускай.

    в 99% использований нетти всегда укладываются в стандартную java.
  • [Археология Java] Контекстно-зависимый инлайнинг трейсов в Java
    +3
    для полноты картины стоит добавить, что в этом же самом университете и этими же самыми людьми сейчас идет разработка Graal =)
  • Kotlin для Android: Теперь официально
    +3
    может ответ содержится в вашем вопросе?
    kotlin запускается на jvm и может использовать «c миллионом библиотек и готовых решений под неё», но добавляет немного синтаксического сахара. Можете из kotlin дергать java код или из java дергать kotlin код, все в ваших руках.

    Возможность решать какую-то задачу и решать удобно эту же задачу это совершенно разные уровни решения =)
  • «Через год-два .NET Core потеснит Java на рынке enterprise решений», — Интервью с Jon Skeet, Google
    0
    было, помимо локалити было много здравых идей там.

    вот только dryad был на уровне beta и даже пару универов смогли «скачать-поиграться». потом его закрыли со словами «кастомеры как-то не горят желанием еще одной системы поэтому будем делать коннектор к хадупу».

    из хороших идей там там был нормальный стриминг промежуточных результатов на следующий этап конвеерной обработки, в случае если этап находится на этой же физ ноде стриминг выполнялся по name pipe (а не через сетевой сокет), там же были зачатки RDD (spark их потом развил в уже законченное решение). в общем полезных и интересных вещей было очень много, если бы их действительно развили до промышленного состояния, то вполне возможно у нас сейчас была бы еще одна распределенная система обработки данных.

    но ms слили свой шанс и сейчас вокруг jvm и c++ в этих областях и .net там бедный родственник
  • «Через год-два .NET Core потеснит Java на рынке enterprise решений», — Интервью с Jon Skeet, Google
    0
    после слов «вполне могу» желательно бы список продуктов на уровне hadoop/ignite =)

    ravendb это в лучшем случае couchdb, но даже со своим rest интерфейсом очень часто проигрывает в измерениях.

    hadoop это полноценная платформа поверх и совместно с которой крутится очень много чего: mapreduce, spark, flink, storm, hbase, accumulo, phoenix, cassandra, kafka и можно продолжать очень долго

    у MS была хорошая попытка в виде dryad, правда они её слили, а вот идеи из неё уже и вошли в spark/flink.

    вообще в сфере перемалывания и nosql доминируют 2 языка java и c++, местами другие jvm языки в виде scala и clojure.

    и тут зачастую вопрос не в том что java туда зашла раньше, а в том что никто ради хадупа не будет покупать еще пару сотен лицензий на windows server, если от хост системы только и требуется что выступать пускателем кода, никаких групповых политик или еще чего.

    почти все перечисленные решения могут работать и на windows (не всегда оптимально, но могут), правда в реальной жизни я в работе только linux видел.

    с появлением .net core может что-то и поменяется, но тут начинается уже битва рантаймов (именно поэтому некоторые продукты отходят от jvm и переходят на c++), и тут опять же у jvm пока рантайм смотрится чуть лучше. на данный момент я не видел в жизни как себя ведет gc у .net на хипах по 64GB и выше, а в реальной жизни встречались и выше.

    для той же jvm вот ultra-low pause допиливает redhat и odnoklassniki его уже в прод пустили

    признаюсь, что плотно под .net не разрабатываю, но когда смотрю доклады по кишкам .net в части оптимизации расходов памяти (те же доклады по memory traffic в resharper) и вопросов производительности, то очень часто случается культурный шок от того, что у себя на jvm о данных вопросах даже не задумываешься, все из коробки уже работает хорошо.

    так что повторюсь: вопрос далеко не только в маркетинге, но и в рантайме (как и где он может запускаться, ну и насколько утилит готовых на все случаи жизни для него существуют), возможно с появлением .net core что-то начнет меняться, но это займет не год и не два, а в лучшем случае пять лет.

    p.s. с интересом слежу за развитием .net платформы и попыткой её стать действительно кроссплатформенной, но уже видно отрезвление у многих, что это не спринт (через год-два у нас все будет отлично работать на linux/mac), а достаточно долгий марафон. остается лишь пожелать удачи, конкуренция и обмен идеями никогда никому не вредила.
  • Выбор MQ для высоконагруженного проекта
    0
    это уточнение было на то, что можно повесить читателей сколько хочешь, пока они в пределах группы.
    я уточнял что даже в пределах группы не более чем количество партиций.

    простейший пример:
    1) имеем топик на 10 партиций
    2) 20 читателей с одной consumer group

    вопрос:
    сколько читателей будет одновременно работать?
    10 будут читать, другие 10 будут висеть в воздухе ожидая пока кто-то из тех 10 отвалится.

    до тех пор пока вы продолжаете использовать «то я всегда использую схему M*N <= P» все действительно можно разрулить, вот только я и начал разговор с того что

    >> в общем представление партиции как упорядоченный лог накладывает свои ограничения, а держать 100500 партиций в пределах топика тоже не хочется, так как это дополнительные накладные расходы.

    варианты решений есть, правда не всегда удобные и не избавляют от накапливания данных если некоторые консьюмеры начинают подтормаживать.

    то есть используя схему M*N <= P мы можем получить что все вычитали, сидят курят, а один читатель продолжает пыхтеть из-за неравномерности распределения сообщений по партициям. и никто из его группы ему помочь не может. (хотя признаю что на такое только раз или два нарывался)
  • Выбор MQ для высоконагруженного проекта
    0
    я согласен что есть =)

    просто очень часто встречаю именно комит как есть, без указания доп параметров. в общем можно считать что понял вашу идею, у самих сделано похоже.
  • Выбор MQ для высоконагруженного проекта
    0
    для вашего случая как уже сразу писалось нужно держать достаточно большое количество партиций, чтобы при необходимости масштабирования всем хватило работы. а устанавливать 100+ партиций не всегда оправдано из-за накладных расходов.

    вот только я не пойму схему работы на версиях до 0.9 включительно:

    1) когда вы делаете poll вам вернулся map с различных партиций или пачка сообщений даже из одной,
    2) если обрабатывать последовательно даже одним потоком и в самом конце делать commit, то все равно остается вопрос что делать если обработали несколько, а потом упали, оффсет незакомиченный, а данные обработаны

    согласен что на 0.10 данной проблемы нету так как можно прочитать ровно 1 сообщение, до 0.9 включительно нужно городить костыли и по мере обработки сообщения вызывать не просто commitSync()/commitAsync() (которые закомитят максимальный офсет из того что вам вернули по poll), а вариант с указанием где и что комитим

    void commitSync(Map<TopicPartition, OffsetAndMetadata> offsets);


    в данном случае можно обработать 1 сообщение, закомитить его,
    обработать следующее и тд.
    Даже если нам poll вернул достаточно большой блок мы сдвигаемся по очереди по каждому и по мере работы комитим

    тут именно вопрос чтобы исключить двойную обработку отдельных сообщений
    комитить в конце обработки блока не проблема и на 0.9, но иногда это не вариант =\
  • Выбор MQ для высоконагруженного проекта
    0
    >> Сделать n читателей (по размеру пула, например) в рамках одной группы

    нельзя сделать читателей больше чем количество партиций, 1 партиция — 1 читатель.
    архитектурное ограничение для ускорения работы, так как broker делает sendfile между файловым дескриптором и дескриптором на сокет. вернее создать можно, но читать реально будет только по количеству партиций, остальные будут стоять в очереди пока какая-либо партиция не освободится

    >> Каждый из них будет читать 1 сообщение, обрабатывать, коммитить, потом читать следующее.

    указывать количество сообщений для вычитывания появилось начиная с 0.10 версии, до этого можно только управлять размером буфера, а там уж сколько попадет сообщений в этот буфер.

    >> При такой схеме не обязательно строго привязывать читателя к партишону в кафке.

    нельзя не привязывать читателя, подключение нового читателя обычно проходит по схеме:
    1) подключился новый читатель в группу
    2) бросилось всем читателям в группе сообщение что сейчас будет ребалансинг, притормозите работу
    3) разослалась инфа о том кто какую партицию теперь будет обрабатывать

    то есть вычитать не из той которая к тебе привязана нельзя, а процесс перепривязки достаточно долгий.
    поэтому обычно читатель работает с 1+ партициями,

    при вашей схеме держа:
    M серверов по N потоков, P — количество партиций

    каждый поток имеет своего читателя,

    M*N > P — мы хоть и имеем несколько потоков которые курят, но зато каждый поток получает упорядоченные данные и нормально может комитить офсет.

    M*N < P — тут в один поток влетает перемешенные данные из 2х партиций, при желании можно организовать доп логику и тоже работать, просто нужно будет проверять с какой партиции пришло сообщение и отправлять commit offset не общий, а именно в эту партицию

    если же за 1 читателем находится пул потоков, то тут уже мешанина и async обработка неупорядоченная. проблему выше описал

    p.s. чтобы было понятно: кафка отправляет подтверждение не на отдельное сообщение, а offset в пределах очереди, как бы говоря «все что было до этого оффсета я обработала»
  • Выбор MQ для высоконагруженного проекта
    +4
    >> В Kafka данные делятся по разделам (partition) и чтобы соблюдать порядок доставки каждый получатель сообщений читает данные ровно из одного раздела

    неправильно, из одной партиции может читать только один читатель, чтобы соблюдать очередность в пределах партиции, но читатель может подписаться на несколько партиций и тогда дефолтный клиент при подписке не 2+ партициях уже выдает немного перемешанные данные.

    >> Это может приводить к блокировке очереди в случае, когда получатель по каким-либо причинам обрабатывает сообщения медленнее обычного.

    каждая партиция независима, о какой блокировке всей очереди идет речь? так как каждая партиция полностью независима, то у вас просто будет затык в определенной партиции, как поступать в этом случае отдельный вопрос, но остальные партиции продолжат работать без проблем.

    а теперь реальные проблемы кафки если использовать как очередь запросов:

    если у вас одну партицию разгребает за читателем пул потоков, то непонятно как комитить оффсет, то есть пришли сообщения mes1, mes2, mes3, раскинулись по 3 потокам, потоки выполнили их в порядке mes3, mes2, mes1.
    Не дождавшись mes1 нельзя комитить mes3, иначе если мы сразу закомитим mes3, не дожидаясь mes1 и упадем, то mes1 повторно уже не вычитается.
    Но и если ждем mes1 и произошло падение, то потом все этих три сообщения обработаются повторно, даже уже выполнившийся mes3.

    в общем представление партиции как упорядоченный лог накладывает свои ограничения, а держать 100500 партиций в пределах топика тоже не хочется, так как это дополнительные накладные расходы.

    Не знаю каким боком автор мерил производительность, но у меня в похожей ситуации и размере сообщений получалось из кафки 400k+ messages / second, а дальше упиралось в мой код.

    Поэтому пока это смотрится: а смотрите что мы на Go сумели написать, Go сейчас модный, так что вы должны выбрать нас.
  • HTTP/2 Server Push в Go 1.8
    +1
    проблема в том, что очень часто сталкиваюсь с позицией «есть возможность — давайте использовать»
    другая ситуация что 51% это возможно и надо, поэтому оставшиеся 49% тоже будут страдать, так как врубается на всех сразу

    уверен многие последний абзац даже не будут читать, так как по всей статье идет внушение что server push это отличнейшая технология которую просто обязан внедрить каждый, кто хочет уменьшить скорость загрузки страницы
  • HTTP/2 Server Push в Go 1.8
    +3
    во всех этих server push меня смущает только пару вопросов:
    1) клиенту может это все и не нужно (мобильный интернет)
    2) у клиента уже есть эти данные закешированные, все что ему хочется знать это 304 NOT MODIFIED

    не могу понять почему многие текущие разработки идут по принципу:
    1) у пользователя простаивает cpu, надо его загрузить хоть чем-то
    2) у пользователя простаивает канал в интернет, давайте мы по push закешируем весь сайт и пару поддоменов в нагрузку, может понадобится
  • Badoo time-series storage: итак, она звалась Кассандрой
    0
    ну дублирование не совсем корректное название, особенно что она очень легковесная, но хорошо.

    по поводу друида: вы данные в него предполагали напрямую заливать?
    просто везде где сталкивался с метриками мы гнали их через очередь, мало ли как индексатор себя поведет
    независимо это cassandra/hbase/druid
  • Badoo time-series storage: итак, она звалась Кассандрой
    0
    пару замечаний:

    1) HBase — Есть мастер нода – SPOF. мастеров в кластере несколько, выбираются кворумом, выпадение даже текущего не влияет на работу кластера (сам делал rolling restart всего кластера под нагрузкой, вышестоящие приложения лишь замечали небольшой скачек latency, драйвер сам детектил поведение и повторял запрос в новую ноду)

    2) Druid — Долгове́чность — немного не понял, так как:
    а) данные поступают в систему из kafka, пока блок не окажется в deepstorage то offset в kafka не комитится, данные всегда в очереди доступны
    б) так как данные по большему immutable (сегменты полностью immutable, метаданные в реляционке лежат), то гарантии сохранности лежат или на deepstorage (это s3/hdfs зачастую) или как у вас резервирования sql базы сделано.

    если я что-то неправильно понял, то уточните
  • Node.js в PayPal
    0
    можете добавить сюда еще:
    одно на нашем собственном Java-фреймворке, который основан на Spring и другое на kraken.js, с использованием express, dust.js и другого открытого кода.

    никто не знает, кто что и как комитил в этот собственный фреймворк.

    Отдельно смущает количество страниц в секунду, неужели там настолько тяжелые вызовы api?
  • Небольшое сравнение производительности СУБД «MongoDB vs ClickHouse»
    +1
    причем стоит добавить, что aggregate с последующим «count: {$sum: 1}» работает на порядки медленнее, чем делать find(...).count() из-за особенностей реализации, разница в некоторых случаях у меня была миллисекунды-секунды vs минуты.

    index используется в обоих случаях, но по разному

    count может пробежаться по индексу и просто посчитать количество входов
    агрегаты всегда производят материализацию объектов найденых, а уже потом только прибавляют 1, в итоге получаем fetch и disk io.

    поэтому сравнения вообще ни о чём =)
  • Грааль и Трюфель (Graal & Truffle)
    0
    1. мы говорим о следующих пунктах:
    а) интеллектуальная собственность (я тут полностью согласен с решением суда, вопрос по API возник бы рано или поздно, зато сейчас прецедент есть)
    б) авторские права на код (не на сам язык, сам язык для разработки чего-либо никто не запрещал, копировать со сменой лицензии и вырезанием авторских прав есть запрет). Это если бы вы попытались использовать рантайм для Python/Lua от http://www.activestate.com/ и перетянули в свой «my-super-python-lua» дистрибутив стандартные библиотеки от них, а потом жаловались что вас за Python/Lua судят.

    2. сам код openjdk под GPLv2, как и ядро linux, разрабатывай-открывай, либо не открывай, но тогда используй внутри не распространяя никому (хватает закрытых кастомных сборок jdk со специфическими патчами и никто никого не судит). GPL не означает «что хочу, то и делаю».
  • Грааль и Трюфель (Graal & Truffle)
    0
    Вот поэтому за судом и следила вся индустрия, так как если бы судья сказал что «api действительно является ИС», то тогда бы попали все, нельзя было бы сделать ни одну стороннюю реализацию любого api, даже моки уже попадали бы под нарушение. Но судья попался грамотным и сказал обратное, поэтому все спят спокойно. Можно и реализовывать и применять.

    А за копипасту со сменой лицензии доказали, что любой умный человек реализует почти таким же методом, вплоть до именования переменных.

    Назовите пример открытых технологий, а то куда не посмотришь, то везде оказываются ограничения:
    — ms за патенты в linux судиться,
    — MPEG-LA за кодеки с гуглом (хотя тот считает что vp8-vp9 свободные кодеки),
    — Yahoo! показывал что у него есть патенты на идею адблоков,
    — про .net не говорю даже, там вообще все на «мы код открыли и обещаем за патенты не судить, честное слово» (почему тогда не открыли под нормальной лицензией, а то верить на слово ещё то удовольствие)

    Поэтому и хотелось бы получить:
    1) пример ОТКРЫТОЙ технологии
    2) критерии открытости (свободно копировать, использовать, продавать изменения не показывая их)
  • Грааль и Трюфель (Graal & Truffle)
    0
    ещё раз:
    1) интеллектуальная собственность на API (тут все следили так как это касается не только google vs oracle, но и все в индустрии, так как процесс был знаковый)
    2) авторское право на исходники (вопросы к копипасту с удалением headers об авторах и лицензии)

    по второму подробней:
    взять код под GPL лицензией и сказать, что теперь это apache лицензия и дальше вы если хотите, то сорцы закрывайте (а апач это позволяет) нельзя по условиям gpl, так как это нарушение, именно за это по второму пункту и были претензии.

    Причем gpl => apache не относится конкретно к java, за это можно на любой gpl продукт попасть в суд, но никто же не говорит что gpl несвободная лицензия. Вернее говорят apache и bsd, что gpl недостаточно свободная, но каждый понимает свободу по своему.
  • Грааль и Трюфель (Graal & Truffle)
    0
    то есть если есть сторонний продукт, который занимается раскидыванием jdk по машинкам в домене, но он платный хоть и можно скачать бесплатно, то это делает сразу же java несвободное технологией?

    так под эту тему любое можно подвести:
    1) .net несвободная технология, так как для нормальной работы если я скачаю нелицензионный windows мне ms счета выставит
    2) js несвободная технология, так как за использование пиратского IE с windows для запуска ms опять счета выставит
    3) sql несвободная технология, так как за его использование на oracle/db2/mssql некоторые компании счета выставляют
    4) etc. можно продолжать аналогии до бесконечности

    отличайте технологию и экосистему с продуктами
    то что можно бесплатно скачать, не значит что данный продукт бесплатен
    и уж тем более сторонние продукты не определяют свободность-открытость технологии

    основные вопросы к Google были по 2 пунктам:
    1) интеллектуальная собственность на API (тут все следили так как это касается не только google vs oracle, но и все индустрии)
    2) авторское право на исходники (вопросы к копипасту с удалением headers об авторах)
  • Грааль и Трюфель (Graal & Truffle)
    0
    видел =) за самим граалем уже давно посматриваю, хотя сейчас они планы чуть урезали, чтобы выйти сразу хоть с чем-то в прод, а уже потом добивать фичами

    последнее время в этой части движение активное началось, помимо грааля зашевелились ibm
    http://www.eclipse.org/omr/

    по осени дополнительно и свою версию jit открыли, в перспективе рассчитывают целиком свою версию jvm выложить и дальше двигаться по принципу Oracle «есть открытая версия, а есть наша сертифицированная с поддержкой, разница минимальная». http://openj9.mybluemix.net/

    в
  • Грааль и Трюфель (Graal & Truffle)
    +4
    FastR является стандартным интерпретатором для R в spark

    >> Начиная с Java 9, Graal можно использовать как JVM плагин.

    первичная идея была предоставить интерфейс JIT для поддержки сторонних реализаций
    http://openjdk.java.net/jeps/243

    Но есть сборки jvmci и для java 8, так что при желании можно гонять уже сейчас

    >> А следующие части не относятся к OpenSource
    >> Поддержка AOT

    но тут пошли поезда от Марка Райнхольда и случился http://openjdk.java.net/jeps/295
    в итоге core часть от graal уже войдет и в кодовую базу java 9