Что 7-ка нам готовит?

Рубрика: Development, Java | 15 October 2007, 14:22 | Vadim Voituk

Ещё после анонса Java 6 Mustang, компания Sun Microsystems заявила о том, что это не будет скачком сродни Java 1.4 => Java 5, и языковые возможности языка останутся теми же. Там же “по секрету” анонсировалось начало работ на Java 7 Dophin, который уже будет содержать новые языковые возможности и как результат новый формат class-файла.

Итак что же такого нового готовит разработчикам выход 7й версии JVM:

1. Language level XML support
Дает возможность использовать XML-код как языковые конструкции а также на уровне языка выполнять XPath-запросы.
Например:
[java]element.appendChild(<muppet><name>Kermit</name></muppet>);[/java]

2. JSR 294 Improved Modularity Support (superpackages)
Добавляется ещё один уровень вложенности в иерархии кода.
Пример:

[java]superpackage example.bar.lib {    // member packages
  member package example.bar.lib;
  // member superpackages
  member superpackage example.bar.lib.net, example.bar.lib.xml;
  // list of exported types
  export example.bar.lib.Table;
  export superpackage example.bar.lib.net;
}[/java]

3. Closures
Замыкания – синтаксический сахар который уже давно есть в Groovy, ещё раньше был в Perl и от которого так тащатся Ruby-программисты
Выглядит так:

[java]var.each{it ->
  System.out.println ("Element " + it);
}[/java]

4. JavaBean property support
Ухищрение для ленивых, кто не хочет генерить setter-ы и getter-ы, то, от чего отказались в Groovy и планируют ввести в PHP.

[java]public property String foo;
a->Foo = b->Foo;[/java]

5. Annonations to detect software failure detection (JSR 305)
Является частью обновленной системы аннотаций (JSR 308).
Понятного мало, потому без обьяснений приведу ссылку на презентацию на Google Tech Talk

Это только языковые фишечки-рюшечки. Также в ним прилагается огромное количество изменений и в API и JDK Tools и ядре JVM.

Комментариев: 6

6 Responses to “Что 7-ка нам готовит?”

Комментарии:

  1. Traut

    closures из функционального программирования пришли вроде бы. по мотивам map/reduce :)

  2. vadim

    Так и есть. Но в Groovy – это по сути анонимный класс, который implements Runnable

  3. Chabster

    Вместо создания этого борделя лучше бы поисправляли старые недочеты языка. Даже с breaking change.

  4. jojo45

    Изменения будут, но не столь глобальные имхо

  5. vadim

    Изменения будут, но не столь глобальные имхо

    Это как понимать?

  6. tru

    Лучше бы сделали нормальные генерики, а то придумали костыль какой-то.

Leave a Reply