Рубрики
Без рубрики

Java НЕЛЕГКО выучить. Но все равно стоит :)

Вот был пост, почему следует изучать Java в 2020 году – и он начался с: Java прост в освоении Я бы сказал… С пометкой java, карьера, webdev.

Вот был пост, почему следует изучать Java в 2020 году – и он начался с:

Java прост в освоении

Я бы сказал, что это СОВСЕМ НЕ ТАК , извините:)

Может быть, кто-то уже пробовал и нашел то же самое? Не расстраивайтесь, это не только для вас!

Работая разработчиком Java с 2011 года, я кое-что знаю об этом. Позвольте мне вкратце поделиться. Есть несколько следующих тем:

  • Java стоит изучить
  • но это трудно
  • пара примеров
  • почему это так
  • не унывай!

Java стоит изучить – это сделает вас богатым:)

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

И хотя это не “язык для всего” (как сказали бы некоторые люди), он широко используется, особенно:

  • для множества серверных сервисов, инструментов и фреймворков – и они стоят почти за всеми современными приложениями – онлайн-играми, социальными сетями, даже сервисами для хранения данных из мобильных приложений (и это включает в себя популярный современный мир BigData/Data Science);
  • для мобильных приложений – либо для Android (80% доли рынка среди мобильных телефонов), либо для различных кроссплатформенных платформ (которые компилируются как для Android, так и для iOS) – устройств, работающих на Java, больше, чем людей на Земле!
  • для автоматизированного тестирования веб-приложений с помощью Selenium – он может использовать другие языки, но обычно предпочтительнее Java – это, вероятно, самый интересный вариант для тех новичков, которые хотят быстро освоиться с java!

Также он открывает путь к другим языкам на основе Java, таким как Scala , Kotlin и другим.

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

Но…:(

Теперь смотрите – вот я, старший разработчик java в течение многих лет, зарабатываю на этом хорошие деньги, и мой почтовый ящик переполнен сообщениями неприятных рекрутеров, предлагающих еще больше денег… И тем не менее:

  • Я почти никогда не использую Java для личных проектов!
  • Я никогда не советую изучать его в качестве первого языка или преподавать в школе;
  • Я всегда говорю Java – это СЛОЖНО

Конечно, есть более сложные языки. Изучение C++ в полной мере или попытка понять Haskell, например, – и то, и другое может вас разочаровать.

Действительно, изучение практически любого языка до уровня гуру требует много времени. Однако некоторые языки допускают более легкую “кривую обучения”. Они более дружелюбны к новичкам.

Но Java не входит в их число:)

Два примера

Давайте сначала попробуем “Привет, мир”. В некоторых языках, например Python, это просто “однострочный”, например print("Привет, люди") . Но не на Яве:

public class SoooSimple {
    public static void main(String... args) {
        System.out.println("DIE HARD!");
    }
}

Зачем все это? Что такое public перед классом и перед методом? Разве это не сработает без кого-либо из них? Как насчет статического ? Почему мы ставим аргументы в качестве параметров, хотя мы их не используем? Что такое Система и что такое System.out ? Кроме того, “это то, что нужно для печати”, конечно.

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

Другой пример – код для извлечения данных из веб-ссылки (url). В PHP это было бы просто так:

Да, PHP просто предоставляет один метод для извлечения данных либо из файла, либо из Интернета. Но Java знает лучше, чем это!

import java.io.*;
import java.net.*;

public class ReadURL {
    public static void main(String... args) throws Exception {
        InputStream in = new URL("https://google.com").openStream();
        while (true) {
            int c = in.read();
            if (c < 0) break;
            System.out.write(c);
        }
    }
}

Обратите внимание, что я постарался сделать его как можно короче (и из-за этого в некоторых местах ужасно). Нам нужно открыть URL-адрес, взять из него поток, прочитать этот поток по байтам и распечатать. Если мы попробуем использовать другой метод чтения , который считывает все сразу в массив – он может преждевременно прекратить чтение.

И это коротко, потому что меня не волнуют неприятные исключения. Код может быть в три раза больше, если я это сделаю.

Почему это так?

Главное – Java была создана не для того, чтобы быть простой в освоении. У него была другая цель:

упростить работу в КРУПНЫХ ПРОЕКТАХ и БОЛЬШИЕ КОМАНДЫ

Когда вы создаете какую-то мелочь – от школьного упражнения или какого-нибудь приложения для проверки концепции – даже до игры в JS – полезно, если язык “легкий” и позволяет вам делать что-то быстро без особой головной боли.

Но когда проект разрабатывается командой из нескольких (многих людей) и расширяется в течение многих лет – обычно люди приходят и уходят, никто точно не помнит, что и как работает.

Из-за этого синтаксис Java и система типов могут быть трудными для начинающих. И его стандартная библиотека огромна. PHP и JavaScript используют массивы почти для всего. Python предлагает в основном списки и диктовки. Но в Java есть более десятка классов, посвященных различным типам коллекций. Многочисленные потоки и читатели – и некоторые из них не очень удобны.

И когда вы освоите синтаксис и стандартную библиотеку, вы обнаружите, что это только начало!

Java славится своими библиотеками и фреймворками, и обычно для того, чтобы устроиться на работу, вам нужно ознакомиться хотя бы с некоторыми из них. Весна , Спящий режим , Гуава Google – благодаря им вы можете иногда чувствовать себя несчастным:)

Вывод

Ну что ж, друзья! У меня нет намерения пугать вас. Java в любом случае хороший язык. И любой может научиться этому. Просто не расстраивайтесь, если это дается нелегко. Это может быть проще после того, как у вас будет опыт работы с несколькими языками и общими знаниями о программировании.

Оригинал: “https://dev.to/rodiongork/java-is-not-easy-to-learn-but-still-worth-f6n”