На что способен java
Что такое Java: объясняем для новичков
Рассказываем о языке Java: для чего он используется, какие у него плюcы и минусы. А ещё сравниваем Java с C# и Python.
Даже если вы никогда не интересовались программированием, скорее всего, вы слышали название Java — и не просто так. Это один из самых популярных в мире языков программирования: он был создан в 1995 году, быстро набрал популярность и уже много лет её не теряет. В рейтинге TIOBE за ноябрь 2019 года Java заняла первое место, а по статистике GitHub — третье: второе место занял Python, а первое — JavaScript.
Java используют везде: вы найдёте её почти во всех больших компаниях, в том числе в Netflix, AliExpress, Google, Intel, eBay, TripAdvisor и многих других.
Кстати, назвали этот язык в честь одного из сортов кофе.
В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.
Java: что за зверь?
Java — мультифункциональный объектно-ориентированный язык со строгой типизацией.
С мультифункциональностью всё достаточно просто: Java действительно почти «волшебная таблетка» — на ней можно разрабатывать десктопные приложения, приложения под Android, заниматься веб-разработкой… Подробнее об этом ниже.
Строгая (сильная) типизация не позволяет смешивать в выражениях разные типы и не выполняет автоматически неявные преобразования. Это добавляет мороки: какие-то части приходится прописывать самому, а свободы у вас меньше, — зато в обмен на это вы получаете надёжность.
Объектно-ориентированный язык — это язык, созданный по модели объектно-ориентированного программирования. В ней существуют классы и объекты. Классы — это типы данных, а объекты — представители классов. Вы создаёте их сами, даёте названия и присваиваете им свойства и операции, которые с ними можно выполнять. Это как конструктор, который позволяет построить то, что вы хотите. Именно с помощью этой системы объектов в основном программируют на Java.
Кому и для чего нужен Java?
Java — как авто бизнес-класса: надежный, быстрый и безопасный. Он входит в пятерку самых популярных и распространенных языков программирования. Мы попросили Java-техлида Альфа-Банка Владислава Мацкевича, Java-разработчика Артура Куприянова и опытного фрилансера Никиту Катышева рассказать об основах Java, его применении, необходимых навыках разработчиков и о том, при чем здесь кофе.
Год появления: 1995
Популярность (индекс TIOBE 2021): 2-е место
Сложность для изучения: 5/10
Кратчайшая история Java
Группа инженеров из компании Sun Microsystems под руководством Джеймса Гослинга разрабатывала Java как язык для программирования бытовых устройств. Он должен был стать альтернативой C/C++ как более простой и кроссплатформенный язык.
Изначально его назвали Oak («Дуб») — в честь дерева, которое росло у Гослинга во дворе, — но такое название, увы, уже было занято другим языком. Поэтому язык назвали Java в честь марки кофе (а кофе, как известно, лучший друг программиста). Поэтому и на официальной эмблеме изображена чашка.
Еще у Java есть свой талисман — Duke, красноносое существо. Его создали для презентации нового контроллера Star7, прародителя интернета вещей, умеющего управлять домашней и офисной техникой.
А мне нужен Java?
Да, если вы хотите стать востребованным программистом. На этом языке пишут frontend и backend, мобильные приложения для Android, разрабатывают игры. Java особенно популярен в финансовом секторе, так как используется для создания надежных веб-сайтов, серверы которых не должны ложиться от большого числа запросов. Многие банки нуждаются в мобильных приложениях, ЭДО (электронном документообороте) и собственных платформах риск-менеджмента. Java используют для создания серверных приложений, которые получают данные с одного сервера, обрабатывает и отсылают их дальше.
Иногда с помощью фреймворков на Java пишут код и во frontend-разработке, при создании визуального облика сайтов. Также на Java написаны некоторые популярные видеоигры, например Assassin’s Creed и Minecraft.
Язык часто применяют при разработке облачных приложений, например серверной части Pokemon Go и IoT (Internet of Things, интернет вещей) — приложений для работы с разными датчиками и камерами видеонаблюдения.
Hadoop, один из самых популярных в Big Data фреймворков для раздельной обработки больших датасетов, написан именно на Java. Благодаря ему крупные компании имеют надежную файловую систему и могут не беспокоиться за сохранность данных. Кроме того, Java широко применяют корпорации для написания и поддержки своего внутреннего ПО: именно они постоянно ищут разработчиков по всему миру.
На Java создано большинство популярных продуктов:
Язык нужен не только разработчикам, но и:
А еще Java — это круто, потому что вы можете:
Плюсы и минусы языка
Существует несколько качеств, которые выделяют Java среди других языков программирования:
У языка есть и качества, которые ограничивают или усложняют работу.
Сложно ли выучить Java?
Сложно, но вполне реально даже для новичков. По сложности освоения Java находится где-то посередине между Python и C++, считает Владислав Мацкевич: «Начать изучение Java, как и любого другого языка программирования, лучше всего с Java Core — фундаментальных основ языка. А лучший способ закрепить навыки — самостоятельно написать какой-нибудь проект».
Освойте с нуля за 14 месяцев программирование, бэкенд-разработку и DevOps на самом востребованном языке. Скидка 5% по промокоду BLOG.
Артур Куприянов тоже считает, что важно самостоятельно начать писать проект: «Джуну, как и любому Java-программисту, следует знать основные принципы ООП — это поможет понять саму философию Java. Также нужно знать синтаксис, основные конструкции, паттерны, управление зависимостями и немного о фреймворке или библиотеке, с которым ему предстоит работать. Практика — лучший способ обучения. Гораздо лучше, если удастся написать небольшой коммерческий проект. Это будет огромным плюсом при рассмотрении вашего резюме».
Все эксперты сходятся во мнении, что лучшей средой разработки на Java является IntelliJ IDEA от JetBrains — у нее есть встроенные фишки, которые значительно упрощают разработку. Хотя она платная, для студентов и новичков есть возможность получить бесплатную лицензию. Более слабой, но популярной бесплатной альтернативой является Eclipse.
Полезные ссылки
Книги для новичков:
Другие ресурсы:
Бонус: мемы о Java-разработчиках
Есть стереотип, что Java-разработчики — «зажатые мужики в свитере с сальными волосами». Но представления уже давно не соответствуют реальности: программисты стали хорошо зарабатывать (в 2020 году их медианная зарплата была 140 тыс. рублей), могут позволить себе нормальную одежду и социализируются в команде.
Большинство мемов и шуток в интернете и рабочей среде — про JavaScript-разработчиков, ведь язык получил свое название просто благодаря тому, что Java было модным словом. На самом деле языки никак не связаны, JavaScript применяют для разработки интерфейсов веб-сайтов. Считается, что это не такой серьезный язык, как Java, его быстро может освоить каждый. Нельзя сказать, что это недостаток, ведь каждый язык выполняет свои задачи. Но мемы никто не отменял.
Зачем мне Java: неудобные вопросы о популярном языке и ответы на них
Авторизуйтесь
Зачем мне Java: неудобные вопросы о популярном языке и ответы на них
Мы собрали список распространённых вопросов о Java, а за ответами обратились к экспертам из Java Mentor. Смотрите, что из этого получилось.
1. Что пишут на Java: сферы применения языка
На Java можно разрабатывать что угодно:
Даже Netflix был создан Java-разработчиками.
2. А насколько востребованы Java-разработчики?
Широта применения языка обеспечивает Java стабильно лидирующие позиции в рейтинге языков программирования TIOBE. Традиционно Java входит в топ-3 самых популярных языков программирования. Эта тенденция сохранится и в 2021 году. Во многих крупных компаниях (особенно в финансовой и банковской сферах) софт, написанный на Java, нуждается в регулярной доработке и поддержке, спрос на специалистов тут особенно велик. Плюс сохраняется тренд на развитие автоматизации и тестирования, и здесь Java в топе.
По данным Hays, снижения числа вакансий и спрос на Java-разработчиков не предвидится в ближайшее время.
Стоит выложить резюме — и у тебя разрывается Телега, WhatsApp, почта и телефон, словно контакты отдали особо злым пранкерам. Наверное, это всё, что нужно знать о востребованности джавистов.
Очень востребованы: выкладываешь резюме, и телефон с электронной почтой переполняются сообщениями от HR, а даже если после закрыл резюме — пишут всё равно каждый день.
3. Java vs PHP: на чём писать бэкенд?
Разницу можно описать одним предложением. У этих языков разная специфика применений: если нужно что-то крупное — Джава, если мелкий сайт — подойдёт PHP.
PHP отлично подходит для написания простеньких веб-проектов, вроде опенкарт, магазинов и т. д. Мелкий сайтик проще, быстрее и дешевле написать на PHP. Для небольших веб-проектов PHP хорош тем, что порог входа ниже, язык сам по себе проще, и реализовать задачу быстрее. Но он слабо масштабируемый и работает медленнее Java, так как скриптовый.
На Java же порог вхождения выше, но он гораздо быстрее PHP за счёт того, что Java — компилируемый язык и легко масштабируется, что позволяет писать огромные системы из миллионов строк кода, в итоге нагрузку держит лучше.
Поэтому если нужно что-то кроме мелкого веб-сайта, то стоит смотреть в сторону Java. Ну, и Java — строго типизированный язык, отчего код более читаемый, а это дополнительный плюс к масштабируемости.
4. Функциональное программирование в Java: плюсы и минусы
В Java относительно недавно появились функциональные интерфейсы, которые предоставляют возможность писать код в функциональном стиле.
Плюсы:
Минусы:
Как бы там ни было, возможность писать частично в функциональном стиле вряд ли когда-нибудь сможет полностью заменить ООП.
5. Сколько зарабатывают Java-разработчики?
Средняя зарплата Java-разработчика в Москве составляет около 150 тыс. руб. в месяц (до вычета НДФЛ). Зарплаты таких специалистов растут каждый год на 5–10%.
Что касается мировых показателей, то, по данным Stack Overflow, средняя зарплата Java-программиста составляет 120 тыс. долларов в год.
6. С чего начать изучение Java?
По Java Core это всё, а дальше добро пожаловать в Java Mentor. Нигде на другой программе вы не найдёте такого сочетания менторинга, сильного сообщества, практики и подготовки к трудоустройству.
Тут нет однозначного рецепта успеха. Кому-то заходят видосики, но мне такой подход показался неудобным. Чтобы был толк, весь представленный в видеоуроках код нужно написать самому, а это крайне неудобно делать, перематывая видео туда-сюда. До этого всё нужно посмотреть от начала до конца, чтобы вникнуть в суть происходящего целиком. На это уходит очень много времени.
Просто решать задачки на JavaRush — тоже не выход. Их космическая сага не повествует о самых базовых концепциях, не раскрывает суть самих задач.
Лучший вариант, на мой взгляд, начать с книги Шилдта «Полное руководство Java». Там есть теоретические выкладки, которые сложны для понимания в русском варианте, но если не лениться, самому модернизировать код из каждого примера, понимание сути изложенного придëт. Я остановился в изучении по данной книге только тогда, когда дошëл до графических интерфейсов Swing и JavaFx. Не сказать, чтобы я стал экспертом, но это позволило мне в будущем быстро находить интересующую информацию по Java Core в уже понятном мне варианте изложения.
7. Каков кратчайший путь с нуля до Junior Java-разработчика?
В первую очередь не надо позиционировать себя как Junior-разработчик. Все хотят, чтобы к ним на работу пришёл человек, готовый решать боевые задачи. Поэтому важно, во-первых, иметь реальный опыт командной разработки. Вы можете его получить на каких-то платных ресурсах, либо на бесплатных. Или просто собраться с друзьями и заняться командной разработкой. Очень важно, чтобы вы имели реальный проект, про который можете рассказать на собеседовании.
Во-вторых, нужно заниматься по 5-6 часов каждый день, минимум. Если вы занимаетесь меньше, скорее всего, ваш путь затянется на год, два, а может вообще никогда не закончится.
В-третьих, неважно, какой у вас бэкграунд, есть он вообще или нет. Самый короткий путь — это делать ровно то, что нужно для трудоустройства, и не закапываться в темы. Очень часто при самостоятельном обучении студенты закапываются в темы глубже, чем надо. Эта одна из популярных ошибок новичков. Сфокусируйтесь на главном и бейте в эту точку.
По поводу кратчайшего пути до Java Developer могу судить только из личного опыта. За 1,5 года работы в индустрии побывал примерно на 50 собеседованиях и поработал уже в 3-х компаниях.
Если мы говорим о кратчайшем пути до позиции Java-разработчика как о том, чтобы просто устроиться на должность, то, на мой взгляд, достаточно просто научиться кодить на Java (выучить синтаксис) и заучить вопросы с ответами для собеседований. Да, качество у такого разработчика будет довольно низким, а процент отказов на собеседованиях высоким. Но здесь поможет тот факт, что это рынок соискателя, а значит найдутся компании, которые будут готовы взять на работу. И да, вряд ли удастся получить среднюю зарплату по рынку. Скорее всего, она будет ниже.
А если мы говорим о пути до разработчика на Java, как о человеке, который сможет достаточно хорошо делать свою работу, которого хантят и у которого уровень зарплаты рыночный и выше, то тут заучиванием вопросов и ответов по Java не обойтись. Тут нужно иметь знания глубже. Этот путь для меня был не самым простым, потому что на тот момент у меня уже был бэкграунд со своими успехами, и он не был связан с IT. Каждый раз, когда я сталкивался со сложной задачей, весь мой опыт говорил, что можно найти что-то намного легче, то, что быстрее даётся. И в таком эмоциональном шуме мне помогли двигаться следующие вещи:
Это 3 главных критерия которые помогли мне довольно быстро поменять сферу деятельности и влиться в дивный мир IT.
Для меня не работало чтение книг и сложных статей, но отлично подошёл вариант с решением задач на JavaRush до 15–18 уровня с ежедневной регулярностью. Одного-двух месяцев хватит, чтобы набить руку и перестроить мышление на лад программирования.
Дальше курс на Степике, порешать в свободное время все задачи, а потом уже идти в Java Mentor. Там уже решать чёткие поставленные задачи, не закапываясь слишком глубоко: есть задача — есть решение, есть вопросы — есть ответы. И так до подготовки к собеседованиям, где ребята из JM также помогли понять, какие темы самые популярные на собесах, и что углубляться нужно именно в них. Очень помогала коммуникация и дух соревнования с одногруппниками.
Заключение
Посматриваете в сторону Java-разработки? Верное решение. Исходя из представленных вопросов и ответов по Java, этот язык применяется во многих сферах, а потому джависты — востребованные высокооплачиваемые ребята, и в ближайшем будущем ситуация вряд ли изменится.
Вооружайтесь советами менторов и выпускников из JM и вперёд — покорять вершины, а полноценный курс по Java в этом сильно поможет.
Java навсегда! 12 причин длительного доминирования Java
Легко забыть значимость технологии, как только она пронесется кометой через коллективное сознание и погаснет огненной смертью за горизонтом. К примеру, Cobol — когда-то этот язык был культовым для целой эпохи, а сейчас его можно сравнить разве что с протухшей рыбой. В наши дни любой хипстер-программист вам отчеканит, что Cobol – это полный отстой, старый и бесполезный язык. Java может стать следующей жертвой «актуальных» суждений.
Пик продаж книг по Java – далеко в прошлом. Матерые Java-утилиты уже не достаточно сексуальны для обложек журналов. Java уже 19 лет, а прогрессивные разработчики увлечены такими моднейшими и актуальнейшими технологиями как Node.js, Objective-C, Dart, Go и т.д., удивляясь: «Java? Этот артефакт эпохи Web 1.0 еще жив?»
Беглый поиск на Dice.com показывает, что работы на Java — навалом. Если для iOS около — 2500 предложений, для Java — более 17000. Конечно, нельзя всецело полагаться на эти цифры. Но тот факт, что на Dice.com рынок работы на Java потенциально в семь раз больше, чем для моднейшей iOS, говорит о том, «старина Java» чувствует себя довольно таки неплохо.
Может быть, это потому, что Java предлагает бизнес-план более привлекательный, чем отдать 30 процентов доходов Apple и скрестить пальцы в надежде, что ваше приложение попадет в список Top-25. В большинстве случаев, Java решает задачи, более полезные, чем помочь злым птицам отомстить не менее злым свиньям. Java является основой ряда платформ, предназначенных для разработки программного обеспечения и обеспечивающих эффективную работу на системах с разной чип-архитектурой. Java помогает решать задачи разработчикам серверных, клиентских и встраиваемых систем.
Прежде, чем мы забудем огромный вклад Java в IT-отрасль и его роль в наши дни, хотелось бы озвучить 12 веских причин, почему Java не просто выживает, но и активно процветает наши дни.
Не называйте это возвращением; Java никуда не уходила, она тут и повсеместно доминирует.
Причина № 1: Непотопляемость в мире политики (зачастую грязной)
Мир технологий никогда не давал Java ни дня продыха, ее враги были многочисленны и хорошо вооружены. Несмотря на это, язык процветал. Многие из ее недоброжелателей, удивлены, что Java до сих пор в добром здравии. Они слишком часто прислушивались к мнению Java-хейтеров и не старались понять причины ее успеха.
Первым большим врагом Java была Microsoft. Эта компания увидела в Java наиболее достойного преемника тому единству, которое на то время предлагал только MS-DOS. Редмонд критиковал и боролся с Java с самого начала. Java не пользовалась успехом для разработки десктоп-приложений, отчасти потому, что магическая виртуальная машина Java запускалась слишком медленно. Несмотря на небольшие притормаживания, в целом, Java приложения в Windows достаточно юзабельны.
По какой-то необъяснимой причине, Стив Джобс никогда не любил Java. Даже когда Mac в значительной степени проигнорировали все, кроме Adobe, Java не дали шанс. Java-совместимость могла бы активизировать разработку для Mac-а, но для Apple – Java всегда была актером второго плана. (В общем-то, смартфоны на iOS работают более плавно, чем мой Android, так что, возможно Стив был прав)
Java также пострадала от многочисленных внутренних разборок. В IBM любили этот язык, но всегда сражались с Sun. Решение IBM о том, чтоб назвать свою замечательную IDE «Eclipse» (Затмение), было довольно холодно принято людьми из Sun (парни из Sun никогда не понимал в бизнесе настолько хорошо, как IBM).
Не смотря на все оплошности создателей, Java стремительно укрепляла позиции на серверах и становилась пригодной для эксплуатации в десктоп-сегменте. Каждая технология должна плыть против политических течений, и в случае Java, она упорно плыла дальше, доказывая, что является отличным инструментом для решения задач.
Причина № 2: Магия потоков
Одна из сильных сторон виртуальной машины Java, всегда была ее способность с легкостью жонглировать несколькими потоками. JVM оптимизирована для больших многоядерных машин, и она без проблем может управлять сотнями потоков. Благодаря этой способности, на JVM появились и другие языки — создаются кросс-компиляторы и эмуляторы, работающие поверх JVM.
Эти магические возможности используются многими веб-сайтами с высокой посещаемостью. Разработчики пишут код на своем ноутбуке, а затем разворачивают приложение на мощном сервере, где оно использует многоядерную мощь в полную силу.
Ruby является одним из современных конкурентов Java. У него более чистый, напоминающий живой английский язык, синтаксис. Но все же, когда любителям Ruby нужна высокая производительность, они обращаются к JRuby. Это версия Ruby, которая бежит поверх JVM, обеспечивая гораздо более высокую производительность при больших нагрузках с множеством потоков. Вложив кучу усилий для надежной работы с потоками, инженеры из Sun не прогадали.
Причина №3: Java, как первый язык программирования
Java является основным языком для Advanced Placement Computer Science (Advanced Placement (AP) — учебная программа и экзамены для учащихся средней школы в США). Это означает, что зачастую, для студентов Java является первым языком программирования. Таким образом, Java дальше с ними «и в горе и в радости». Когда в дальнейшем студенты изучают новые языки программирования, они сравнивают с тем, что есть в Java. Если они даже меняют Java на что-то другое, их мнение все равно базируется на том, что они узнали «в первом классе».
У Java множество преимуществ для изучения информатики. Некоторые программисты ненавидят указывать типы данных, часто называя это «подушкой безопасности» в программировании. Это может звучать странно, но это отличный способ для новичков понять, как устроен компьютер. Требование указывать типы данных заставляет их думать о внутреннем устройстве системы.
Некоторые из моднейших языков не используют фигурные скобки, потому что разработчиков раздражает заниматься их правильным форматированием. Возможно, в некоторых случаях это и правда, но эти же самые фигурные скобки могут быть полезны начинающим программистам для понимания вложенности блоков кода.
Кто-то пытается продвинуть собственный язык, и в большинстве случаев создает язык с менее строгим синтаксисом, чем у Java. Это отлично, но вот более простой и чистый синтаксис таит свои опасности, которые проявляются позже. Кто-то считает, что «подушки безопасности» ограничивают их свободу в программировании, но Java прививает хорошие привычки с самого начала. В дальнейшем, накопив опыт, бывшие «новички» смогут приручить более изящные и опасные конструкции.
Причина №4: (Почти) кроссплатформенная совместимость
Язык Java не был первым языком для написания кроссплатформенных приложений, но он стал самым популярным. Это не означает полную совместимость на разных платформах — отсутствующие библиотеки или несовместимые версии библиотек запросто похоронят ваш код. Вы не можете взять код десктоп приложения, скомпилированный под JRE 1.7 и запустить его на телефоне в Java ME. Чуда не произойдет.
Sun, а сейчас и Oracle, выжимают по максимуму для кроссплатформенности. Когда код не работает, как правило, понятно, в чем проблема. Если вы используете правильные версии Java и у вас достаточно памяти, ваш код будет работать. Java разработчики могут разрабатывать приложение на своем компьютере, а затем развернуть его на целевой платформе, будь то телефон или сервер. Если для компилятора доступны нужные библиотеки, код будет работать. Это бесценно.
Причина № 5: Устойчивый успех Java на микрочипах
Java никогда не была популярным инструментом для разработки десктоп-приложений, но она расцвела в мобильном сегменте рынка, который, в последнее время рванул вверх. Платформа Android построена на Java от и до, и в настоящее время Android устройства продаются лучше, чем iPhone.
Это господство не в новинку. Урезанная версии языка и виртуальной машины, известные как Java ME широко использовались во многих так называемых недосмартфонах (feature phone), которые исчисляются миллионами во всем мире.
Если все это слить вместе, доминирование Java — ошеломляющее.
Причина № 6: Blu-Ray
Язык Java когда-то назывался «Oak» предназначался для ТВ-ресиверов, где компания Sun хотела доминировать. Точно придерживаться плана не получилось, но Java все равно удалось найти уютное место в гостиной. Blu-Ray стандарт построен вокруг Java, и тому, кто хочет добавить дополнительный контент на Blu-Ray нужно будет воспользоваться Javac компилятором.
Blu-Ray диски – это не просто сырое видео. С помощью Java-кода можно изменить/добавить дополнительные функции и интерактивность. Blu-Ray диски – это смесь сжатого видео и Java байт-кода.
Причина № 7: Фигурные скобки просто работают
Любители таких модных языков, как Ruby, Python, или CoffeeScript снисходительно наблюдают за тем, как Java (и C) принуждают программистов вставлять фигурные скобки, явно обозначая начало и конец каждого блока кода. Круглые, фигурные, и даже квадратные скобки — все это проклятие для этих прогрессивных разработчиков. (Я сам не люблю скобки, и до сих пор ностальгирует по тому, как в некоторых версиях Lisp-а можно закрыть все открытые скобки одной квадратной скобкой)
Но изменение пунктуации не устраняет сложности, а скрывает их. Использование пустого пространства для обозначения вложений заставляет вас интуитивно видеть то, что вы не можете видеть. Обозначение вложенности пробелами отлично работает, если ваше выражение помещается на одну строку, но становится ужасным, если у вас несколько уровней вложенности. Когда я пишу на Python-е, я замечаю за собой, что считаю и пересчитываю отступы. Если код выглядит как английский язык, не означает, что его также легко понять, как и предложение на английском.
Причина № 8: Groovy
Если Java программистам нужен более чистый и простой синтаксис, динамическая типизация, это не повод сбежать к новомодным языкам. Они могут использовать Groovy, аккуратный хак Java с препроцессором, который производит JVM байт-код. Язык полностью интегрирован с Java — вы можете смело вызывать Java библиотеки из Groovy кода. Это как Java с плюшками.
Такая гибкость позволяет программистам самостоятельно конструировать решение своих проблем. Когда Groovy медленнее (такое часто бывает при использовании динамического вызова методов), программист всегда может переписать куски кода критичные для производительности на core Java.
Причина № 9: JVM
JVM была построена и оптимизирована под типизированный код со статическим контекстом, генерируемый javac компилятором, но со временем разработчики языков поняли, что JVM может запускать код написанный не только на языке Java. Если компилятор создает корректный Java байт код, JVM не волнует на каком языке он был написан. Разработчики Haskell, Scala, Clojure и вскочили на подножку «мощного электровоза Java» создав свои компиляторы.
Привлекательность очевидна. Sun/Oracle делает свою часть работы по созданию кросс-платформенной среды, а все остальные пользуются этим. Инженеры Sun/Oracle причесывают платформу и беспокоятся о совместимости, а мы пишем код на том языке, который нам по душе.
Microsoft позаимствовала эту идею (а также многое другое), создав C# и свой подход к созданию компиляторов для языков, работающих на C# VM (CLR). C # программисты говорят, что могут писать на разных языках – правда, только на VM под Windows. Удивительная гибкость!
Причина № 10: Революция NoSQL, построенная во многом на Java
Давным-давно, база данных была непостижимым черным ящиком, который хранит информацию и быстро и эффективно отвечает на запросы. Потом пришла революция NoSQL, — программисты поняли, что могут писать свои собственные базы данных и адаптировать код к своим потребностям. Большая часть из основных игроков на рынке NoSQL была написана на Java. Cassandra, Lucene, ElasticSearch, HBase и neo4j – это лишь некоторые примеры. Кроме того, есть некоторые ACID-совместимые базы, написанные на Haskell и работающие на JVM.
Эти базы, как правило, с открытым исходным кодом и легко встраиваемы. Кто-то запускает их как независимые сервисы, кто-то встраивает их код (в виде библиотек) в свой собственный стек. В любом случае, статус Java в качестве рабочего языка на уровне базы данных гарантирует, что разработчикам на Java разобраться и работать с этими базами будет легче. Кодировки или разделители строк не будут волновать Java-разработчиков.
Причина № 11: в этом веке рулит Minecraft
Пока Ruby продолжает собирать свою долю поклонников, следующее за ними поколение влюбляется в Java. Почему? Одно слово: Minecraft. Он написан на Java. Юные геймеры, желающие расширить Minecraft, должны знать Java, чтобы писать плагины под Minecraft. Это гарантирует, что повзрослевшие «детки» будут непременно писать на Java.
Причина № 12: Открытый исходный код
Компания Sun всегда была одним из лидеров в Open Source сообществе, но она так и не решилась полностью освободить Java. Это не помешало Java программистам написать кучу отличных библиотек и проектов под свободными открытыми лицензиями. Проект Apache продолжает поставлять множество проектов на Java под лицензией, которая не требует многого взамен.
Sun закончила выпускать большую часть кода под лицензией GPL в 2007 году. С тех пор, компания Sun и ее новый владелец, Oracle, старались быть хорошими менеджерами для языка Java. Несомненно, Oracle подмочил свою репутацию исками к Google, но в остальном, платформу можно в значительной степени считать открытой и свободной.
Ненавистников предостаточно, но Java двигается вперед
У Java, безусловно, хватает своих проблем. Java-хейтеры будут продолжать брызгать слюной и стучать по клавиатуре, постя злостные коменты в интернете. Сборщик мусора может вызвать икоту и дрожь. Типизация данных является рутиной и не может отбраковать действительно плохой код. Аннотации слишком сложны. Новые возможности Java развиваются не так быстро, как это было в прошлом. Фигурные скобки добавляют некоторый беспорядок. Этот список можно продолжать и дальше.
Однако ни одна из конкурирующих технологий не смогла настолько широко и глубоко высадиться на берега IT-индустрии. Хотя некоторые из проблем Java довольно легко исправить, исправления обычно вносят свои собственные проблемы.
В конце концов, это одно из преимуществ Java. Ее можно менять и использовать практически для любых задач. Вы можете заменить большинство библиотек вашим собственным кодом, если вам нужны особенные функциональные возможности. Java — очень гибкий язык с открытым исходным кодом. Независимо от ограничений языка и платформы, практические любые проблемы можно решить относительно легко. Это означает, что Java программисты продолжают быть одними из самых производительных. Несмотря на то, что книги по Java больше не доминируют в списке бестселлеров и Oracle выпускает апдейты не так часто как хотелось бы, Java продолжает не просто жить, но и процветать.