Язык программирования Java

Краткая справка

Язык программирования Java (изначально “Oak” - дуб) был создан группой сотрудников “Sun Microsystems” и первоначально предназначался для программирования бытовой электроники. Однако, добиться широкого применения в тостерах и кофемашинах им так и не удалось. В то же самое время интернет начал развиваться семимильными шагами, поэтому разработчики, по велению руководства компании, переключились на работу с вебом. Итогом их работы стал мощный интерактивный браузер, превзошедший во всех отношениях популярный тогда “Mosaic”, написанный на С. Он позволял выполнять код на странице, например, создавать примитивную графику или взаимодействовать с пользователем , а также мог работать на любом устройстве. Это была настоящая сенсация в сфере IT, после чего Java надолго стала доминирующим языком программирования.

В итоге, авторы решили сменить название на нечто более близкое по духу для программистов. По одной из версий, Java была названа в честь марки кофе с острова Цейлон (Ява), который создатели языка, видимо, пили утром после очередной бессонной ночи кодинга.

Философия Java

Основной задачей Java было то, чтобы написанный программистом код можно было бы без изменений запускать на любом устройстве. Сейчас в это, возможно, трудно поверить, но даже в 90-ых одну и ту же программу для работы на компьютерах с другой архитектурой приходилось переделывать едва ли не полностью. Чтобы этого избежать, в Java была придумана следующая концепция - всё, что написал программист переводится компилятором в байт код, который не зависит от платформы. Этот байт код выполняется при помощи интерпретатора,называемого JVM (виртуальная машина Java). Виртуальная машина должна быть установлена на устройство заранее и зависит от платформы. Существует множество готовых версий JVM, которые требуется только установить и скачать. Поэтому программисту на Java не нужно беспокоиться о совместимости его программы с архитектурой того или иного компьютера.

Java является объектно-ориентированным языком программирования и поддерживает все концепции и методологии, используемые в этом подходе, также как С++, С# и другие языки.

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

Впоследствии, многие методы из Java были успешно переняты другими языками, такими как С#, Ruby, Python и прочими.

Где применяется Java

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

Первая - базовый пакет, предназначенный, в основном, для создания десктопных программ. Например, на Java SE Вы можете написать свой аналог Paint или игру для ПК, а также апплеты для взаимодействия с веб.

Java EE является надстройкой над SE и предназначена для создания более солидных приложений, тесно связанных с вебом. В нее добавлены дополнительные библиотеки для работы с сетью, БД и все что нужно для клиент-серверного взаимодействия. Например, если когда-нибудь Вам понадобится создавать банковскую систему, которая будет обрабатывать множество транзакций, хранить и выдавать информацию о состоянии вкладов клиентов в режиме онлайн или же свою социальную сеть, то Вам нужно будет использовать версию EE.

Стоит упомянуть также и Java ME(Micro Edition), предназначенную для мобильных устройств. Это более укороченная версия Java SE со специальными библиотеками функций, для поддержки смартфонов, планшетов и других портативных устройств. На ней также разрабатывают софт для ресиверов цифрового телевидения и проигрывателей Blu-ray. Кстати, как это ни парадоксально, но разработка под Android больше относится к SE, чем к Micro Edition.

Примеры сервисов и программ, созданных с использованием Java, не нуждающихся в представлении:

  • Amazon;
  • Ebay;
  • Yahoo;
  • Юлмарт
  • Одноклассники
  • Minecraft
  • торрент-клиент Vuze (а также многие другие торренты и менеджеры загрузок)

Сложность обучения Java

Java гораздо проще для изучения, чем, например, Assembler или С++. Существует большое количество библиотек и мануалов, которые помогут разобраться и изучить его в кратчайшее время. Также, ответы на интересующие вопросы можно легко найти на Stack Overflow и форумах, посвященных данной теме.

Однако, для Java EE порог вхождения гораздо более высокий и требуется изучить большое количество инструментов и технологий (например, Spring и Hibernate) , прежде чем Вы сможете разобраться в построении сложных систем на нем.

Стоить добавить сюда, что у программистов на Java одни из самых высоких зарплат - они начинаются от 60-80 тысяч рублей, в зависимости от региона, и могут доходить до 150-200, если вырастете с junior до middle developer и выше.

Плюсы/минусы Java

Некоторые преимущества Java были описаны выше - это кроссплатформенность, универсальность (работает и с вебом, и с десктопом). Ещё для Java существует огромное количество open source библиотек и программ, которые можно использовать в своих проектах.

Из минусов Java стоит отметить, пожалуй, самую известную проблему - это потребление памяти. Например, написанная на Java система багтрекинга Jira может использовать столько же ресурсов, сколько тратит какой-нибудь мейнфрейм для анализа бозона Хиггcа в Большом Адронном Коллайдере, причем даже в те моменты, когда не совершает каких то сложных операций. Это, разумеется, шутка, хотя в каждой шутке есть доля правды.Но проблемы с памятью , чаще всего, решаются оптимизацией кода, к тому же язык тоже постоянно оптимизируется и совершенствуется, поэтому за последние годы проблемы с утечкой памяти в Java существенно снизились.

Сопутствующие технологии

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

JSP - позволяет создавать веб-странички одновременно со статичными элементами (HTML, SVG) и динамичными.

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

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

Hibernate - библиотека Java, которую используют для работы с реляционными базами данных. С её помощью можно, например, автоматизировать генерацию SQL запросов. Hibernate можно использовать как для создания базы данных с нуля, так и для работы с уже существующими БД.

Spring - один из самых известных фреймворков для Java. Используется для создания сложных корпоративных приложений и сильно упрощает для программиста работу c JavaEE.