Question on Scala.js

I wanted to ask for an update on the commitment of Lightbend and the Scala Center to Scala.js?

It seems to me we have only just begun to explore the potentially huge impact Scala can have on the still-chaotic world of Web development – there is just such a lot of work to be done to get it to work with all the popular frameworks starting with React and Angular. I find most companies have invested so much time in certain Web frameworks that they don’t want to move to Scala.js without seeing specific support.

Looking at the scala-js project on Github, my impression is that it is under healthy development but could use more manpower. Is Lightbend willing to “put its money where is mouth is”? In terms of funding it feels like projects like Spark and Play are given preferential treatment while extending Scala.js – surely just as relevant to the enterprise – is left to unsupported third parties like Li Haoyi and David Barri. I would love to be able to persuade more clients to use Scala.js, but it is hard without a clear signal from Lightbend.

James

1 Like

I, too, am interested in hearing more about Lightbend’s plans for Scala.js and I don’t know where the best place to find that would be. My concern is that Scala.js seems to appeal to a niche that doesn’t apply to web developers writ large. That is, Scala.js seems to be geared toward teams that just want to write in Scala and end up with something that runs on the front end.

I’m skeptical that aynone currently writing JavaScript and comfortable with that will be convinced to convert. There are other options out there (e.g. TypeScript) that will have a much smoother learning curve for that audience.

Anyway, interested to see if we get any kind of Scala Center response here.

1 Like

Also interested in that!

In fact the other day I was getting acquainted with Angular 4 and thought it’d be a great idea to port their Tour of Heroes example to scala.js. It might help get people onboard the scala.js wagon… I’d try myself but doing mostly backend development, I neither have a good command of Angular nor scala.js :-S

1 Like

About Lightbend involvement in Scala.js: I think it’s worth checking out Adriaan Moors and Seth Tissue’s answer to a question about Scala on mobile platforms, during the closing panel at Scaladays Chicago 2017 : https://youtu.be/Y43Zyjz7V5M?t=24m25s
They mention Scala.js as a solution their customers could be interested in, and suggest talking to them if you have an interest in official Scala.js support from Lightbend. It does appear that this is something that could happen if there is enough interest expressed by their customers and partners (though they can’t give any guarantees about it). So if you are in a position where you could push for Scala.js usage but would need support from Lighbend, it certainly won’t hurt to let them know.

2 Likes

Thanks Guillaume for the summary. I’m an engineer, not a spokesperson, but: yes, my understanding is that Lightbend can’t take this on purely as community service, so what would help most would be for our business and sales folks to hear from current customers or serious prospective customers about it. (Engineer-to-engineer talk, like we’re having now, helps too, but isn’t enough by itself.)

Over in non-profit-land, on the Scala Center side, SCP-005 “Ensurance of continuity of Scala.js project” was accepted by the advisory board at the first meeting. Unfortunately the proposal text is missing from https://github.com/scalacenter/advisoryboard/blob/master/proposals/005-continuity-of-scala-js.md, but as best I can recall, there weren’t really specifics. A trip to the Scala Center website (http://scala.epfl.ch, recently refreshed) shows that some Scala.js work has already happened, but not the heavy lifting.

1 Like

On the Scala Center side; indeed we received this proposal in our first advisory board meeting to “ensure the continuity of Scala.js.” However, what precisely that means was never clearly defined (no proposal text was ever received.) Our first swing at trying to help the Scala.js ecosystem was to make it easier to use Scala.js with other ecosystems. @julienrf came up with the idea to try to make it easier to use Scala.js and NPM together, which was realized as the scalajs-bundler project. Other than that, it has been unclear what else we should do to help along Scala.js. Further, several of our advisory board members have made it clear that they think our time is better spent on other things that have a greater impact on the entire Scala community (regardless of backend), such as compiler profiling, the zinc incremental compiler, and help improving sbt. Since it was unclear what precisely we should do for Scala.js, and how much time we should invest (other accepted proposals name a duration that we should work on something), we’ve since followed the suggestion to move on to what appear to be more pressing issues, such improving tooling (sbt, scala meta, and code migration tools).

If you’re interested in some kind of commitment to permanently support Scala.js and to promote it, that’s beyond the scope of the Scala Center’s capabilities at the moment, financially. That said, I’d second what @SethTisue said about getting the word around to Lightbend business and sales folks. If what’s needed is some kind of signal or commitment to commercially support Scala.js, Lightbend would be the ones to eventually sell support contracts. And as @SethTisue indirectly said, the business/sales folks at Lightbend tend to drive some of Lightbend’s strategic decision-making, so if Scala.js is important to customers/potential customers of Lightbend, the first step is to communicate that to them. Given enough interest, perhaps Lightbend will one day consider commercially supporting Scala.js.

For the record, I agree with @farmdawgnation’s sentiment:

My take is that people currently writing JavaScript are too far away from ever being able to integrate their existing workflows/frameworks/tools with Scala.js’s workflow (sbt). Hence I think we end up attracting back-end folks who just want to keep writing Scala on the front-end; that is, using sbt isn’t a deal-breaker for them. So yeah, I agree that we’re likely appealing to a niche which isn’t “web developers in general.”

My first suggestion when SCP-005 came in was to better target front-end developers by making it easier for Scala.js to fit into existing workflows. Developing scalajs-bundler (not exactly front-end) was as close as we got to this.

Although it is true that few JavaScript developers come over to Scala.js, we get one from time to time.

Going to TypeScript is definitely the smoother path. The amazing thing is that, once you’re doing TypeScript, moving from that to Scala.js is about the same kind of transition as moving from Java to Scala. And that, we know a lot of people have done. If Scala.js eventually amasses the same fraction of TypeScript developers as the fraction of Java devs who became Scala devs, it’s going to be really big.

3 Likes

For what it’s worth, my team is using Scala.js primarily for the code sharing benefits between backend and frontend, much as Node folks use it to code their backend and frontend in JavaScript. We have our domain types, operations, JSON encoding/decoding logic, etc., all in a shared project that automatically syncs our backend and frontend–at compile time.

I feel this is Scala.js’s unique value proposition–code sharing between a Scala backend and a JS frontend.