Readit News logoReadit News
sideeffffect commented on OCaml Programming: Correct and Efficient and Beautiful   cs3110.github.io/textbook... · Posted by u/smartmic
jganetsk · 5 months ago
The person to look to for explanations of why OCaml/SML and not Haskell is Bob Harper. For example, the module system vs ad hoc polymorphism: https://existentialtype.wordpress.com/2011/04/16/modules-mat... He also has in-depth critiques of laziness-by-default but the one link I found is a 404.
sideeffffect · 5 months ago
If you'd like to see Bob Harper's take on programming languages, have a look at the short video series Practical Foundations for Programming Languages

https://www.youtube.com/playlist?list=PL0DsGHMPLUWVy9PjI9jOS...

sideeffffect commented on The jank programming language   jank-lang.org/... · Posted by u/akkad33
sideeffffect · 6 months ago
How does programming with Clojure targeting multiple platforms (JVM, JS, CLR, LLVM, ...) work?

Are there Clojure libraries that don't use JVM(/JS/...)-specific stuff that works on any Clojure platform/dialect? Can such libraries be used on Jank out of the box? Or do library authors have to do something explicit in their libraries to enable their use in specific platforms/dialects?

sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
pkolaczk · 9 months ago
Any links to benchmarks?

Rust publishes their performance data: https://perf.rust-lang.org/dashboard.html Where do I find similar thing for scala?

sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
pas · 9 months ago
If capabilities (Capture Catching) proves to be very useful (and really solves the problems it claims to be able to solve) then it's likely that Java will also implement it, no? So... in about 8-15 years?
sideeffffect · 9 months ago
I doubt it. For Capture Catching of Capabilities to work, you need some of the unique sauce practically only Scala has. E.g. Contextual functions or path-dependent types. Java almost certainly won't adopt these.
sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
ATMLOTTOBEER · 9 months ago
- faster compile times

- faster compile times

- faster compile times

- I want sbt+scalatest (the blessed build tool/test framework) to not leak memory constantly (https://olegych.github.io/blog/sbt-fork.html this is an issue I specifically run into)

- I want useful documentation when I ctrlclick into settingKeys in build.sbt

- I want Intellij to not bug out when you pass explicitly the implicit arguments required by a function that uses both context bounds and implicits

- I want intellij to always agree with the scala compiler

sideeffffect · 9 months ago
The first five points are fixed by using Mill

https://mill-build.org/mill/comparisons/why-mill.html#_perfo...

sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
redcannon218 · 9 months ago
But Go has proven that the ecosystem is way more important than the language.

It's time to shift priorities.

sideeffffect · 9 months ago
Go has proven that people want cheap threads. If it didn't have it, it wouldn't get anywhere.

Now even Java has cheap threads (Loom).

And Go even has generics. Just 20-ish years later than Java. And it's likely that more features that now Java has will trickle into Go. If Go wants to survive.

All this to say that there is no space in the market for another language which is a stupid simple Algol. Go already occupies that space. And even Go will have to add features developers want/need, if it doesn't want to get cornered out of the market.

It's not only Scala that must evolve.

sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
leetrout · 9 months ago
There are better alternatives for almost every domain if you don’t need JVM / Java interop.

Julia for mathy stuff.

Python with pandas / polars.

Rust with polars / actor frameworks.

Go for simple systems tooling / api dev.

Zig and Rust for systems programming.

Elixir / gleam for functional webdev.

JS / TS for everything.

sideeffffect · 9 months ago
All these languages may work very well for many people for the described use cases.

But one of Scala's strength is versatility. You could use it quite well for all the listed use cases too. With just one language. (Maybe with the exception of system programming -- Scala Native still requires a tracing GC.)

Also, it's worth noting that Scala is more popular/mainstream/supported/has bigger community than Julia, Zig and Elixir / gleam. And if Red Monk is to be trusted, even more than Rust https://redmonk.com/sogrady/2024/09/12/language-rankings-6-2... That comes with many benefits.

> if you don’t need JVM / Java interop

OpenJDK is also very good, even if it's not a strict requirement to use it. Battle-tested, easily debugable, etc... AOT compilation is possible via GaalVM's native-image.

Or you can try Scala.js or Scala Native (which don't have anything to do with JVM).

sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
DeathArrow · 9 months ago
I think Scala had a big momentum 10 to 5 years ago. Many people were choosing Scala for new apps and many were rewriting existing apps in Scala. But something happened, Scala lost its momentum and nobody is interested in Scala anymore.
sideeffffect · 9 months ago
> But something happened

Oracle started heavily investing into Java. And Google picked Kotlin as the language for Android.

But Scala hasn't stagnated since. And as the blog post suggest, plans on moving further still. For example, https://docs.scala-lang.org/scala3/reference/experimental/cc... may be one of the most impactful developments in the language's history.

sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
GardenLetter27 · 9 months ago
Compile times are crazy, even worse than Rust in my experience.
sideeffffect · 9 months ago
> Compile times are crazy

This is also heavily influenced by the build too you use. Don't use sbt or Maven or Gradle. Use the good stuff. Use Mill.

https://mill-build.org/mill/comparisons/why-mill.html#_perfo...

Or Bleep, if you're feeling more experimental https://bleep.build/ .

sideeffffect commented on Evolving Scala   scala-lang.org/blog/2025/... · Posted by u/pjmlp
znpy · 9 months ago
What about GraalVM licensing?

According to https://www.graalvm.org/latest/introduction/#licensing-and-s... the community edition is free software (GPLv2 + classpath exception).

But it isn't really clear what the differences are between the free software version and the proprietary version.

There does not seem to be a page detailing the differences between the two (or at least I couldn't find it)

sideeffffect · 9 months ago
I think the proprietary variant of GraalVM comes with more optimizations in the compiler.

But the AOT compilation (native-image) is available in the GPL community variant.

u/sideeffffect

KarmaCake day303January 5, 2019View Original