Сообщений 0    Оценка 420        Оценить  
Система Orphus

Десять вопросов Мартину Одерски о Scala

Автор: Евгений Охотников
Источник: RSDN Magazine #2-2007
Опубликовано: 27.04.2007
Исправлено: 10.12.2016
Версия текста: 1.0

Евгений Охотников: Воплотили ли вы в Scala все свои идеи или же что-то осталось нереализованным – из-за недостатка времени или по другим причинам?

Мартин Одерски: Несколько вещей остались нереализованными, поскольку у нас не было достаточного опыта в их дизайне и/или реализации на момент первого выпуска Scala. В будущем нам бы хотелось внедрить в Scala расширяемое сопоставление с образцом, полиморфные конструкторы и развитую поддержку параллелизма. Первые два направления на данный момент уже хорошо изучены и должны найти свое место в Scala в ближайшее время. Улучшенная поддержка параллелизма потенциально важнее, но пока еще недостаточно опыта для того, чтобы успешно реализовать ее. Сейчас мы предлагаем довольно хорошую библиотеку actors (в стиле Erlang), которая работает поверх стандартных Java-нитей.

ЕО: Есть ли что-нибудь в Scala, чтобы вы хотели перепроектировать или реализовать иначе?

MO: В начале 2006 года мы серьезно модифицировали Scala и устранили многое из того, что, по нашему мнению, было неудачным в первой версии Scala. Синтаксис стал легче, точки с запятой стали необязательными. Мы устранили некоторые проблемы с функциями высшего порядка, обнаруженные в первой версии. Мы упростили модель примесей (mixin).

ЕО: Кто-то (кажется, это был Бьерн Страуструп) сказал, что любой инструмент обязательно будет использоваться так, как это не мог предполагать автор инструмента. Видели ли вы такое применение Scala, которое оказалось для вас неожиданным?

MO: Это как посмотреть. Всегда есть вещи, которых вы не ожидаете, но когда оглядываешься назад, оказывается, что они имеют смысл. Например, интенсивное использование Actor-ов во фреймворке liftweb: http://liftweb.net Я еще не видел чего-нибудь такого, чего я бы никогда не мог представить, но предполагаю, что в будущем это случится :)

ЕО: Вы рассматриваете Scala как язык общего назначения или же как нишевой язык (вроде Erlang)? Как вы думаете, в каких областях Scala выглядит наиболее привлекательно и конкурентоспособно?

MO: Scala -- это язык общего назначения. Я думаю, что он является альтернативой Java во всех прикладных областях. Большим преимуществом является то, что он делает работу программистов продуктивнее, особенно хороших программистов. Пока мы наблюдаем широкую адаптацию Scala в области Web-разработки, где его поддержка XML и преобразования древовидных структур в функциональном стиле является большим плюсом.

ЕО: В настоящее время наиболее широко распространены языки, в которые были инвестированы серьезные средства (например, Java, C#, Visual Basic), и OpenSource-проекты с более чем десятилетней историей (например, Perl, Python и Ruby). Вы надеетесь, что Scala сможет сыграть заметную роль в таких условиях?

MO: Scala сможет добиться успеха только при поддержке динамичного сообщества пользователей. Успех Python и Ruby показал, что такое сообщество можно вырастить, даже если это требует времени. Принимая во внимание юный возраст Scala, можно сказать, что мы хорошо движемся по этому пути.

ЕО: Сейчас Microsoft активно работает над C#. На платформе .Net есть многообещающий язык Nemerle. Есть наследник C++ – язык D. Есть постоянно растущий интерес к динамическим (Python, Ruby, Groovy, ...) и функциональным языкам (OCaml, Haskell, Erlang, ...). Какие языки вы рассматриваете как самых опасных конкурентов Scala? Какие возможности могут помочь Scala выиграть эту борьбу?

MO: Я не хочу говорить в терминах соперничества. Я заинтересован в существовании и широком распространении хороших языков программирования. Если в конце концов это будет какая-нибудь будущая версия Nemerle или F#, для меня это будет замечательно. Как и Scala, эти языки пытаются построить мостик между объектно-ориентированным и функциональным программированием, между статикой и динамикой. Насколько я могу сказать, они все очень хороши. Сейчас мы наблюдаем очень плодотворный обмен идеями между этими и другими языками.

ЕО: До сих пор функциональные языки программирования не использовались широко. Какое будущее вы предпочитаете для Scala: языка для миллионов программистов или языка для небольшой аудитории?

MO: Scala не является исключительно функциональным языком. Он уже завоевал аудиторию, которую составляют не только функциональщики. Мы сейчас наблюдаем по 2000 скачиваний в месяц, и это число постоянно растет. Кроме того, Scala быстро воспринимается индустрией.

ЕО: Какие у вас планы по поводу будущего Scala?

MO: Мы пытаемся повысить удобство использования Scala. Ключом к этому является наличие хороших инструментов. Мы предлагаем плагин к Eclipse, и мы знаем, что ведутся аналогичные разработки для IntelliJ и Netbeans. Мы так же сконцентрированы на предоставлении большего количества библиотек и фреймворков, например для GUI или Web-сервисов. Сейчас мы, в основном, используем для этого Java-библиотеки, но здесь есть большой потенциал за счет использования лучших возможностей по абстрагированию в Scala. Еще одним направлением работы является более глубокие исследования в области языка. Здесь требуются эксперименты. Интерес представляют такие области, как параллелизм и распределенность, подключаемые типы, стадийность, виртуальные классы и новая система пакетов. Что-то из этого может определить будущее Scala, но пока еще слишком рано что-либо говорить.

ЕО: Существует несколько хороших введений в Scala -- ScalaOverview, ScalaTutorial и ScalaByExample. Но нет достаточно глубоких описаний языка, за исключением ScalaReference. И ScalaReference очень неудобно использовать в качестве учебного пособия по языку. Планируете ли вы написать книгу о Scala? Что-нибудь вроде 'The C++ Programming Language' или 'Programming Ruby'.

MO: Да, я сейчас в процессе написания книге в стиле 'Programming Ruby'. Она будет опубликована издательством Artima. И перед ее выходом, большая часть материалов появится на сайте Artima в свободном доступе.

ЕО: Насколько интенсивно вы работаете над Scala? Является ли разработка Scala частью вашей работы или это сейчас просто ваше хобби?

MO: Scala является основной частью работы почти 10 человек: меня, двух кандидатов наук и семи аспирантов.


Эта статья опубликована в журнале RSDN Magazine #2-2007. Информацию о журнале можно найти здесь
    Сообщений 0    Оценка 420        Оценить