Что 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.
Tweet
closures из функционального программирования пришли вроде бы. по мотивам map/reduce :)
Так и есть. Но в Groovy – это по сути анонимный класс, который implements Runnable
Вместо создания этого борделя лучше бы поисправляли старые недочеты языка. Даже с breaking change.
Изменения будут, но не столь глобальные имхо
Это как понимать?
Лучше бы сделали нормальные генерики, а то придумали костыль какой-то.