avva: (Default)
[personal profile] avva
(программистам)

void main() {
var name = IO.readln("What is your name? ");
IO.println("Hello, " + name);
}

Никогда не догадаетесь, какой это язык программирования.

Джава. Это Джава. Новая версия JDK 25, вышедшая сегодня.

Но как??! спросите вы.

Значит так. Начинаем с привычного (вместо Scanner можете представить BufferedReader, если предпочитаете, неважно)

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("What is your name? ");
String name = scanner.nextLine();
System.out.println("Hello, " + name);
}
}

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

- не надо объявлять класс, "голые функции" по умолчанию принадлежат одному анонимному классу
- не надо объявлять public, для программы из одного файла нормально разрешить main() быть функцией и в классе package-visibility
- не надо static, запускающий программу код создаст класс, если у него есть дефолтный конструктор без аргументов (а у этого нового анонимного класса есть)
- разрешаем main без аргументов
- var без String уже раньше был, тип известен из функции readln()
- вводим новый класс IO для супер-простого ввода/вывода, делаем его частью java.lang, чтобы не надо было импортировать.

И вот результат.

Прощай, "public static void main". Ты держался 30 лет, но твое время прошло.

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

Но с другой стороны, чего это я брюзжу. Я даже и не пишу на Джаве, и не собираюсь в ближайшем будущем. Люди придумали интересный способ упростить синтаксис простеньких программ на Джаве, при этом оставаясь в рамках языка, без каких-то дикостей типа макро-обработки или супер-специальных случаев. Ну и молодцы.

А вы как думаете?

(подробно: https://openjdk.org/jeps/512)
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

January 2026

S M T W T F S
    1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 01:31 pm
Powered by Dreamwidth Studios