Дайджест интересных событий из мира Java, и вокруг нее #1 (02.05.2016 — 08.05.2016) +18
Программирование, JAVA
Рекомендация: подборка платных и бесплатных курсов Python - https://katalog-kursov.ru/
В этом выпуске
— Автомобильный гигант вкладывает сотни миллионов долларов в
Pivotal
—
Akka уже не та
—
Apache Spark придется потесниться
— Как добавить новый метод в
java.lang.Runtime?
— Как получить исходную строку, зная только ее хэш?
… и многое другое
1. Тренды
1.1. Pivotal опять подняли бабла
Как стало известно,
Microsoft и
Ford вложили в
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 убрали Akka со своего радара, «заархивировав» эту технологию. Фактически это означает «Akka стала скучной». На мой взгляд, решение правильное. Про модель акторов и реактивное программирование уже сказано много слов, и написано много букв. Плюсы и минусы понятны, область применения тоже. Технология стала взрослой и обыденной.
Парни из Scala-мира, разумеется, не очень довольны:
1.3. Google нагоняет Spark
Встречайте новый проект в инкубаторе
Apache —
Apache Beam. Это набор интерфейсов для создания data processing pipeline. Вы пишете программу с помощью этих интерфейсов, а потом запускаете ее на конкретном движке, будь это
Apache Spark или
Google Cloud DataFlow.
Источник:
shinetechblog.files.wordpress.com
Главный спонсор проекта (кто бы мог подумать?) —
Google. Свой мотивацию они поясняют
так: сделать кайфовый стандарт, перетащить на него много приложений, а потом подсунуть под эти приложения свою облачную платформу. Например, с помощью
вот таких бенчмарков, хахаха. На самом деле, большая ставка сделана на опен-сорс в целом, и Apache в частности, как на наиболее влиятельное OSS-коммьюнити.
Очень своевременное движение, которое может дать Google хороший шанс оседлать нарастающий тренд
бигдато-процессинга.
1.4. Какой энтерпрайз у вас?
Plumbr собрали статистику использования JEE контейнеров. Результаты вполне ожидаемы, больше всех жгут
Tomcat и
JBoss.
2. Почитать
2.1. Azul влили Runtime.onSpinWait() в OpenJDK
Ссылка:
https://www.azul.com/jep-285-small-perfectly-formed/
Редкий случай, когда компания с именем отличным от
Oracle, самостоятельно продвинула и спонсировала фичу, которая к тому же меняет базовый класс
java.lang.Runtime.
Процесс был непростой. Особенно тяжело далось решение об именовании соответствующего метода. В процессе обсуждения нервы у людей уже начинали
сдавать. Со стороны это может показаться бюрократическими издержками, но на практике правильное именование классов и методов фреймворка или платформы едва ли уступает по важности имплементации. Как лодку назовешь, так она и поплывет.
В конце концов все разрешилось благополучно. Теперь спиниться в JDK9 будет веселей.
2.2. Интересное обсуждение Java Mission Control
Ссылка:
https://groups.google.com/forum/#!topic/mechanical-sympathy/uJqHLd_i2hE
Тред начался со скриптинга в JMC, но очень быстро ушел в офтоп, переключившись на обсуждение преимуществ и недостатков JMC, а так же его грядущих изменений в JDK9. Интересно.
2.3. Отличный доклад инженера Netflix об инструментарии SRE
Ссылка:
http://www.brendangregg.com/blog/2016-05-04/srecon2016-perf-checklists-for-sres.html
SRE — это
site reliability engineering. Если кратко — это devops-ы, перфомансники и архитекторы в одном лице. Их задача — сделать так, что бы сервис а) работал; б) работал быстро; в) масштабировался. Задача интересная, но далеко не самая простая. По ссылке вы найдете доклад о том, какие инструменты используют парни из SRE отдела
Netflix. Поучительно.
3. Мудрость
3.1. Про in-memory
3.2. Про моки и слишком категоричные высказывания
3.3. Про «напишем все сами»
3.4. Про throughput и latency
4. Юмор
4.1. Правильная обработка исключений
Просто добавляйте в сообщение ссылку на StackOverflow.
4.2. Получение строки по хэшу
[:|||||:]
И смех, и грех: разработчик
попросил помочь ему с алгоритмом хэширования строк. Главное требование — возможность получить исходную строку по хэшу.
Ответ не заставил себя долго ждать:
#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. Стало известно, кто был прообразом Imp в первом Doom
[:|||||:]
Это
Phillip Heath:
Вывод: тягайте железо, и возможно когда-нибудь и с вас нарисуют персонажа очередного шутера.
-->
К сожалению, не доступен сервер mySQL