scala 2.9: планы по определению типа параметров функции с аргументами по умолчанию?

Я только начинаю работать со Scala. Я использую Python для исследовательского программирования и конвертирую довольно большую (~ 4000 строк) программу на Python.

Несколько комментариев:

  1. Похоже, подходящее время для участия в Scala, как В 2.8 было добавлено много хороших вещей.
  2. С другой стороны ... Мне интересно, почему у Scala, похоже, нет достойного пакета ввода-вывода и почему это не кажется приоритетом. В большинстве языков ввод-вывод считается одной из самых фундаментальных операций, и части языка обычно разрабатываются специально для того, чтобы ввод-вывод работал хорошо. Например, библиотека ввода-вывода в Python кажется одной из самых старых и стабильных частей языка (по крайней мере, в его интерфейсе). Тем не менее, в комментариях двухлетней давности говорится, что «Source.fromFile () - это серьезный взлом, подождите, пока тот-то и такой-то закончит новый пакет ввода-вывода» - и я не вижу никаких движений к завершению этого. Еще хуже то, что Source.fromFile (). GetLines () - который, взломанный или нет, является обычно рекламируемым интерфейсом - был полностью нарушен изменениями, внесенными в 2.9.0.1 (см. https://issues.scala-lang.org/browse/SI-4662 ). Очевидно, что для этого самого простого интерфейса ввода-вывода вообще не проводится регрессионное тестирование, что является плохим признаком.
  3. Стирание типов настолько ужасно, что мне действительно интересно, почему в Scala было принято решение придерживаться этого. Да, я знаю, что в Java есть стирание типов, а Scala построен на JVM, но возникающая в результате необходимость добавления явно видимых вещей, таких как манифесты, аннотации специализации и т. д., и т. д., чтобы обойти стирание типов, просто ужасно пахнет ... Я чувствую, что в конечном итоге дизайнеры Scala осознают безумие всего этого и будут вынуждены реализовать правильную общую типизацию, после чего у них будет много ненужной ерунды, которую нужно исключить.

Мой вопрос:

Есть ли планы добавить вывод типа для параметров функции с аргументами по умолчанию? Становится немного раздражать писать такие вещи:

  def add_words(words:Traversable[String], ignoreCase:Boolean=true,
                stopwords:Set[String]=Set[String]()) {
    ...
  }

В этом случае аннотации типов в ignoreCase и стоп-словах просто не нужны, а просто добавляются ненужные многословие.

Спасибо за любые комментарии от тех, кто участвует в разработке Scala.

5
задан Urban Vagabond 23 August 2011 в 08:48
поделиться