Если бы мне пришлось вернуться на Java, я бы пропустил больше всего: замыкания, функции высшего порядка, сопоставление с образцом, классы регистра и акцент о неизменности.
Я уже давно пользуюсь 2.8. Если бы мне пришлось вернуться к 2.7, главное, чего бы мне не хватало, - это согласованность, чистоту и богатство API коллекций 2.8. Это ваааааай лучше 2.7 штука. Но мне также очень не хватало именованных аргументов и аргументов по умолчанию.
Я думаю, что это не особенность, но лаконичность, которую достигает Scala, - это то, что мне нравится больше всего.
Это, конечно, возможно только из-за вывода типов, замыканий, отличной системы типов и т. Д. Я просто не думаю, что вы можете разбить его на одну или две функции. Они работают вместе, и результат, краткий код, это то, что я бы назвал убийственной функцией.
Мне нравится писать на Scala. Это особенность №1 в моей книге :)
Я могу просто начать делать то, что хочу, вместо того, чтобы танцевать через обручи Java:
Что касается 2.8 против 2.7... Я провел время только с 2.8 ;-)
Вывод типа избавляет от бессмысленного набора текста. map
и foreach
и т.п. в коллекциях великолепны, особенно в сочетании с ленивыми итераторами по умолчанию и действительно простым синтаксисом функций.
Но, как человеку, много занимающемуся научными вычислениями, мне больше всего не хватало возможности написать высокопроизводительный код, заключить его в эффективные классы, а затем использовать карты и математические операторы (+, * , что угодно), чтобы манипулировать этими высокоуровневыми конструкциями так, как я на самом деле о них думаю.
Что касается 2,8 и 2,7 - с моей точки зрения, улучшение происходит постепенно. Это немного лучше во многих областях; мало на что можно указать и сказать: «Ого, это!». Я ожидаю, что новая специализированная аннотация мне очень поможет, но я еще не видел ее в полной мере в библиотеке, поэтому воздерживаюсь от суждений.