You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-Это язык объектно-ориентированного программирования (ООП)
37
+
-Он поддерживает слияние ФП и ООП
38
+
-Контекстные абстракции обеспечивают понятный способ реализации _вывода терминов_ (_term inference_)
39
+
-Он работает на JVM (и в браузере)
40
+
-Беспрепятственно взаимодействует с Java кодом
41
+
-Он используется для серверных приложений (включая микросервисы), приложений для работы с большими данными, а также может использоваться в браузере с помощью Scala.js
46
42
47
-
The following sections take a quick look at these features.
43
+
Эти функции кратко рассматриваются в следующих разделах.
48
44
49
45
50
-
### A high-level language
46
+
### Высокоуровневый язык
51
47
52
-
Scala is considered a high-level language in at least two ways.
53
-
First, like Java and many other modern languages, you don’t deal with low-level concepts like pointers and memory management.
48
+
Scala считается высокоуровневым языком как минимум по двум причинам.
49
+
Во-первых, подобно Java и многим другим современным языкам, вы не имеете дело с низкоуровневыми понятиями,
50
+
такими как указатели и управление памятью.
54
51
55
-
Second, with the use of lambdas and higher-order functions, you write your code at a very high level.
56
-
As the functional programming saying goes, in Scala you write _what_ you want, not _how_ to achieve it.
57
-
That is, we don’t write imperative code like this:
52
+
Во-вторых, с использованием лямбда-выражений и функций высшего порядка вы пишете свой код на очень высоком уровне.
53
+
Как говорится в функциональном программировании, в Scala вы пишете то, _что_ хотите, а не то, _как_ этого добиться.
@@ -168,13 +166,14 @@ class Dog extends Animal, HasTail:
168
166
{% endtabs %}
169
167
170
168
171
-
Studies have shown that the time a developer spends _reading_ code to _writing_ code is at least a 10:1 ratio, so writing code that is concise _and_ readable is important.
169
+
Исследования показали, что время, которое разработчик тратит на _чтение_ и _написание_ кода, составляет как минимум 10:1,
170
+
поэтому важно писать краткий и читабельный код.
172
171
173
172
174
-
### A dynamic feel
173
+
### Ощущение динамики
175
174
176
-
Scala is a statically-typed language, but thanks to its type inference capabilities it feels dynamic.
177
-
All of these expressions look like a dynamically-typed language like Python or Ruby, but they’re all Scala:
175
+
Scala — это язык со статической типизацией, но благодаря своим возможностям вывода типов он кажется динамичным.
176
+
Все эти выражения выглядят как языки с динамической типизацией, такие как Python или Ruby, но это все Scala:
As Heather Miller states, Scala is considered to be a [strong, statically-typed language](https://heather.miller.am/blog/types-in-scala.html), and you get all the benefits of static types:
206
+
Как утверждает Heather Miller, Scala считается [сильным языком со статической типизацией](https://heather.miller.am/blog/types-in-scala.html),
207
+
и вы получаете все преимущества статических типов:
208
208
209
-
- Correctness: you catch most errors at compile-time
210
-
- Great IDE support
211
-
- Reliable code completion
212
-
- Catching errors at compile-time means catching mistakes as you type
213
-
- Easy and reliable refactoring
214
-
- You can refactor your code with confidence
215
-
- Method type declarations tell readers what the method does, and help serve as documentation
216
-
- Scalability and maintainability: types help ensure correctness across arbitrarily large applications and development teams
217
-
- Strong typing in combination with excellent inference enables mechanisms like [contextual abstraction]({{ site.scala3ref }}/contextual) that allows you to omit boilerplate code. Often, this boilerplate code can be inferred by the compiler, based on type definitions and a given context.
218
-
219
-
{% comment %}
220
-
In that list:
221
-
- 'Correctness' and 'Scalability' come from Heather Miller’s page
222
-
- the IDE-related quotes in this section come from the Scala.js website:
223
-
- catch most errors in the IDE
224
-
- Easy and reliable refactoring
225
-
- Reliable code completion
226
-
{% endcomment %}
209
+
- Корректность: вы обнаруживаете большинство ошибок во время компиляции
210
+
- Отличная поддержка IDE
211
+
- Надежное автодополнение кода
212
+
- Отлов ошибок во время компиляции означает отлов ошибок по мере написания
213
+
- Простой и надежный рефакторинг
214
+
- Вы можете уверенно рефакторить свой код
215
+
- Объявления типов методов сообщают читателям, что делает метод, и помогают служить документацией
216
+
- Масштабируемость и удобство обслуживания: типы помогают обеспечить корректность в произвольно больших приложениях и командах разработчиков
217
+
- Строгая типизация в сочетании с превосходным выводом типов позволяет использовать такие механизмы, как [контекстная абстракция]({{ site.scala3ref }}/contextual), которая позволяет вам опускать шаблонный код. Часто этот шаблонный код может быть выведен компилятором на основе определений типов и заданного контекста.
0 commit comments