- PVSM.RU - https://www.pvsm.ru -

Дайджест интересных событий из мира Java, и вокруг нее #1 (02.05.2016 — 08.05.2016)

image

В этом выпуске

— Автомобильный гигант вкладывает сотни миллионов долларов в Pivotal
Akka уже не та
Apache Spark придется потесниться
— Как добавить новый метод в java.lang.Runtime?
— Как получить исходную строку, зная только ее хэш?
… и многое другое

1. Тренды

1.1. Pivotal опять подняли бабла

Как стало известно, Microsoft и Ford вложили [1] в Pivotal примерно 250 миллионов долларов. Мотивация Microsoft не особо интересна — айтишники вложились в айтишников. Куда интересней задачи Ford. Несколько комментариев CIO автогиганта, Marcy Klevron, которая присоединится к борде Pivotal:

Our decision is part of our vision as we become both an auto and a mobility company.

We are re-positioning the company into a software world.

Очень показательная ситуация. IT-технологии проникают во все большее количество отраслей реального сектора экономики, и имеют все шансы занять там ключевые позиции в перспективе нескольких десятилетий. Думаю, в 2100 году очень сложно будет сказать, какой отдел является наиболее важным для типичного автомобильного гиганта — конструкторы, дизайнеры или айтишники?

«800 лошадок, 1000км без подзарядки, спортпакет Android Microservices Edition, не бит, не крашен, торг у капота ...»

1.2. А где Akka?

Thoughtworks убрали [2] Akka со своего радара, «заархивировав» эту технологию. Фактически это означает «Akka стала скучной». На мой взгляд, решение правильное. Про модель акторов и реактивное программирование уже сказано много слов, и написано много букв. Плюсы и минусы понятны, область применения тоже. Технология стала взрослой и обыденной.

Парни из Scala-мира, разумеется, не очень довольны:

1.3. Google нагоняет Spark

Встречайте новый проект в инкубаторе ApacheApache Beam [6]. Это набор интерфейсов для создания data processing pipeline. Вы пишете программу с помощью этих интерфейсов, а потом запускаете ее на конкретном движке, будь это Apache Spark [7] или Google Cloud DataFlow [8].

image
Источник: shinetechblog.files.wordpress.com [9]

Главный спонсор проекта (кто бы мог подумать?) — Google. Свой мотивацию они поясняют так [10]: сделать кайфовый стандарт, перетащить на него много приложений, а потом подсунуть под эти приложения свою облачную платформу. Например, с помощью вот таких бенчмарков [11], хахаха. На самом деле, большая ставка сделана на опен-сорс в целом, и Apache в частности, как на наиболее влиятельное OSS-коммьюнити.

Очень своевременное движение, которое может дать Google хороший шанс оседлать нарастающий тренд бигдато-процессинга.

1.4. Какой энтерпрайз у вас?

Plumbr собрали [12] статистику использования JEE контейнеров. Результаты вполне ожидаемы, больше всех жгут Tomcat и JBoss.

2. Почитать

2.1. Azul влили Runtime.onSpinWait() в OpenJDK

Ссылка: https://www.azul.com/jep-285-small-perfectly-formed/ [13]

Редкий случай, когда компания с именем отличным от Oracle, самостоятельно продвинула и спонсировала фичу, которая к тому же меняет базовый класс java.lang.Runtime.

Процесс был непростой. Особенно тяжело далось решение об именовании соответствующего метода. В процессе обсуждения нервы у людей уже начинали сдавать [14]. Со стороны это может показаться бюрократическими издержками, но на практике правильное именование классов и методов фреймворка или платформы едва ли уступает по важности имплементации. Как лодку назовешь, так она и поплывет.

В конце концов все разрешилось благополучно. Теперь спиниться в JDK9 будет веселей.

2.2. Интересное обсуждение Java Mission Control

Ссылка: https://groups.google.com/forum/#!topic/mechanical-sympathy/uJqHLd_i2hE [15]

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

2.3. Отличный доклад инженера Netflix об инструментарии SRE

Ссылка: http://www.brendangregg.com/blog/2016-05-04/srecon2016-perf-checklists-for-sres.html [16]

SRE — это site reliability engineering [17]. Если кратко — это devops-ы, перфомансники и архитекторы в одном лице. Их задача — сделать так, что бы сервис а) работал; б) работал быстро; в) масштабировался. Задача интересная, но далеко не самая простая. По ссылке вы найдете доклад о том, какие инструменты используют парни из SRE отдела Netflix. Поучительно.

3. Мудрость

3.1. Про in-memory

3.2. Про моки и слишком категоричные высказывания

3.3. Про «напишем все сами»

3.4. Про throughput и latency

4. Юмор

4.1. Правильная обработка исключений

Просто добавляйте в сообщение ссылку на StackOverflow.

4.2. Получение строки по хэшу

[:|||||:]

И смех, и грех: разработчик попросил [32] помочь ему с алгоритмом хэширования строк. Главное требование — возможность получить исходную строку по хэшу. Ответ [33] не заставил себя долго ждать:

#include <string>
int main() {
    std::string s = "Hai!";
    std::string* ptr = &s; // this is a pointer
    std::string copy = *ptr; // this retrieves the original string
    std::cout << copy; // prints "Hai!"
}

Повод задуматься тем, кому не нравятся фундаментальные вопросы на собеседованиях.

4.3. Стало известно [34], кто был прообразом Imp в первом Doom

[:|||||:]

Это Phillip Heath [35]:
image

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

Автор: devozerov

Источник [36]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/120248

Ссылки в тексте:

[1] вложили: http://www.businessinsider.com/pivotal-raises-253-million-ford-microsoft-2016-5

[2] убрали: https://www.thoughtworks.com/radar/platforms/akka

[3] @snowcode: https://twitter.com/snowcode

[4] @thoughtworks: https://twitter.com/thoughtworks

[5] 6 мая 2016 г.: https://twitter.com/jboner/status/728591084633337856

[6] Apache Beam: https://beam.incubator.apache.org/

[7] Apache Spark: http://spark.apache.org/

[8] Google Cloud DataFlow: https://cloud.google.com/dataflow/

[9] shinetechblog.files.wordpress.com: https://shinetechblog.files.wordpress.com

[10] так: https://cloud.google.com/blog/big-data/2016/05/why-apache-beam-a-google-perspective

[11] вот таких бенчмарков: http://www.datanami.com/2016/05/02/dataflow-tops-spark-benchmark-test/

[12] собрали: https://dzone.com/articles/most-popular-java-ee-servers-2016-edition

[13] https://www.azul.com/jep-285-small-perfectly-formed/: https://www.azul.com/jep-285-small-perfectly-formed/

[14] сдавать: http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-February/039069.html

[15] https://groups.google.com/forum/#!topic/mechanical-sympathy/uJqHLd_i2hE: https://groups.google.com/forum/#!topic/mechanical-sympathy/uJqHLd_i2hE

[16] http://www.brendangregg.com/blog/2016-05-04/srecon2016-perf-checklists-for-sres.html: http://www.brendangregg.com/blog/2016-05-04/srecon2016-perf-checklists-for-sres.html

[17] site reliability engineering: https://landing.google.com/sre/interview/ben-treynor.html

[18] 3 мая 2016 г.: https://twitter.com/DynomiteDB/status/727547748715646976

[19] 5 мая 2016 г.: https://twitter.com/KenScambler/status/728062083607093248

[20] @KenScambler: https://twitter.com/KenScambler

[21] @mjpt777: https://twitter.com/mjpt777

[22] @toddlmontgomery: https://twitter.com/toddlmontgomery

[23] 5 мая 2016 г.: https://twitter.com/deanwampler/status/728198213950308353

[24] @deanwampler: https://twitter.com/deanwampler

[25] 5 мая 2016 г.: https://twitter.com/mjpt777/status/728199628651376640

[26] 5 мая 2016 г.: https://twitter.com/paulycomtois/status/728341468717277184

[27] https://t.co/gw2ytv2oER: https://t.co/gw2ytv2oER

[28] 5 мая 2016 г.: https://twitter.com/krishnan/status/728341753363750912

[29] 6 мая 2016 г.: https://twitter.com/ebowman/status/728503842611077121

[30] pic.twitter.com/ymDoKVcQo5: https://t.co/ymDoKVcQo5

[31] 6 мая 2016 г.: https://twitter.com/MarcosBL/status/728442224132825089

[32] попросил: http://stackoverflow.com/questions/7947049/two-way-hashing-of-string

[33] Ответ: http://stackoverflow.com/questions/7947049/two-way-hashing-of-string/7947092#7947092

[34] известно: https://www.reddit.com/r/gaming/comments/kfi5g/a_real_life_imp/

[35] Phillip Heath: http://www.phillipheath.com/

[36] Источник: https://habrahabr.ru/post/283138/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best