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

Ява В 2019 Году И Далее

Современная Java намного лучше. С тегами java, карьера, android, новички.

Что приходит вам на ум, когда вы слышите это слово Java ?

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

Некоторые… просто ненавижу Java.

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

На Яве ты знаешь

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

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

Цитируя слова Венката Субраманьяна, он сказал “Разработка Java была, безусловно, лучшей за последние 5 лет по сравнению с прошлыми 20 годами, и я собираюсь поставить на это свои деньги, развитие в пространстве Java будет самым большим в ближайшие 3-4 года чем мы когда-либо видели”

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

Давайте воспользуемся некоторыми примерами, в этом примере я бы использовал old Java вы, вероятно, знаете, и тогда я бы показал вам, как вы могли бы решить проблему, используя Modern Java .

Допустим, ваш лектор сказал вам создать программу для создания списка целых чисел от 1 до 10, а затем перебирать его, чтобы распечатать четные числа, используя старую Java, ваш код может выглядеть следующим образом:

      ArrayList myList = new ArrayList();

        for (int i = 1; i <= 10; i++) {
            myList.add(i);
        }

        for (int num : myList) {
            if (num % 2 == 0)
                System.out.println(num);
        }

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

Используя современную Java, я мог бы упростить приведенный выше код для глаз, написав его в приведенном ниже стиле:

      rangeClosed(1, 10).boxed().collect(Collectors.toList())
                .stream()
                .filter(integer -> integer % 2 == 0)
                .forEach(System.out::println);

Я думаю, это выглядит лучше.

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

HashMap myMap = new HashMap();

Что ж, я бы хотел, чтобы это было более кратко.

К счастью, Java в настоящее время не нуждается во всем этом шаблонном коде:

var myMap = new HashMap();

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

Современная Java

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

Если бы я попытался упомянуть все улучшения, у меня было бы достаточно контента, чтобы опубликовать об этом книгу.

JShell

Java Shell tool (Оболочка) – это интерактивный инструмент для изучения языка программирования Java и создания прототипов кода Java.

Оболочка представляет собой цикл чтения-оценки-печати (REPL), который вычисляет объявления, операторы и выражения по мере их ввода и немедленно отображает результаты. Инструмент запускается из командной строки.

Вы можете протестировать отдельные инструкции, опробовать различные варианты метода и поэкспериментировать с незнакомыми API-интерфейсами в сеансе JShell.

Он был добавлен в JDK 9, это довольно полезный инструмент, который в один прекрасный день может стать спасением.

Переключение выражений

Ожидается, что выражения Switch будут в JDK 12+, они упрощают традиционные операторы switch, которые мы знаем, например, код:

switch (day) {
    case MONDAY:
    case FRIDAY:
    case SUNDAY:
        System.out.println(6);
        break;
    case TUESDAY:
        System.out.println(7);
        break;
    case THURSDAY:
    case SATURDAY:
        System.out.println(8);
        break;
    case WEDNESDAY:
        System.out.println(9);
        break;
}

Было бы записано как:

switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY                -> System.out.println(7);
    case THURSDAY, SATURDAY     -> System.out.println(8);
    case WEDNESDAY              -> System.out.println(9);
}

Завершаемое будущее (Обещания Java)

CompletableFuture позволяет создавать и выполнять цепочки асинхронных задач.

CompletableFuture работает так же, как обещания работают в JavaScript.

    public static void main(String[] args) throws InterruptedException {

        CompletableFuture.supplyAsync(() -> longProcess()).thenAccept(System.out::println);
        Thread.sleep(4000);
        System.out.println("Done!");
    }

    private static int longProcess() {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return 1;
    }

CompletableFuture был представлен в JDK 8, хотя люди сосредоточились на новых блестящих потоках Java и не заметили замечательного инструмента.

Если вам интересно, вы могли бы пойти посмотреть и узнать об этом:

Внешний вид проекта

Project Loom, который еще не полностью реализован, представит fibers как легкие, эффективные потоки, управляемые виртуальной машиной Java, которые позволят разработчикам использовать ту же простую абстракцию, но с лучшей производительностью и меньшим объемом памяти.

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

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

Записи (классы данных для Java)

Записи, которые также являются функцией, которая еще не реализована, помогут упростить создание классов POJO. Например, такой класс, как:

class Point {
    double x;
    double y;

    Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public void setX(double x) {
        this.x = x;
    }

    public double getX() {
        return x;
    }

    public void setY(double y) {
        this.y = y;
    }

    public double getY() {
        return y;
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }


    @Override
    public String toString() {
        return super.toString();
    }
}

Будет переписан как:

record Point(double x, double y);

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

Цикл Выпуска

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

Java на Android

Google объявила Kotlin официальным языком, и с тех пор он значительно вырос.

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

Возможно, вы слышали, как некоторые разработчики Android жаловались на Java. Обычно мне нравится, чтобы они были конкретными.

На что они на самом деле жалуются, так это на многословие Java 7 , в то время как последним, выпущенным на момент написания этой статьи, является Java 12 .

Kotlin выглядит круто на Android отчасти потому, что разработчики Android не могут получить доступ к новейшим функциям Java и застряли с помощью Java 7 ~ Java 8 .

Тем не менее, большинство приложений для Android все еще в настоящее время написаны на Java. Вероятно, многие профессиональные разработчики прекрасно используют Java 7:)

Мы все не должны совершать ошибку, сравнивая Котлин к Java путь |/Swift сравнивался с Objective C .

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

Кстати, я разработчик Android, и я тоже думаю, что Kotlin – это круто 😉

Java По-Прежнему бесплатна

Oracle недавно объявила, что будет взимать плату за коммерческое использование Oracle JDK и долгосрочную поддержку. Что ж, это попало в заголовки газет, и люди написали много фактически неверных статей.

Кого бы это ни касалось, Java по-прежнему бесплатна.

Большинство крупных компаний, использующих Oracle JDK для своей разработки, не были бы так обеспокоены этим изменением.

Для людей, которые беспокоятся, в этом нет необходимости!

Как и в JDK 11, OpenJDK имеет паритет функций с JDK Oracle. Следовательно, они взаимозаменяемы.

Более того, Amazon недавно анонсировала Amazon Corretto , который представляет собой бесплатный, мультиплатформенный, готовый к производству дистрибутив Open Java Development Kit (OpenJDK).

Corretto поставляется с долгосрочной поддержкой, которая будет включать улучшения производительности и исправления безопасности.

Вы также можете обратиться к другим поставщикам OpenJDK, таким как AdoptOpenJDK, на самом деле нет причин для тревоги.

Java по-прежнему бесплатна.

Текущий рейтинг Java как языка

В настоящее время Java является языком №1 в рейтинге языков программирования TIOBE index. Это также было # 2 в GitHub |/Состояние октября .

Это не рекламная кампания

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

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

Оригинал: “https://dev.to/lemuelogbunude/java-in-2019-and-beyond-1hah”