Какова цель языка программирования Scala? [закрытый]

Убедитесь, что вы установили npm i @types/node

40
задан Daniel C. Sobral 26 August 2011 в 12:19
поделиться

4 ответа

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

val lock = new ReentrantReadWriteLock
lock withReadLock {
   //do stuff
}

Похоже, есть некий специальный синтаксический сахар для работы с блокировками juc . Но это не тот случай, просто язык scala используется таким образом, каким он кажется . Код более читабелен, не так ли?

В частности, различные правила синтаксического анализа языка scala позволяют очень легко создавать библиотеки, которые выглядят как предметно-ориентированный язык (или DSL). Посмотрите, например, на scala-test:

describe("MyCoolClass") { 
  it("should do cool stuff") {
     val c = new MyCoolClass
     c.prop should be ("cool")
  }
} 

(Есть еще много примеров этого - вчера я узнал этот ). Много говорят о том, какие новые функции появятся в языке Java в JDK7 ( монета проекта ). Многие из этих функций представляют собой специальный синтаксический сахар, предназначенный для решения какой-либо конкретной проблемы. Scala был разработан с использованием нескольких простых правил, которые означают, что новые ключевые слова для каждого незначительного раздражения не нужны.

16
ответ дан 27 November 2019 в 01:53
поделиться

Другой целью Scala было преодоление разрыва между функциональным и объектно-ориентированными языками. Он содержит множество конструкций, вдохновленных (т.е. скопированных с!) Функциональных языков. Я занимаюсь невероятно мощным сопоставлением с образцом , структурой параллелизма на основе акторов и (конечно) функциями первого и высшего порядка.

Конечно, ваши вопрос сказал, что была конкретная цель , и я только что привел 3 отдельные причины; вам, вероятно, придется спросить Мартина Одерского!

13
ответ дан 27 November 2019 в 01:53
поделиться

Еще одной из первоначальных целей дизайна, конечно же, было создание языка, работающего на виртуальной машине Java и полностью совместимого с классами Java. У этого есть (как минимум) два преимущества:

  • вы можете воспользоваться преимуществами повсеместности, стабильности, возможностей и репутации JVM. (подумайте о расширениях управления, JIT-компиляции, расширенной сборке мусора и т. Д.)
  • вы по-прежнему можете использовать все ваши любимые библиотеки Java, как сторонние, так и ваши собственные. Если бы это было не так, во многих случаях (в моем случае) это было бы серьезным препятствием для коммерческого использования Scala.
7
ответ дан 27 November 2019 в 01:53
поделиться

Поскольку это функционально и использует акторов (насколько я понимаю, прокомментируйте, если я ошибаюсь), это позволяет очень легко масштабировать почти что угодно до любого количества процессоров.

Тем не менее, я рассматриваю Scala как своего рода тестовую площадку для новые языковые функции. Бросьте в кухонную раковину и посмотрите, что произойдет.

Мое личное мнение таково, что для любых приложений, в которых участвует команда из более чем трех человек, вы более продуктивны с языком с очень простым и ограничительным синтаксисом только потому, что вся работа становится больше, как вы взаимодействуете с другими, а не просто кодируете заставить компьютер что-то делать.

Чем больше людей вы добавите, тем больше времени вы потратите, объясняя, что?: означает или разницу между | и || применительно к двум логическим значениям (в Java мало кто знает).

означает или разница между | и || применительно к двум логическим значениям (в Java мало кто знает).

означает или разница между | и || применительно к двум логическим значениям (в Java мало кто знает).

2
ответ дан 27 November 2019 в 01:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: