From ES6 to Scala: Basics

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

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • Laminar

    Simple, expressive, and safe UI library for Scala.js (by raquo)

  • scalajs-react

    Facebook's React on Scala.JS

    Japgolly has put a ton of time and care into https://github.com/japgolly/scalajs-react which is a complete React binding in scalajs. This paired with something like Diode (https://github.com/suzaku-io/diode) and you get a full frontend solution in scalajs.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • Converter

    Typescript to Scala.js converter

    ScalaJS is awesome. Really solid and mature project, can totally recommend.

    The only thing that can be annoying is when you want to have a typesafe interface and have to write a lot of adapters for javascript libraries.

    Fortunately there is even a project that can make use of typescript interfaces for those libraries, so that you can use them from ScalaJS more or less automatically: https://scalablytyped.org/

  • tyrian

    Elm-inspired Scala UI library.

  • Chimney

    Scala library for boilerplate-free, type-safe data transformations

    In my $dayjob we originally used Scala, but I pushed for a couple of new services to be written in TypeScript/Node as it was really hard to hire Scala developers. I'd say it worked well, we even took a somewhat functional approach to building things. We tried fp-ts but that was a bit hardcore (when you are trying to hire TypeScript developers who don't know functional programming), so just built Either and Option types which provided 99% of what we needed.

    There are still a few things I miss though:

    * Pattern matching and exhaustive checking. Using a switch statement it is possible to define a function that can emulate the compile-time exhaustive checking, but it's still rather weak compared to what you can do in Scala.

    * Implicits. Being able to define something that can convert say a UUID to a String or vice versa automatically just feels like magic, especially when dealing with data from third party systems.

    * Compiler macros and metaprogramming. It enables tools like Chimney (https://scalalandio.github.io/chimney/) to be built, which I don't think are possible with TypeScript right now.

  • diode

    Scala library for managing immutable application model

    Japgolly has put a ton of time and care into https://github.com/japgolly/scalajs-react which is a complete React binding in scalajs. This paired with something like Diode (https://github.com/suzaku-io/diode) and you get a full frontend solution in scalajs.

  • excoptional

    A fully typed, zero-dependency implementation of the functional programming Option object for JavaScript and TypeScript

    > I mean Scala because I guess it actually has it, but worth pointing out it's like 30 LOC to define one for JS, depending on how many convenience methods you want.

    Here's one I wrote: https://github.com/sbernheim4/excoptional

    I fully believe it to be one of the best Option implementations in JS/TS

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

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