НовостиСобытияКонференцииФорумыIT@Work
Идеи и практики автоматизации:

Блог

Виртуальная машина Интернета

Сергей Бобровский
19.10.2010 09:58:30

Функциональное и мобильное скриптовое программирование и виртуализация кода -- именно эти три тенденции были обозначены на секциях GOTO, посвященных разработке софта. Собственно, ничего другого даже и не обсуждалось. Инновационными их назвать сложно, а явная популярность темы связана как с появлением общедоступных и полнофункциональных интегрированных сред разработки, так и со сдвигом программистской парадигмы в сторону все большего абстрагирования (как логического, так и технологического) и выразительности -- без оных создавать масштабные и производительные системы малореально.

продолжаем путешествие по секциям международной конференции разработчиков GOTO Aarhus 2010

Java

Rod Johnson, создатель Spring -- открытой среды быстрой Java-разработки, пообещал, что она расширится облачными и корпоративными дополнениями.
William Pugh предложил к эксплуатации исходники FindBugs (боле миллиона скачек) -- системы статического анализа Java-кода. Например, в коде поисковика Google с ее помощью удалось найти и исправить тысячи серьезных ошибок, а в среднем она выявляет 5-10% дефектов.

не-Java

Joel Pobar из Microsoft рассказал о текущей ситуации с функциональным языком F#, поддерживаемым Visual Studio. Он предлагает развитые механизмы поиска, нечеткого сопоставления, классификации и рекомендаций, обеспечивает модульность и выразительность кода, и сочетает хороший прикладной функционал C# и безопасность и гибкость Haskell.

Еще одним прорывным языком становится Scala, с 2006-го активно применяемый в корпоративных разработках. Проектировщик языка Martin Odersky напомнил про синтез в Scala объектного и функционального подходов, аджайл-методик, концепций безопасности и производительности. Даже по компактности исходного кода Scala-программы обгоняют Java. Scala также допускает встройку предметно-ориентированых DSL-языков, а в 2011-м выйдет версия 2.9 с поддержкой параллельных операций.

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

JVM

Brian Goetz, автор серии книг по Java, напомнил, что мнение о медленности виртуальной Java-машины устарело давным-давно. Сегодня в JVM реализовано множество механизмов оптимизации на уровне байт-кода, выполняется эффективная компиляция just-in-time и так далее. Не менее важно, что для этой платформы удобно реализовывать и другие языки -- ведь предлагается готовая инфраструктура поддержки, отладки, управления памятью, безопасности, богатые библиотеки. В качестве примеров он привел реализованные для JVM проекты JRuby и PHP.reboot, а также Da Vinci Machine, расширяющую JVM нестандартными языковыми возможностями.

Истинно инновационный подход продемонстрировал в своем выступлении Cliff Click из Azul Systems. Современный деловой софт характеризуется большими объемами кода (миллион строк -- типичный размер), схемы доступа к данным при этом плохо предсказуемы по нагрузке, в результате "тяжелые" транзакционные системы на базе классических реализаций JVM, обрабатывающие "кучи" объектов на десятки гигабайтов, начинают заметно тормозить. Azul пошла весьма оригинальным путем, спроектировав с нуля не только операционное и виртуальное окружение, но и аппаратную часть. В результате система из 864 ядер собственного проектирования с "заточкой" под java-архитектуру обрабатывает 600 гиг информации, подтормаживая не более чем на микросекунду.

JavaScript

Erik Corry из Google пояснил тонкости реализации JavaScript-движка V8, включающего JIT-компилятор и используемого в Chrome и Android.

Mark Miller, ученый-исследователь (есть такая замечательная должность в Google) -- проектировщик языка E (распределенные безопасные вычисления) и системы CAJA (безопасный набор HTML, CSS и JavaScript). По его мнению, языки программирования ранее развивались от функций и структур (Си) к объектам (Си++, Java), а сегодня двигаются к безопасному мобильному коду, где властвуют технологии распределенных защищенных объектов EJB и AJAX. Однако лучшим в плане защищенных сетевых вычислений, полагает Миллер, остается его детище E -- но так как распространен E слабо, следует ожидать гибрида JavaScript + E, который воплощается в стандарте ECMAScript 5, а также в Dr.SES (развитие CAJA).

Douglas Crockford, архитектор JavaScript-движка Yahoo, убежден, что JavaScript остается на сегодня самым популярным языком программирования. Последняя его версия ECMAScript 5, вышедшая в 2009-м, сочетает лучшие черты Java, Scheme и Self; готовится следующая версия под названием Harmony. Он называет JavaScript виртуальной машиной Интернета и напоминает, что современные скрипты отлично работают в качестве серверных движков на крупнейших мировых сайтах. HTML5 он назвал большим шагом в неверном направлении, так как данный стандарт не содержит решения проблемы межсайтового скриптинга XSS (недавняя паника на твиттере тому примером), а также считает версии браузеров IE, включая восьмую, крайне небезопасными реализациями JavaScript.

продолжение следует

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

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии