Компания Typesafe в своем блоге объявила о том, что библиотека spray.io теперь стала частью их платформы. Библиотека spray реализует низкоуровневую поддержку протокола HTTP на базе акторов Akka. Часть библиотеки ранее уже была интегрирована в ядро Akka — компонент akka-io.
В результате интеграции планируется получить модуль Akka HTTP, предназначенный для реализации легковесных REST-сервисов и создания клиентов для них. Как и остальные компоненты Akka, новый модуль также получит Java API.
Play Framework, другая часть платформы, в настоящий момент самостоятельно реализует HTTP на базе Netty. В будущем планируется переход на использование spray, но с сохранением опциональной старой реализации.
Не далее как 11 марта сего года на портале плагинов для NetBeans был размещён Scala plugin 1.6.1.1.
Список требований плагина к зависимостям:
Среда NetBeans 7.2+
JDK 6+
Scala 2.10+
Опционально поддерживается sbt и плагин nbsbt — соответствующая система сборки проектов Scala.
Список новых возможностей плагина:
Более информативные сообщения о результатах компиляции.
Исправлена консоль sbt в версии для Windows.
Поддерживаются зависимости областей тестов в sbt-проектах.
Информация о classpath в свойствах проекта.
Всплывающее автодополнение в Scala- и sbt-консолях.
От себя: налицо заметное ускорение синтаксического разбора исходного текста, более корректное следование стандарту языка (варианты без точки с запятой в конце строки обрабатываются корректно), более приятный вид самого текстового редактора и исходного текста.
Вышла новая версия легковесного mvc web-фреймворка Play, позволяющего создавать веб-приложения на языках Java и Scala.
Основные изменения
Scala 2.10: Весь проект не только переведен на Scala версии 2.10, но и была удалена зависимость между версией Scala, используемой в системе сборки(sbt), и версией, используемой в рантайме.
scala.concurrent.Future: Реализована поддержка библиотеки scala.conncurent.Future: управление асинхронным кодом стало проще, а также появилась возможность напрямую использовать библиотеки, реализующие тот же API.
Модульность: Сам фреймворк разделен на модули(jdbc, anorm, javaCore, javaJdbc, javaEbean, javaJpa, filters). Базовый модуль фреймворка стал еще легче.
Модульность проектов: Улучшена поддержка подпроектов: теперь подпроектам доступны собственные компоненты управления путями, а из их композиции и складываются пути всего проекта.
Улучшение многопоточности Java API: Теперь при асинхронных вызовах не теряется Http контекст, а также управление синхронизацией перенесено на уровень фреймворка.
Управление созданием контроллеров: Добавлена возможность создавать контроллеры вручную посредством перегрузки метода getControllerInstance. Теперь доступно применение dependency injection в вашем приложении.
Новый Scala JSON API: Теперь с валидацией и преобразованиями.
Filter API: Новый Filter API позволяет работать с любой частью запросов или ответов, а также предоставляет защиту от кроссайтовых атак(CSRF)
requireJS: Добавлена поддержка requireJS - динамического загрузчика js модулей.
Всего к данному релизу команда разработчиков произвела 182 исправления и улучшения.
библиотека Akka Actors теперь является частью языка;
наконец-то в состав языка добавлена поддержка макросов.
Текущая стабильная версия языка программирования Scala может быть получена на странице загрузки проекта; исходные коды распространяются на условиях лицензии BSD.
Не далее как 9-го ноября сего года было объявлено о выпуске второго релиз-кандидата языка пограммирования Scala версии 2.10.
Основные нововведения и улучшения таковы:
Классы-значения (value classes) — снижают накладные расходы на выделение памяти.
Неявные классы — служат для упрощения создания классов, обеспечивающих методы расширения для другого типа.
Интерполяция строк — позволяет разработчику добавлять в выражение присваивания ссылки на (строковые) переменные, которые превращаются в итоговую строку.
Улучшения в обработке многопоточного кода: Futures и Promises.
Параллельные коллекции теперь могут настраиваться под отдельный пул потоков.
Новый кодогенератор, основанный на ASM: поддерживаются форматы Java 6 (по умолчанию) и Java 7, Java 5 будет объявлен устаревшим.
Динамические типы выведены из числа экспериментальных возможностей.
Улучшено сопоставление по образцу.
Библиотека акторов Akka введена в ядро языка.
Объявлены устаревшими восьмеричные литералы.
Введены следующие экспериментальные возможности языка: отражения (reflection), макросы.
Также проведена работа по оптимизации библиотеки, в частности вычисление Range.sum теперь имеет сложность O(1).
А также много других улучшений в Scaladoc и в библиотеке языка.
Участие в конференции бесплатное. Необходима предварительная регистрация.
Эта встреча примечательна тем, что на ней выступит Евгений Бурмако, докторант EPFL, который работает над макросами в Scala под руководством Мартина Одерски.
Напоминаю, что Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования.
После разработки, длившейся больше года, вышла вторая версия платформы для создания интернет-приложений JavaFX. Эта технология имеет давнишнюю историю: будучи созданной в 2007 году под названием «F3», успела претерпеть несколько релизов, а также поменять название и хозяев. Сегодняшний JavaFX - достойный ответ Oracle таким технологиям как Adobe AIR и Microsoft Silverlight. Это подразумевает быструю и эффективную 2D- и 3D-графику, использующую аппаратное ускорение; векторную анимацию, построенную на принципах keyframe и tweening; эргономичный набор виджетов; запуск как в браузере, так и через Java Web Start; возможность инсталляции в качестве desktop-приложения; возможность использовать современные мощные языки программирования.
Ключевым моментом версии 2.0 является то, что вся функциональность JavaFX доступна теперь в виде обычных Java API. Если раньше единственным языком для JavaFX являлся FXScript, то теперь платформа JavaFX открыта для всего спектра JVM-языков: Java, Scala, Groovy, JRuby, Jython, Clojure, Mirah, Fantom и другие; почетное место в списке занимает Visage - достойный наследник FXScript. Авторы JavaFX надеются, что этим списком будут удовлетворены сторонники даже самых экзотических тенденций в программировании. Остальные важные моменты релиза 2.0 вкратце перечислены ниже; подробнее ознакомиться с ними можно по ссылке.
О выходе JavaFX 2.0 было объявлено вчера на конференции JavaOne'2011 в Сан-Франциско. Разработчики пообещали в скором времени открыть исходные тексты всей платформы JavaFX в рамках проекта OpenJDK. Помимо этого, были озвучены небезынтересные идеи касательно будущей Java 9, такие как реификация, оптимизация хвостовых вызовов, продолжения (continuations) и метаобъектный протокол (MOP).
В данный момент доступна стабильная версия под Windows, Developer Preview под Mac OS и альфа версия под Linux. Стабильная Linux версия ожидается в 2012.
После нескольких релиз-кандидатов на этой неделе, сегодня наконец-то вышла стабильная версия скалы 2.9.
Основным нововведением стали параллельные коллекции, которые уже успели вдоволь обсудить. Также среди нововведений:
Трейт App, безопасная и более мощная альтернатива трейту Application, который отныне deprecated.
Трейт DelayedInit, который позволяет настраивать порядок инициализации классов и объектов.
Новые директивы в REPL: :imports, :implicits, :keybindings, :javap
Аннотация @strictfp
Новые пакеты scala.sys и scala.sys.process, взятые из sbt.Process
Новые методы в коллекциях: collectFirst, maxBy, minBy, span, inits, tails, permutations, combinations, subsets
А также много всего по мелочи. Ну и по традиции, багфиксы и ускорение производительности.
P.S. Для интересующихся, сегодня также вышла версия 1.1 фреймворка легковесных акторов, Akka. Подробности там -> Akka User List
Вышел свежий, 7-й номер журнала «Практика функционального программирования». В новом номере вы можете прочитать следующие статьи:
«Язык РЕФАЛ — взгляд со стороны». Бойко Банчев расскажет о сущности, истории и современном состоянии языка РЕФАЛ — детища Валентина Фёдоровича Турчина; языке незаслуженно подзабытом, но на десятилетия опередившем своё время и пустившем корни во множество современных ЯП (как, например, Mathematica).
«Circumflex — веб-фреймворк на Scala comme il faut». Александр Темерев даст урок использования этого «обезжиренного» и гибкого веб-фреймворка, написанного на Scala российской командой во главе с Борисом Окунским.
«Разработка алгоритма обнаружения движения в среде программирования Mathematica». Вадим Залива расскажет об опыте прототипирования такого алгоритма при разработке iPhone-приложения iSentry. Хотя Mathematica и не является в полном смысле этого слова функциональным языком программирования, но программирование в этой среде задействует множество не очень распространенных пока в мейнстриме, но очень важных и заслуживающих внимание средств: интерактивный интерпретатор, гомоиконность (единство кода и данных), сопоставление с образцами, wholemeal programming (оперирование целыми структурами данных, а не их частями), акцент на «чистое» программирование, dataflow programming (Manipulate) и т.п.
«Как написать LDAP-сервер на Erlang» и «Как написать LDAP-сервер на Си». Максим Сохацкий и Олег Смирнов обменяются любезностями со Львом Валкиным: Максим и Олег похвалят Erlang за то, что на нем можно за 20 минут написать LDAP-сервер, а Лев докажет, что дело тут вовсе не в Erlang.
«Продолжения в практике». Алексей Вознюк (человек, написавший на LISP самую быструю программу к конкурсу в ПФП №3) расскажет об использовании продолжений для упрятывания асинхронности кода за обыкновенным «последовательным» синтаксисом. Эта тема особенно актуальна в контексте взрывного роста Веба и сетевых сервисов, но интересна и потому, что открывает целый пласт неожиданных структур управления. Рекомендуем перед прочтением ознакомиться с недавно опубликованным в «Библиотечке ПФП» переводом статьи «Паттерны использования call-with-current-continuation».
«Суперкомпиляция: идеи и методы». Илья Ключников, занимающийся суперкомпиляцией в Институте прикладной математики им. М. В. Келдыша, расскажет о суперкомпиляции (кстати, изобретенной также В. Ф. Турчиным в контексте языка РЕФАЛ), построив поразительно компактный и понятный суперкомпилятор простого языка, и покажет, что она применима не только для удивительно мощной оптимизации многих классов программ, но имеет и другие неожиданные применения.
Кроме этого, журнал доступен и в печатном виде (200р, доступны и все предыдущие номера, комплекты еще дешевле, доставка куда угодно, в Москве можно самовывозом).
Группа разработчиков языка Scala получила грант Евросоюза, выиграв конкурс языков для параллельного программирования. Разработчики получат в течение следующих 5 лет на развитие своего детища 2,3млн €.
Scala — язык программирования для платформы JVM, сочетающий возможности объектно-ориентированного и функционального программирования. Scala был разработан в лаборатории швейцарского ВУЗ’а EFPL.
После долгого перерыва вышел 6-й номер журнала «Практика функционального программирования», который также стал доступен и в печатном виде.
В номере вы можете найти:
эксклюзивные интервью с титанами функционального мира, создателями языков Haskell и Erlang: Саймон Пейтон Джонс и Джо Армстронг поделятся мыслями и ответят на вопросы о своих детищах и обо всем остальном, от работы в Microsoft Research до творчества Тарковского (обсуждение: Саймон Пейтон-Джонс, Джо Армстронг);
сравнение Node.js и Erlang (Дмитрий Демещук);
обзор языка Scala (Влад Патрышев);
перевод статьи Дэна Пипони о быстром сопоставлении с регулярными выражениями при помощи моноидов;
статью Евгения Кирпичёва, в которой идеи Дэна Пипони реализованы в коде
Кроме этого, начат проект «Библиотечка ПФП» в рамках которого будут публиковаться переводы известных статей на тему функционального программирования.
Дэвик Поллак объявил о выходе 2-й версии веб-фреймворка Lift.
Последняя версия поддерживает NoSQL хранилища MongoDB и CouchDB, обмен данными посредством JSON, модель обмена Comet, архитектуру REST. Как всегда, обещаны улучшения производительности работы фреймворка.
Novell объявила о запуске Pulse, основанной на технологии облачных вычислений платформе для взаимодействия в реальном времени. Функционал платформы включает в себя мгновенные сообщения, обмен документами, социальные связи, совместное редактирование документов и т. д.
При создании Pulse был использован написанный на Scala web-фрэймворк Lift 1.0
Daniel Spiewak, один из разработчиков Pulse, так высказался о Lift:
Замечательная поддержка фрэймворком Lift технологии Comet сделала архитектурные решения значительно проще. Мы уже широко использовали Comet, так что от Lift была реальная польза. Фронт-энд web-приложения был полностью написан на Scala. Большая часть бэк-энда реализована на Java, хотя мы использовали код на Scala чтобы реализовать очень сложные функции, такие как рендеринг схемы содержимого Google Wave в XHTML.
Не так давно была анонсирована Kojo — среда для обучения языку Scala на платформе NetBeans. Kojo включает в себя много интересных возможностей, таких как, например, Scala REPL, и позиционируется как развлекательно-обучающая среда для детей. Автор Kojo, Lalit Pant, отвечает на вопросы сайта netbeans.org:
NetBeans: Lalit, здравствуйте. Расскажите, кто Вы и чем занимаетесь?
Lalit: Я — учитель математики в школе для девочек из малообеспеченных семей, в маленьком городке Dehradun в Северной Индии. Ранее я был профессиональным разработчиком и работал в США. В течение 16 лет карьеры мне довелось писать на самых разных языках — С, С++, Java, Prolog, Ruby, Python и, наконец, Scala. Последние 10 лет моей жизни так или иначе были связаны с Java.
NetBeans: Ну, и что же такое Kojo? С какими продуктами можно ее сравнить?
Lalit: Kojo является тем, что я называю обучающей средой. При помощи Kojo ребенок может играючи обучаться работе с компьютером, овладевать азами программирования, экспериментировать с математикой и визуальными образами. Из похожих продуктов я отмечу Scratch, Processing и The Geometer's Sketchpad.
NetBeans: Чем же Kojo уникальна?
Lalit: Kojo сочетает в себе:
мощный язык;
компьютерное искусство;
анимацию и визуализацию;
интерактивную математику.
Ни один из конкурирующих продуктов не предоставляет такого уникального набора возможностей в составе единой среды.
NetBeans: Почему Kojo написана именно на Scala?
Lalit: Должен признать, что знакомство со Scala способно сильно расширить кругозор даже самого опытного разработчика в объектно-ориентированной парадигме. Я столкнулся с такими новыми (и очень мощными) концепциями как Traits, Implicits, Abstract Types, полиморфизм type constructor'ов. Scala также явилась для меня примером практического применения функционального программирования, позволяя использовать функциональный подход внутри объектно-ориентированного кода. Поэтому, когда я стал задумываться об обучающей среде для детей, я не колебался в выборе Scala.
NetBeans: И в качестве пользовательского языка тоже?
Lalit: Да. Я решил, что буду обучать детей программировать именно на Scala, потому что даже узкое подмножество Scala (гораздо более простое, чем Java; по простоте приближающееся к Python или Ruby) обладает порядочной мощью. Да и Scala REPL пригодится мне для собственных разработок ;)
NetBeans: Каковы, по-Вашему, преимущества платформы NetBeans?
Lalit: Что мы имеем «из коробки»:
редактор исходных текстов: великолепная инфраструктура для создания редакторов, предоставляющая подсветку синтаксиса, автодополнение, автоформатирование и т.п.;
оконная система: фиксация (docking) / передвижение окон внутри рабочего пространства;
профессиональный внешний вид;
окно вывода с автоматическим переносом строк, «умным» скроллингом, настраиваемым шрифтом и гиперлинкингом для сообщений об ошибках;
прочее: всевозможные «свистелки» («bells and whistles») наподобие splash-заставки, диалога «About» и инсталлируемого zip-дистрибутива.
Осенью открылся проект по разработке статического компилятора с Groovy, называемый Groovy 1.8 или Groovy++ code.google.com/p/groovypptest/
Тесты, проведенные Nick Wiedenbrueck, показывают что производительность получаемого Groovy++ байткода лишь незначительно (в ~1,5раза) уступает байткоду, получаемому javac