-
Notifications
You must be signed in to change notification settings - Fork 155
Description
LiveScript "2.0"
"It's a-boot time"
So, this got talked about quite about before, but I'm not sure that's actually what's interesting to us now.
However, there's definitely a need to cleanup some things in LS, and especially with ES6/7-related.
Are people okay with breaking changes now? If they're not, we can discuss what we want to change, but in the meantime:
- Implement type ascriptions (PR starting Start working on type ascriptions #803)
- ES6 support:
- modules. @gkz proposed
import!andexport!for the ÈS6 modules (we need to decide between<<<{<,}andimport {all,}anyway) - classes: I don't think we want them. LiveScript code tends to use invokable class bodies
- async/await can be delayed a bit more, I think. It's ES7, and it's not quite there yet... We'd also need to decide on a syntax (eww
->**) constneeds to be compiled to ES6'sconst- I'm not sure we need to change
let's meaning, I don't think it adds much.
- modules. @gkz proposed
- Remove
for ever - Parse the star as a real operator (not just void=)
- Remove
implements(unless people actually use it) - Remove the match-introduced operators
>==etc - Make
matchan actual pattern matching operation (semantics TBD, that can come later) - Remove operator overloading (...or make the compiler aware of types...)
- Trim down synonmys. Includes
otherwise/default,case/when,=>/then(I guess this one is the one people like), etc
This will be controversial (at best), but I think it's worth discussing:
I believe we should remove implicit variable declaration. We have var, and := when we need to change a value.
I think the scoping rules would seem much saner if we had to explicitly declare those. But I know this isn't going to fly for a lot of people, so...
There's another controversial topic: .., it and that. I like what we currently have, but I'm too biased to know if that bugs people or not.