I think [Pony](https://tutorial.ponylang.io/types/type-expressions.html) is close to being that (but it has much more, like Actors and reference capabilities).
I think [Pony](https://tutorial.ponylang.io/types/type-expressions.html) is close to being that (but it has much more, like Actors and reference capabilities).
Unfortunately, the tooling is just as much of a nightmare (though with the dotnet CLI it is slowly showing signs of improvement), and cross compatibility is still iffy for a lot of things, so I’m not sure it satisfies the rest of the author’s specs.
I would kill to see a dialect of F# completely freed of the .net nightmare and allowed to fly free on its own.
But you get ADTs, the best modules on earth (even if the syntax is a bit old ...), GADT if you want them, object row polymorphism, polymorphic variants, streams, etc.
Bucklescript-TEA was kind of nice though, getting to play with the Elm architecture but with a more flexible type system and better inference. But I found the size of the bundles and tools and the slowness in the environment I was using it in made me just go back to Elm instead. :(
As for Reason ... well ... Facebook has taken over webtech with a lot of halfassed misunderstandings of better technologies, but this one might take the cake.
I honestly find that whole project insulting, and so should you. It’s as if they’ve declared JavaScript developers to be so stupid that they physically can’t use a language with any other syntax, so they have to fuck up one to get them to use it.
https://hackernoon.com/how-i-ported-10k-lines-of-scala-to-ko...
The syntax of both is extremely similar.
https://leverich.github.io/swiftislikescala/
Basically Swift and Kotlin based their syntax exactly on Scala.
> It is a kitchen sink with every feature under the sun.
You obviously don't know Scala and you're just repeating BS found on the Internet.
Scala is a much more powerful and much more abstract language than Kotlin, so comparing their syntax complexity is unfair from the start.
But if you restrict the problem space to what can be covered by both Scala and Kotlin, then Scala has in fact fewer features than Kotlin. It just happens to have a few more generic, and very powerful unique features, which might look unfamiliar to Java programmers.
Examples:
* Kotlin has special syntax for null-checking. Scala has no special syntax and implements the same feature in the standard library.
* Kotlin has special syntax for coroutines. Scala achieves the same with a library.
* Kotlin has special syntax for extension methods. Scala doesn't provide special syntax for extension methods - they can be created with implicit objects which are a much more generic feature and have other important use cases not possible in Kotlin nor Java.
* Java has special syntax for array access. Scala does not.
* Java has special syntax for interfaces with method implementations. Scala does not.
* Java has static members which are completely alien to OOP. Scala does not.
* Kotlin and Java have operators, and Kotlin has operator overloading (just like C++!), making operators second class citizen. Scala has just method names, so "operators" and regular methods are the same.
> Scala is much closer to C++ than Java
Only in terms of abstraction power (IMHO it is much above C++ in abstraction power; actually much closer to OCaml than C++), but not in terms of complexity. Scala language specification is ~200 pages long. Java is ~750 pages, C++ is ~1300 pages.
I think you have confused Scala for something else. “Regular” it is most assuredly and deliberately not.
This can be said about any language. True for Java, true for Python, true for Kotlin.