Skip to content
This repository has been archived by the owner. It is now read-only.

Commit eb5eb7e

Browse files
committed
WIP documentation index page
1 parent d7447d5 commit eb5eb7e

File tree

1 file changed

+20
-107
lines changed

1 file changed

+20
-107
lines changed

index.md

Lines changed: 20 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
layout: inner-page-documentation
33
title: Documentation
4-
redirect_from:
5-
- /what-is-scala/
6-
includeTOC: true
4+
#redirect_from:
5+
# - /what-is-scala/
6+
#includeTOC: true
77

88
# Content masthead links
99
links:
@@ -27,110 +27,23 @@ links:
2727
description: "Books and online exercises"
2828
icon: "fa fa-book"
2929
link: /learn.html
30+
- title: "Learning Resources"
31+
description: "Books and online exercises"
32+
icon: "fa fa-book"
33+
link: /learn.html
34+
- title: "Reference"
35+
description: "Search the API, read the language spec, and the glossary"
36+
icon: "fa fa-database"
37+
link: /reference.html
38+
- title: "Learning Resources"
39+
description: "Books and online exercises"
40+
icon: "fa fa-book"
41+
link: /learn.html
42+
- title: "Learning Resources"
43+
description: "Books and online exercises"
44+
icon: "fa fa-book"
45+
link: /learn.html
3046

31-
---
32-
33-
# What is Scala?
34-
35-
## A Scalable language
36-
37-
Scala is an acronym for "Scalable Language". This means that
38-
Scala grows with you. You can play with it by typing one-line
39-
expressions and observing the results. But you can also rely on it
40-
for large mission critical systems, as many companies, including
41-
Twitter, LinkedIn, or Intel do.
42-
43-
To some, Scala feels like a scripting language. Its syntax is concise
44-
and low ceremony; its types get out of the way because the compiler
45-
can infer them. There's a REPL and IDE worksheets for quick
46-
feedback. Developers like it so much that Scala won the ScriptBowl
47-
contest at the 2012 JavaOne conference.
48-
49-
At the same time, Scala is the preferred workhorse language for many
50-
mission critical server systems. The generated code is on a par with
51-
Java's and its precise typing means that many problems are caught at
52-
compile-time rather than after deployment.
53-
54-
At the root, the language's scalability is the result of a careful
55-
integration of object-oriented and functional language concepts.
56-
57-
## Object-Oriented
58-
59-
Scala is a pure-bred object-oriented language. Conceptually, every
60-
value is an object and every operation is a method-call. The language
61-
supports advanced component architectures through classes and traits.
62-
63-
Many traditional design patterns in other languages are already
64-
natively supported. For instance, singletons are supported through
65-
object definitions and visitors are supported through pattern
66-
matching. Using implicit classes, Scala even allows you to add new operations
67-
to existing classes, no matter whether they come from Scala or Java!
68-
69-
## Functional
70-
71-
Even though its syntax is fairly conventional, Scala is also a
72-
full-blown functional language. It has everything you would expect,
73-
including first-class functions, a library with efficient immutable
74-
data structures, and a general preference of immutability
75-
over mutation.
76-
77-
Unlike with many traditional functional languages, Scala allows a
78-
gradual, easy migration to a more functional style. You can start to
79-
use it as a "Java without semicolons". Over time, you can progress to
80-
gradually eliminate mutable state in your applications, phasing in
81-
safe functional composition patterns instead. As Scala programmers we
82-
believe that this progression is often a good idea. At the same time,
83-
Scala is not opinionated; you can use it with any style you prefer.
84-
85-
## Seamless Java Interop
86-
87-
Scala runs on the JVM. Java and Scala classes can be freely mixed, no
88-
matter whether they reside in different projects or in the same. They can
89-
even mutually refer to each other, the Scala compiler contains a
90-
subset of a Java compiler to make sense of such recursive
91-
dependencies.
92-
93-
Java libraries, frameworks and tools are all available. Build tools
94-
like ant or maven, IDEs like Eclipse, IntelliJ, or Netbeans,
95-
frameworks like Spring or Hibernate all work seamlessly with Scala.
96-
Scala runs on all common JVMs and also on Android.
97-
98-
The Scala community is an important part of the Java
99-
ecosystem. Popular Scala frameworks, including Akka, Finagle, and the
100-
Play web framework include dual APIs for Java and Scala.
101-
102-
## Functions are Objects
103-
104-
Scala's approach is to develop a small set of core constructs that can
105-
be combined in flexible ways. This applies also to its object-oriented
106-
and functional natures. Features from both sides are unified to a
107-
degree where Functional and Object-oriented can be seen as two sides
108-
of the same coin.
109-
110-
Some examples: Functions in Scala are objects. The function type is
111-
just a regular class. The algebraic data types found in languages such
112-
as Haskell, F# or ML are modelled in Scala as class
113-
hierarchies. Pattern matching is possible over arbitrary classes.
114-
115-
## Future-Proof
116-
117-
Scala particularly shines when it comes to scalable server software
118-
that makes use of concurrent and synchronous processing, parallel
119-
utilization of multiple cores, and distributed processing in the
120-
cloud.
121-
122-
Its functional nature makes it easier to write safe and performant
123-
multi-threaded code. There's typically less reliance on mutable state
124-
and Scala's futures and actors provide powerful tools for organizing
125-
concurrent system at a high-level of abstraction.
126-
127-
## Fun
12847

129-
Maybe most important is that programming in Scala tends to be very
130-
enjoyable. No boilerplate, rapid iteration, but at the same time the
131-
safety of a strong static type system. As [Graham Tackley from the
132-
Guardian says](http://www.infoq.com/articles/guardian_scala): *"We've found that Scala has enabled us to deliver
133-
things faster with less code. It's reinvigorated the team."*
13448

135-
If you haven't yet, try it out! [Here are some resources to get
136-
started](./documentation).
49+
---

0 commit comments

Comments
 (0)