Remix.run Logo
pjmlp a day ago

The only issue I have with Scala 3 is Python envy, they should not have come up with a second syntax, and pushing it as the future.

If anything is slowly down Scala 3 is that, including the tooling ecosystem that needs to be updated to deal with it.

noelwelsh a day ago | parent | next [-]

Everything is up to date with the new syntax as far as I'm aware. Also, the compiler and scalafmt can rewrite one to the other. A project can pick whatever style it wants and have CI reformat code to that style.

lmm a day ago | parent | next [-]

> Everything is up to date with the new syntax as far as I'm aware.

The Eclipse plugin isn't, and none of the newer IDE integrations is reliable.

pjmlp a day ago | parent | prev [-]

When I checked a year ago, the IDE tooling still wasn't quite there.

spockz a day ago | parent | next [-]

What I don’t get because there is LSP and BSP support. What else is needed to get support for scala 3 from an IDE? Obviously, Kotlin coming from Jetbrains will make it receive a lot more love and first class support.

pjmlp a day ago | parent [-]

Parity with Scala 2 development experience, which was lacking a year ago.

theCodeStig 7 hours ago | parent [-]

With Metals the Scala 3 development experience is better; plus one is no-longer tied to one specific IDE.

blandflakes a day ago | parent | prev [-]

I always find downvoting on stuff like this perplexing. It still isn't there. I know that a lot of Scala people are doing metals and some kind of text editor experience, but if you've used something as powerful as Intellij, the Scala 3 experience is a serious downgrade, and it still is today, even though it's better than it was a year ago.

ergocoder a day ago | parent | prev | next [-]

It's on brand for Scala to have multiple ways of achieving the same thing.

Now we x2 by having the curly brace syntax and the indent syntax.

esafak a day ago | parent | prev | next [-]

You could also have compared it, more attractively, to Haskell.

pjmlp a day ago | parent [-]

Except the reason behind the syntax change is the losing mindshare from Scala into Python, after its relevance in the big data wave that predated the current AI wave.

Nothing to do with Haskell, even if it is also white space significant.

gedy a day ago | parent | prev [-]

As a former Scala fan, wow you aren't kidding, wth

    val month = i match
        case 1  => "January"
        case 2  => "February"
        // more months here ...
        case 11 => "November"
        case 12 => "December"
        case _  => "Invalid month"  // the default, catch-all
    
    // used for a side effect:
    i match
        case 1 | 3 | 5 | 7 | 9  => println("odd")
        case 2 | 4 | 6 | 8 | 10 => println("even")
    
    // a function written with 'match':
    def isTrueInPerl(a: Matchable): Boolean = a match
        case false | 0 | "" => false
        case _ => true
jfim a day ago | parent | next [-]

It's been a while since I touched Scala but wasn't that a thing in previous versions, minus the braces not being present?

weego a day ago | parent [-]

Yes, that's all just as it was, and in places braces were not required / interchangeable so this is more of an optional compiler choice than a real change

malkia a day ago | parent | prev | next [-]

Sorry, I'm coming from C++-ish background - can anyone explain what's going on :)

hocuspocus a day ago | parent [-]

Scala 2's syntax is mostly Java/C-style with a few peculiarities.

Scala 3's optionally allows indentation based, brace-less syntax. Much closer to the ML family or Python, depending on how you look at it. It does indeed look better, but brings its share of issues.[1] Worse, a lot of people in the community, whether they like it or not, think this was an unnecessary distraction on top of the challenges for the entire ecosystem (libraries, tooling, ...) after Scala 3.0 was released.

- [1] https://alexn.org/blog/2025/10/26/scala-3-no-indent/

gedy a day ago | parent [-]

My personal take is this would be like JavaScript adopting an optional Coffeescript[1] syntax. It's so different that it seems odd to make it an option vs a new language, etc.

[1] https://coffeescript.org/#introduction

bdangubic a day ago | parent | prev [-]

madness :)

a24j a day ago | parent [-]

Can you eli5 the madness? And how that relates to python/java?

a day ago | parent [-]
[deleted]