Evolving Scala

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. scala-wasm

    Friendly fork of Scala.js, target stand-alone Wasm leveraging WASI and Component Model

    > Clojurescript for frontend, Rust for portability

    If Clojure and Rust work well for you, more power to you. But at least in theory, you could very well use just Scala for these purposes

    Scala can compile to JS https://www.scala-js.org/ if you target frontend.

    And if you want portability, you can compile a Scala program with GraalVM's native-image and statically link everything with musl libc https://www.graalvm.org/latest/reference-manual/native-image...

    And if you want both frontend and portability everywhere, Scala will soon have a support for compiling to WASM (with WASI, etc) https://github.com/scala-wasm/scala-wasm/ (to be integrated into Scala.js after developed)

  2. Sevalla

    Deploy and host your apps and databases, now with $50 credit! Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!

    Sevalla logo
  3. Scala.js

    Scala.js, the Scala to JavaScript compiler

    > Clojurescript for frontend, Rust for portability

    If Clojure and Rust work well for you, more power to you. But at least in theory, you could very well use just Scala for these purposes

    Scala can compile to JS https://www.scala-js.org/ if you target frontend.

    And if you want portability, you can compile a Scala program with GraalVM's native-image and statically link everything with musl libc https://www.graalvm.org/latest/reference-manual/native-image...

    And if you want both frontend and portability everywhere, Scala will soon have a support for compiling to WASM (with WASI, etc) https://github.com/scala-wasm/scala-wasm/ (to be integrated into Scala.js after developed)

  4. slinky

    Write Scala.js React apps just like you would in ES6

  5. ox

    Safe direct-style streaming, concurrency and resiliency for Scala on the JVM (by softwaremill)

    - Highly concurrent, fiber-based apps using Scala and Ox (http://ox.softwaremill.com)

  6. iron

    Strong type constraints for Scala (by Iltotore)

    Type system makes a huge difference especially things like refined types:

    https://github.com/Iltotore/iron

    Shifts entire classes of errors to compile time.

  7. Graal

    GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀

    Plenty,

    Up to Java 21,

    https://advancedweb.hu/a-categorized-list-of-all-java-and-jv...

    Remaining ones until Java 24, released last week,

    https://www.infoworld.com/article/2335077/jdk-22-the-new-fea...

    https://www.infoworld.com/article/2336682/jdk-23-the-new-fea...

    https://www.infoworld.com/article/3491404/jdk-24-the-new-fea...

    Additionally, commercial AOT compilers have taken a big hit, as two great options are now freely available,

    https://www.graalvm.org (Basically LLVM, but in Java)

    https://eclipse.dev/openj9/docs/aot

    With them there is also the rise of AOT friendly frameworks like Quarkus and Micronaut.

  8. dotty

    The Scala 3 compiler, also known as Dotty.

    > 1) The language is too unstable

    Thankfully not anymore. They got their act together and have been maintaining compatibility since Scala 3.0.0 has been released in May 2021, which is almost 4 years and counting.

    https://github.com/scala/scala3/releases/tag/3.0.0

    Scala 3.x is to remain compatible for the whole 3.x series (think of semantic versioning). There's no Scala 4 (breaking with Scala 3) in sight.

    Also, Scala 3 and Scala 2.13 JARs are also compatible with each other, which helped with the transition.

    > 2) The tooling around it is not the best

    sbt may not be good. But Mill is much better than either Maven or Gradle. Especially Gradle. Bleep is also promising.

    Scalafmt is widely used and liked. Scalafix -- the linter/fixer -- is used a bit less, but still of a good quality.

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  10. sbt-assembly

    Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt)

    > If anyone care to share their experience with GraalVM's native-image, I'd be interested in hearing that.

    The main issue is if you are using reflection, which needs metadata adding to describe it so the necessary metadata is included in the image. Some libraries already have it built in, and there are tools to help.

    For building, https://github.com/sbt/sbt-assembly supports native Image.

  11. effect

    Build production-ready applications in TypeScript

    Just as context for anyone curious:

    Scala is even more "powerful" than TS or Rust as it has real HKT (higher-kinded types), and for example Effect.TS needs to emulate/simulate it.

    https://github.com/Effect-TS/effect/blob/main/packages/effec...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • The dangers of single line regular expressions

    1 project | news.ycombinator.com | 22 Apr 2024
  • Typescript FP Job?

    2 projects | /r/typescript | 1 Jul 2023
  • Reconnecting with Scala. What's new?

    7 projects | /r/scala | 24 May 2023
  • Switch JS job for Scala internship?

    1 project | /r/scala | 15 Dec 2022
  • Windows decide whether your computer has limited or full Internet access

    1 project | news.ycombinator.com | 19 Nov 2022