Убедитесь, что вы установили npm i @types/node
Одна из вещей, упомянутых в выступлениях Мартина Одерски о 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 был разработан с использованием нескольких простых правил, которые означают, что новые ключевые слова для каждого незначительного раздражения не нужны.
Другой целью Scala было преодоление разрыва между функциональным и объектно-ориентированными языками. Он содержит множество конструкций, вдохновленных (т.е. скопированных с!) Функциональных языков. Я занимаюсь невероятно мощным сопоставлением с образцом , структурой параллелизма на основе акторов и (конечно) функциями первого и высшего порядка.
Конечно, ваши вопрос сказал, что была конкретная цель , и я только что привел 3 отдельные причины; вам, вероятно, придется спросить Мартина Одерского!
Еще одной из первоначальных целей дизайна, конечно же, было создание языка, работающего на виртуальной машине Java и полностью совместимого с классами Java. У этого есть (как минимум) два преимущества:
Поскольку это функционально и использует акторов (насколько я понимаю, прокомментируйте, если я ошибаюсь), это позволяет очень легко масштабировать почти что угодно до любого количества процессоров.
Тем не менее, я рассматриваю Scala как своего рода тестовую площадку для новые языковые функции. Бросьте в кухонную раковину и посмотрите, что произойдет.
Мое личное мнение таково, что для любых приложений, в которых участвует команда из более чем трех человек, вы более продуктивны с языком с очень простым и ограничительным синтаксисом только потому, что вся работа становится больше, как вы взаимодействуете с другими, а не просто кодируете заставить компьютер что-то делать.
Чем больше людей вы добавите, тем больше времени вы потратите, объясняя, что?: означает или разницу между | и || применительно к двум логическим значениям (в Java мало кто знает).
означает или разница между | и || применительно к двум логическим значениям (в Java мало кто знает). означает или разница между | и || применительно к двум логическим значениям (в Java мало кто знает).