-
Notifications
You must be signed in to change notification settings - Fork 1.1k
The Scala Future Vision #19449
-
Scala Highlander
Scala Motto
Scala is the Scalable Language. Write anything. Write everything.
Scala Multiplatform - one great language to rule them all
Write backend, frontend, iOS, Android, JVM, native and WASM code in one beautiful language.
There Shall Be Only Scala. And Rust.
Vision
- Our goal is the mass Scala adoption in all feasible niches of software development.
- We shall not break working code. Unless it’s absolutely necessary, unavoidable and is approved by the community.
- We work to make Scala Multiplatform the Default Language for cross-platform development
- Collaborate with major tech companies. Un-ban Scala in Google.
- Scala Native focus is iOS and Android Native development.
- Scala WASM backend.
- Scala Multiplatform.
- SBT the official Scala Build Tool, as it de-facto is.
- Simplify SBT architecture
- Merge the essential plugins into its core
- Add a YAML/TOML configuration that covers 95% of common Scala builds with option to do the usual Scala configuration if needed.
- Make it as fast as possible.
- Organise an annual challenge for everyone to make it faster! With prises!
- Merge scala-cli and sbt into a single thing,
scali
- We constantly improve compiler build times. A release should not be slower than before.
- We constantly improve on compilation errors quality.
- We shall provide the best tooling in the industry.
- We ask devs for feedback AND then listen to it.
- ...
- PROFIT!
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 5 -
😄 2 -
🎉 2 -
👀 1
Replies: 5 comments 1 reply
-
I'd settle for #19194, maybe this is a reply to that discussion.
Beta Was this translation helpful? Give feedback.
All reactions
-
I'd settle for #19194, maybe this is a reply to that discussion.
Not really, I haven't seen it before.
This is a vision I had for quite a long time and just wanted to share, propose and discuss it with the Scala community.
It's quite ambitious but shouldn't it be so?
Because now it seems that Scala is wandering with no clear goal and the vision of its future and a place in the industry. And I guess it seems so not only to me.
Beta Was this translation helpful? Give feedback.
All reactions
-
@nau i can't agree to the "wandering" stance. imho, scala quite consistently became a better and better language in every major scala 2 release and hugely improved with scala 3 in almost every regard (still sitting on the fence regarding indentation-based syntax). that doesn't feel aimless to me.
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 3
-
that doesn't feel aimless to me.
Martin and Scala Center had a huge goal – a new compiler based on the Dotty calculus, where many complaints and issues where addressed. And a migration to the new language, an enormous task as well.
And I think they succeded with both.
What now? What is the aim, the goal?
Caprese?
What problem would it solve?
Is it the right problem to solve?
What amazes me is that Scala has Scala.JS for 10 years already. We have working Scala Native.
We can target JVM, JS and LLVM platforms today.
Yet it is not marketed as a solution! While Kotlin steadily walks by in that direction right in front of our eyes!
Convenient common (multiplatform) code sharing solution is a very much appreciated. That's one of the big reasons why projects prefer TypeScript, Kotlin and Rust. Shared code is cheaper, less diverse tech stack is cheaper.
Just follow the money.
Anyways. My point is that we probably still are ahead of the game, technically. But we lack the ambition to actually solve this, despite this great potential.
Maybe we just need a little push. Maybe if this discussion would gain some attention and support it might change something. I just want to at least try.
Beta Was this translation helpful? Give feedback.
All reactions
-
Yet it is not marketed as a solution!
Please could you explain further what you mean by this? Or perhaps offer a suggestion where we are lacking - for example we mention Scala.js as a viable use-case prominently on the Scala homepage.
(Scala Native is briefly mentioned but is still not stable enough for full recommendation, but with 0.5 coming hopefully we can seriously address that)
Beta Was this translation helpful? Give feedback.
All reactions
-
My 2 cents (Sorry for the negative tone, I'm skipping the points that I agree with to keep this short):
2. We shall not break working code. Unless it’s absolutely necessary, unavoidable and is approved by the community.
I have mixed feelings about this... There are the LTS releases, so I would rather if this was more clearly along the lines of "we shall not break working code in LTS releases" and "Code that works on an LTS release either works or does not compile on a non-LTS release".
Which seems to be the status quo.
3. We work to make Scala Multiplatform the Default Language for cross-platform development 1. Collaborate with major tech companies. Un-ban Scala in Google. 2. Scala Native focus is iOS and Android Native development.
I don't know what "Un-ban Scala in Google." so I can't comment on that... Is it banned, or is this just a figure of speech?
But regarding Scala Native, I do not believe that the focus should be iOS and Android Native development. I think right now Scala Native should just really focus on stability and multiplaform compatibility. Believe it or not, I think
If it turns out that the community starts using it for Android/iOS development, so be it, but I think changing the focus to a niche now would be cutting the legs of the project.
4. SBT the official Scala Build Tool, as it de-facto is. 3. Add a YAML/TOML configuration that covers 95% of common Scala builds with option to do the usual Scala configuration if needed. 6. Merge scala-cli and sbt into a single thing, `scali`
I understand the problem, but I don't think that adding YAML/TOML support to SBT is the way to go. In general, I don't think adding more complexity to SBT is the way to go.
I would rather see this added to something like Scala CLI (or other build tool) with the option to export a build to SBT when the definition gets too complex for YAML/TOML.
Regarding merging Scala CLI and SBT, that also sounds weird, considering that the plan is that scala-cli
will become scala
.
So, ideally most users could just use scala
and then, if a project gets too big, export it and use sbt
.
Beta Was this translation helpful? Give feedback.