От подрывной выскочки к вечной классике

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

Как он так долго оставался ведущим языком и платформой?

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

И Java был первым языком, который привнес этот дух в эпоху доткомов.

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

И каким-то мистическим процессом, несмотря на весь корпоративный отток и споры, он сохранил свое место за обоими столами: хакером и бизнесом.

Причина может быть проста: когда Sun открыла исходный код Java, это был акт мятежного духа. Было, корабль идет ко дну, но это наша работа любви, и никто НИКОГДА не будет полностью контролировать ее.

Даже Oracle.

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

Назовем это мышлением с открытым исходным кодом.

Тот, кто неустанно ищет лучшие пути, потому что это вдохновляет.

Эти тенденции нашли укрытие и форму на Яве.

Развитие Perl CGI было мечтой. Стало возможным новое.

Но по правде говоря, Java несла с собой то же ядро, которое Perl хранил как гениальное дитя любви Ларри Уолла, человека, который сказал: «Мне не нравится твое отношение« я могу использовать все в качестве прилагательного ». . »

Java - это классика, и она очень актуальна. Последовательные волны и тенденции приходили и уходили. Java остается на переднем крае.

Замечательный факт неизменной актуальности Java заставил меня задуматься, что же такого особенного в языке, которое я и другие на самом деле нахожу привлекательным? Что делает его чемпионом в экстремальных соревнованиях?

Вот что я придумал. Что вы думаете?

4. Инновационные и эффективные инструменты разработки широкого спектра действия

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

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

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

После Spring - это Hibernate и платформа Eclipse IDE, как высокоразвитые, так и долговечные инструменты.

Hibernate (а затем и JPA) не просто предлагал способ обработки сохраняемости данных, он глубоко обучил множество разработчиков Java реляционным данным и моделям данных их приложений.

Не только Eclipse является отличной IDE, очевидно, для Java или чего-то еще. Тем не менее, он ДЕЙСТВИТЕЛЬНО несет в себе дух инструментов с открытым исходным кодом, разработанных в реальных условиях. Eclipse поставляет программное обеспечение мирового класса с неизменным менталитетом OSS.

Наконец, в экосистеме Java есть множество небольших инструментов разработки, которые, как правило, активны и хорошо обслуживаются. Это, конечно, частично инерция такой большой базы разработчиков, но факт остается фактом: если вам нужно что-то сделать на Java, кто-то, вероятно, уже, по крайней мере, направил вас в нужное русло.

3. Сообщество Java и процесс

Вот факт из жизни Java, который иногда подвергается критике: JCP (Java Community Process).

Тем не менее, отступив назад, вы можете увидеть, что JCP работает, чтобы поддерживать жизнь языка, путем включения таких инноваций, как ORM (объектно-реляционное сопоставление, впервые разработанное Hibernate) и DI (внедрение зависимостей , впервые внедренный Spring) в платформу и поддерживая гибкость базового языка, достаточную для внедрения таких вещей, как Lambdas (функциональное программирование).

Эту последнюю особенность - функциональное программирование, внедренное в такой строгий объектно-ориентированный язык, как Java, нельзя недооценивать. Я считаю, что это впечатляющая функция с точки зрения реализации, которая открывает двери для многих интересных вещей, таких как событийно-ориентированное программирование (например, JavaRX).

Подобные вещи раскрывают более глубокую картину сообщества Java: есть люди, которые любят язык и заботятся о нем как о вещи, достойной внимания.

Невозможно поверить, сколько усилий и навыков вложено в ядро, библиотеки и фреймворки Java.

Подобный объем поддержки и взаимодействия доступен вам как разработчику Java.

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

2. JVM

Ах да, виртуальная машина Java.

Интерес к интерпретируемым серверным языкам (таким как JS и Python) заставил некоторых косо взглянуть на эти накладные расходы виртуальной машины для выполнения Java.

Но JVM дает ключевое преимущество, которое фактически стало более ценным по мере того, как революция облачного хостинга перешла на более высокий уровень: это стабильная, знакомая и постоянно развивающаяся платформа для работы с языками Java (и родственными).

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

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

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

1. Все является объектом

Это собственно о языке. В Java было принято решение, что каждый бит кода будет существовать в формальном классе. Это может вызвать некоторую путаницу у новичков («Что такое эта общедоступная статическая функция void main ()? Я просто хочу запустить некоторый код!»), Но в конечном итоге это гарантирует, что вся композиция приложения Java - это взаимодействие связанных классов.

Другими словами, Java привносит в кодирование объектно-ориентированную чистоту: все является объектом.

Эта чистота приводит к единообразию при работе с кодом, разработанным другими, включая сторонние библиотеки и проекты с открытым исходным кодом. Хорошо спроектированный API обычно можно изучить с помощью функции автозаполнения в среде IDE: пройтись по интерфейсам и объекту в пакете.

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

Каждое приложение спроектировано как связанный набор взаимодействующих классов и интерфейсов. (Можно написать Java без ООП - я видел это, это некрасиво, но это необычно).

Помимо этого, существует определенная возможность попасть в зону, которая присуща Java-подходу ООП. Я думаю, что это первое, что мне нравится в языке. Это помогает мне эффективно думать и кодировать в потоке, даже когда я имею дело с очень сложными задачами.

Размышляя над этими мыслями, я задаюсь вопросом: действительно ли функциональный JavaScript со слабой типизацией поглотит весь мир программирования?

Оставим это цитатой самого Джеймса Гослинга:

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