Ответ VonC трудно улучшить, поэтому я даже не буду пытаться. Я расскажу о некоторых других вещах, не упомянутых им.
Сначала пойдут некоторые устаревшие вещи. Если в вашем коде есть предупреждения об устаревании, скорее всего, он больше не будет компилироваться.
Далее библиотека Scala расширяется. В основном это обычные небольшие шаблоны, такие как перехват исключений в Either
или Option
или преобразование AnyRef в Option с null
, сопоставленным с None
. Эти вещи в основном могут остаться незамеченными, но я устаю от публикации чего-либо в блоге, а потом от того, чтобы кто-то сказал мне, что это уже на Scala 2.8. Ну, на самом деле, я не устаю от этого, но, к счастью, привык к этому. И я не говорю здесь о коллекциях, которые получают серьезную ревизию.
Теперь, было бы хорошо, если бы люди опубликовали реальные примеры таких улучшений библиотеки в качестве ответов. Я бы с радостью одобрил все такие ответы.
REPL не получает просто завершение команды. Он получает много вещей, включая возможность проверять AST на предмет или возможность вставлять точки останова в код, попадающий в REPL.
Кроме того, компилятор Scala модифицируется, чтобы обеспечить быструю частичную компиляцию для IDE, что означает, что мы можем ожидать, что они станут намного более «осведомленными» о Scala - запрашивая у самого компилятора Scala код. *
Одно большое изменение, вероятно, останется незамеченным многими, хотя оно уменьшит проблемы как для авторов библиотеки, так и для пользователей. Прямо сейчас, если вы напишите следующее:
package com.mystuff.java.wrappers
import java.net._
Вы импортируете не библиотеку net
Java, а библиотеку com.mystuff.java
net
, так как com
, com.mystuff
, com.mystuff.java
и com.mystuff.java.wrappers
все находятся в пределах видимости, и java
может быть найденным внутри com.mystuff
. В Scala 2.8 только wrappers
получает область действия. Поскольку иногда вы хотите, чтобы часть остального находилась в Scope, теперь разрешен альтернативный синтаксис package
:
package com.mystuff.factories
package ligthbulbs
, что эквивалентно:
package com.mystuff.factories {
package lightbulbs {
...
}
}
И случается, что оба factories
и lightbulbs
попадают в область видимости.