Skip to content

Commit 956a83e

Browse files
committed
Merge pull request #3 from heathermiller/scala-js-0.6.0-announcement
Wording tweaks to Scala.js announcement
2 parents d30c572 + 1531203 commit 956a83e

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

news/_posts/2015-02-05-scala-js-no-longer-experimental.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,35 @@ title: Scala.js no longer experimental
77

88
Today, we [announced the release of Scala.js v0.6.0](http://www.scala-js.org/news/2015/02/05/announcing-scalajs-0.6.0/), the Scala to JavaScript compiler, and dropped the experimental flag associated to it.
99
Yes, you read it right: Scala.js is no longer experimental!
10-
After exactly 2 years of development, we can finally call it production-ready.
10+
After exactly 2 years of development, we finally feel comfortable calling it production-ready.
1111

12-
Note that Scala.js is not part of the Typesafe Reactive platform.
13-
Therefore, although we call it production-ready, Typesafe does not provide any commercial support for Scala.js.
12+
_Note, however, that Scala.js is not part of the Typesafe Reactive platform.
13+
Thus, although we consider Scala.js production-ready, Typesafe does not provide any commercial support for it._
1414

1515
## More than a compiler, an entire ecosystem
1616

1717
At its core, Scala.js is a compiler from Scala to JavaScript.
18-
It compiles .scala files to a single optimized and minimized .js file per application.
19-
The resulting JavaScript code is plain old ECMAScript 5.1, and hence works everywhere: on any OS, any browser, or even on Node.js.
20-
Just like regular Scala, you get all the powerful language features that we know and love: type inference, classes, traits and objects, pattern matching, the collections library, implicits, and your personal favorite.
21-
And, as Scala is fully interoperable with Java, so is Scala.js with JavaScript, in a statically-typed way, or falling back to dynamically-typed code if you want.
18+
It compiles `.scala` files to a single optimized and minimized `.js` file per application.
19+
The resulting JavaScript code is vanilla ECMAScript 5.1, which therefore works everywhere on any OS, any browser, or even on Node.js.
20+
Just like regular Scala, you get all the powerful language features that you know and love: type inference, classes, traits and objects, pattern matching, the collections library, implicits, etc.
21+
And, in the same way that Scala is fully interoperable with Java, Scala.js is fully interoperable with JavaScript. Scala.js can interoperate with JavaScript either in a statically or dynamically-typed way.
2222

23-
A compiler would be nothing without an ecosystem of libraries and tools, though, and we've got that covered too.
23+
While that all sounds great, a compiler would be nothing without an ecosystem of libraries and tools. Scala.js has that covered too!
2424

25-
On the tooling side, you get to use your favorite IDE to develop in Scala.js: IntelliJ IDEA and Eclipse are known to work well, but there is no reason that any other editor wouldn't work.
26-
You get syntax highlighting, code completion (even for JavaScript libraries and the DOM!), jump-to-definition, and pretty much everything you could think of.
25+
You can use your favorite IDE to develop in Scala.js, and from experience, we can report that IntelliJ IDEA and Eclipse both provide a flawless development experience. Other editors should also work well.
26+
With Scala.js tooling, you get syntax highlighting, code completion (even for JavaScript libraries and the DOM!), jump-to-definition, and most other features you come to expect in a Scala tooling environment.
2727
After all, *Scala.js is just Scala*.
28-
Your IDE won't be able to run or debug Scala.js code, though; for that, you can use a browser, and you can even step through your Scala code because Scala.js emits [source maps](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/).
28+
Though, your IDE won't be able to run or debug Scala.js code. For that, you can use a browser, and you can even step through your Scala code because Scala.js emits [source maps](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/).
2929

30-
To build Scala.js libraries and applications, there is an sbt plugin, which gives you the same comfort and development speed as with Scala/JVM.
30+
Building Scala.js libraries and applications is easy –  there is an sbt plugin, which gives you the same comfort and development speed as with Scala on the JVM.
3131
It can even run unit tests automatically with either Rhino, Node.js or PhantomJS, according to your needs.
3232

3333
Scala.js also has a growing ecosystem of libraries, which you can depend on through Maven dependencies (`libraryDependencies` in sbt).
3434
They cover UI frameworks, statically-typed client-server communication, reactive extensions, and so on.
35-
Even some of the popular Scala libraries such as Shapeless and Scalaz cross-compile with Scala.js.
35+
Several popular Scala community libraries such as Shapeless and Scalaz cross-compile with Scala.js.
3636

37-
Finally, Scala.js has a thriving community of nice and helpful people.
38-
Ask questions [on StackOverflow](http://stackoverflow.com/questions/tagged/scala.js), discuss [on the mailing list](https://groups.google.com/forum/#!forum/scala-js), and come hang around [in the Gitter chat room](https://gitter.im/scala-js/scala-js).
37+
Finally, we're proud that Scala.js has a thriving community of nice and helpful people.
38+
Ask questions [on StackOverflow](http://stackoverflow.com/questions/tagged/scala.js), discuss [on the mailing list](https://groups.google.com/forum/#!forum/scala-js), and discuss with us [in the Gitter chat room](https://gitter.im/scala-js/scala-js).
3939

4040
## Why Scala.js is awesome
4141

@@ -74,7 +74,7 @@ Here are also a few selected quotes from the mailing list discussion.
7474
> Scala might be a nice language, but you've never been able to use it to make anything cool that a non-backend-systems person would understand.
7575
> [...]
7676
> With Scala.js, you can easily create small Scala applications and email the tiny 100kb executables (or just the link to them) to anyone, who can run them on any modern device, even smartphones.
77-
> Made a cute game? A fun visualization? An animated sequence? Now you can show the world.
77+
> Made a cute game? A fun visualization? An animated sequence? Now you can show the world.
7878
>
7979
> Scala's no longer just for distributed systems people and type-theorists!
8080
> -- <cite>Li Haoyi</cite>
@@ -118,36 +118,36 @@ Here are also a few selected quotes from the mailing list discussion.
118118
> Scala.js is simply the best option available on browsers today, if you're looking for a language with a powerful yet flexible type system.
119119
> -- <cite>Xavier Cho</cite>
120120
121-
## Why removing the experimental flag now?
121+
## Why remove the experimental flag now?
122122

123-
Many Scala.js users would say that it has been production-ready for quite some time, now.
123+
Many Scala.js users would say that it has been production-ready for quite some time already.
124124
Possibly as early as 0.5.0, which was released in June 2014.
125125
So why do we choose to remove the experimental flag now?
126126
What has changed?
127127

128-
The big difference is *stability* in terms of several aspects:
128+
The big difference is several different aspects of *stability*:
129129

130130
* The semantics of the language are settled. They may still evolve in a backward compatible way (defining previously undefined behaviors), but will otherwise not change anymore.
131131
* The standard library of Scala.js (the `scala.scalajs.js` package) will remain backward source and binary compatible.
132132
* The sbt builds will remain backward source compatible.
133133

134-
Of course, we must still be able to evolve the library and the builds, so things might become deprecated, and eventually removed, but will do so on a very slow pace.
134+
Of course, we must still be able to evolve the library and the builds, so things might become deprecated, and eventually removed, but will do so at a slower pace than before.
135135

136136
All things considered, this means that the code you write today, for Scala.js 0.6.0, will continue to work throughout 0.6.x and 1.x.y unchanged.
137137

138138
"So why isn't it 1.0.0 already?
139139
It seems like these properties satisfy to the requirements of a 1.0.0 version.
140140
What are you hiding?"
141141

142-
If, on all the user-visible aspects, everything is now stable, it is still not true for one almost-implementation detail: the format of the intermediate files of Scala.js, the `.sjsir` files.
143-
These files are basically the Scala.js equivalent of `.class` files for the JVM.
144-
We're not yet completely sure of their format, and we suspect we might still want to change it in the couple coming months.
145-
Now, changing this format means breaking binary compatibility (by definition), and therefore would require a change in major version number.
146-
So we're reserving ourselves a last chance of modifying these without jumping straight to 2.0.0.
142+
While from all user-visible points of view Scala.js is stable, there remains just one quasi-implementation detail which might have to change in future versions – the format of the intermediate files of Scala.js, the `.sjsir` files.
143+
These files are essentially the Scala.js equivalent of `.class` files for the JVM.
144+
We're not yet completely certain that we're settled on their format, so we'd like to reserve the possibility of changing it in the coming months.
145+
Doing so means breaking binary compatibility (by definition), and therefore would require a change in major version number.
146+
So we're not yet jumping to version 1.0.0 just yet – this is so that we may give ourselves one last chance to modify the Scala.js intermediate format before we make the leap to our first major version.
147147

148-
But otherwise, every other aspect of Scala.js is as stable as it get before getting widespread adoption.
148+
Though, rest assured! We're confident that Scala.js is otherwise stable and ready for widespread adoption.
149149

150-
### Getting started
150+
## Getting started
151151

152152
There are three main ways to get started with Scala.js:
153153

@@ -156,4 +156,4 @@ There are three main ways to get started with Scala.js:
156156
* The online sandbox [Scala.jsFiddle](http://www.scala-js-fiddle.com/)
157157

158158
So go ahead!
159-
Use it, love it, and build the Web applications of the future!
159+
Use it, love it, and build the web applications of the future!

0 commit comments

Comments
 (0)