-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Dotty 0.9.0-RC1 Blog post #4764
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dotty 0.9.0-RC1 Blog post #4764
Conversation
b1a628e
to
040bdc6
Compare
@lampepfl/dotty-core Please review/correct/complete |
## Trying out Dotty | ||
|
||
### sbt | ||
Using sbt 1.1.4 or newer, do: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@liufengyun I'll add a section about compiler plugins |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Otherwise, LGTM 👍
`scala.reflect.Selectable.reflectiveSelect` conversion (we might extend this to more conversions). | ||
|
||
### Optimise s and raw interpolators [#3961](https://github.com/lampepfl/dotty/pull/4229) | ||
`s` and `raw` string interpolators were known to be slower than their not type-safe counterparts: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems both are equally type-safe. I would say "the non-interpolated code".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the example below I agree, but that's not the point here. Here is another example that I think illustrate "type safety":
scala> val x = 1; val y = 2
x: Int = 1
y: Int = 2
scala> "Hello " + x + y
res0: String = Hello 12
scala> x + y + " Hello"
res1: String = 3 Hello
scala> s"Hello $x$y"
res2: String = Hello 12
scala> s"$x$y Hello"
res3: String = 12 Hello
|
||
### IDE support | ||
It is very easy to start using the Dotty IDE in any Dotty project by following | ||
the [IDE guide](https://dotty.epfl.ch/docs/usage/ide-support.html). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpick: I remember from a very old tutorial on writing that it is a very good practice to avoid very
in writing because it is not very useful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"not very useful"? 😄 😆
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well maybe it was easy before, but now it's even easier, i.e. very easy :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very good comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"simply", "obviously", "very", "easily" are generally best avoided. They serve little purpose but to make people feel like idiots when they don't understand or fail to follow the instructions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
inline def comments() = ~👍
Today, we are excited to release Dotty version 0.9.0-RC1. This release serves as a technology | ||
preview that demonstrates new language features and the compiler supporting them. | ||
|
||
Dotty is the project name for technologies that are considered for inclusion in Scala 3. Scala has |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dotty is the experimental compiler of Scala, considered to stand for the next Scala 3 compiler.
This release serves as a technology preview of new language features ready to experiment with by using Dotty.
pioneered the fusion of object-oriented and functional programming in a typed setting. Scala 3 will | ||
be a big step towards realizing the full potential of these ideas. Its main objectives are to | ||
|
||
- become more opinionated by promoting programming idioms we found to work well, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not opinionated.
Its main objectives are the following:
- incorporate modern programming idioms that satisfy current and future needs,
- ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"opinionated" is part of Martin's pitch ;-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok
|
||
### Improved REPL [#4680](https://github.com/lampepfl/dotty/pull/4680) | ||
The REPL now uses [JLine 3](https://github.com/jline/jline3) under the hood which improves on | ||
many aspects such as auto-completions and multi-line editing. The REPL now also works on Windows! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comma before "such as"
|
||
|
||
### Documentation support in the IDE [#4461](https://github.com/lampepfl/dotty/pull/4461), [#4648](https://github.com/lampepfl/dotty/pull/4648) | ||
The Dotty IDE will now display documentation on code hover for symbols that were previously |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
now displays ... while hovering over symbols
|
||
|
||
### Drop requirement that implicit functions must be non-empty [#4549](https://github.com/lampepfl/dotty/pull/4549) | ||
We decided to remove an arbitrary restriction that implicit and functions must be non-empty. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We remove the arbitrary restriction that parameters of implicit functions must by non-empty.
Implicit conversions are easily the most misused feature in Scala. We now emit feature warnings | ||
when encountering an implicit conversion definition, just like Scala 2 does. | ||
|
||
In addition, we also emit a feature warning when an implicit conversion is used, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Split, long sentence.
// compared to: | ||
"Hello " + name + "!" | ||
``` | ||
The compiler will now desugar the former into the later. Special thanks to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
latter
|
||
|
||
### Support for compiler plugins [#3438](https://github.com/lampepfl/dotty/pull/#3438) | ||
Dotty now supports Compiler plugins. Compiler plugins let you customise the compiler pipeline |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would go with customize
8eadd63
to
7f540db
Compare
No description provided.