среда, 27 января 2010 г.

[comp.prog] Анонсирована первая бета-версия Scala 2.8.0

Вот полный текст анонса: Scala 2.8.0 Beta 1.

Из того, что было переделано и добавлено (моя выжимка из общего списка):

  • переработанная библиотека коллекций (вроде бы с хорошей обратной совместимостью). Подробности здесь: http://www.scala-lang.org/sid/3
  • новая реализация массивов, манифесты для полиморфных массивов. Подробности здесь: http://www.scala-lang.org/sid/7
  • специализация типов. Вроде бы позволяет указывать специализации для обобщенных функций, по которым компилятор будет сам генерить несколько реализаций и использовать наиболее подходящую из них в месте вызова. Подробности здесь: http://www.scala-lang.org/sid/9
  • именованные аргументы и аргументы по умолчанию. Подробности здесь: http://www.scala-lang.org/sid/1
  • пакеты как объекты. eao197: насколько я понял, пакеты сейчас становятся чем-то вроде объектов и могут иметь собственные методы, поля и определения типов. Эта функциональность пока не завершена и полностью станет доступной позже.
  • переработанный REPL. Теперь поддерживается автодополнение по табуляции для всех пакетов, которые находятся в classpath и пр. улучшения.
  • улучшенная библиотека Actors. Новые Reactor-ы, актеры смогут использовать fork/join возможности из JSR166y (что дает прирост производительности на JVM 1.6), диспетчеры теперь могут добавляться и адаптироваться под собственные нужды как плагины.

Плюс улучшения в компиляторе (вплоть до увеличения скорости работы на 50%).

Плюс новые инструменты: Scaladoc 2, Sbaz 2, Scalap, Scala IDE for Eclipse.

Ну что тут скажешь… Scala продолжает активно развиваться. Учитывая количество багов, которые они вносят в каждом новом релизе, стабилизируется ветка 2.8.0 не раньше чем месяцев через 5-6. А там, глядишь, уже какой-нибудь Scala 2.9 на подходе будет. Пока все идет по сценарию языка D :( С другой стороны, пока пользователей у языка не очень много, еще можно экспериментировать и доводить язык до ума. Опять же, я на Scala не пишу, меня это не затрагивает, так что пускай экспериментируют :)

4 комментария:

kmmbvnr комментирует...

Ну дык, давали бы честный номер версии, наподобие Scala 0.8.3.

Вот питон и то только до 2.6 дорос, прежде чем до 3ки скакнуть, а ruby так до сих пор 1.8 - 1.9

eao197 комментирует...

>Ну дык, давали бы честный номер версии, наподобие Scala 0.8.3.

А мне их система нумерации кажется вполне логичной. Уж точно логичнее таковой для языка D :)

Насколько я помню, Scala 1 и Scala 2 не были полностью совместимы между собой. К тому же, если Scala 1 пыталась работать как на JVM, так и на .NET, то Scala 2 -- только на JVM (и в каком состоянии сейчас порт на .NET я не в курсе). Поэтому изменение мажорного номера с 1 на 2 оправдано. Ну и в рамках Scala 2 изменение номеров 2.1, 2.3, ... так же выглядит логичным.

Golovach Ivan комментирует...

Fork/Join нет в Java 1.6. Появится в Java 7. Пока это отдельная библиотека.

eao197 комментирует...

2Golovach Ivan: спасибо за замечание. Действительно, в официальном анонсе сказано, что актеры смогут использовать механизм Fork/Join из JSR166y, что дает существенное улучшение производительности в JVM 1.6. Я решил, что Fork/Join уже в 1.6 и так и написал.