Scala Isn't Fun Anymore

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

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

    ZIO — A type-safe, composable library for async and concurrent programming in Scala

    I actually think Scala is in the best position it's ever been.

    There is a commitment to making the language simpler, easier and cleaner.

    On the backend, ZIO [1] is the best concurrency library on any platform. On the frontend you have really interesting Scala.js projects like Laminar [2].

    The biggest issue really is the tooling. SBT is simply awful.

    [1] https://zio.dev

  • Laminar

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

  • 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.

  • clojure-cli-config

    User aliases and Clojure CLI configuration for deps.edn based projects

    4. You need build tooling and it seemed the choices were lein (easy user experience but not “blessed” future direction? - not sure about what i’m saying here but it’s the understanding i formed). Tools.deps is the blessed approach but designed to customise the heck out of it - problematic for a beginner like me! Thankfully you can park the customisation for later and just get started with a well laid out starter https://github.com/practicalli/clojure-deps-edn - there’s even a video walks you through its features, all the inspectors and visualisers are nice to know about but not needed yet on a beginner journey

  • Ammonite-Ops

    Scala Scripting

    That's funny, because this is what I really like about Scala; how quick and easy it is to get a project started.

    > sbt new scala/scala3.g8

    will just create an empty project. If you don't even want to bother with a project, use use scala-cli or ammonite (http://ammonite.io/) to just start banging out code.

    Even the upgrading of a project from Scala2 to Scala3 is a breeze, thanks to very good backwards compatibility of new library releases.

  • Metals

    Scala language server with rich IDE features 🚀

    It is, by quite a bit.

    While the "Scala IDE" project is dead for all practical purposes, IntelliJ IDEA's Scala plugin is actually pretty amazing. There's also a VisualStudio plugin that does pretty much the same and is advancing by leaps and bounds. There are also interconnecting projects that provide i.e. language server or build server that are reused by other projects. It's pretty modular. Metals (https://scalameta.org/metals/) is amazing.

    In general the language has become a wee bit faster to build, there was good progress with build times during the 2.12/2.13 cycles.

    With Scala3 the language got a bit simpler; concepts that were implemented explicitly using (hehe) implicits got their own keywords and a lot of the opinionated boilercode that cause a lot of debates is now generated during complication and hidden. A lot of "standardization" has occurred.

  • gleam

    ⭐️ A friendly language for building type-safe, scalable systems!

    A statically-typed language running on BEAM? Sounds like Gleam: https://gleam.run/

    (Disclaimer: I haven't used Gleam, I just know it exists.)

  • supercollaborative

    Initial repository for an intelligent book on how software is built

  • 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.

  • handy

    has two useful things in it: Ref and Approval (by wbillingsley)

    https://github.com/wbillingsley/handy

    If ZIO (or some other choice) were baked into the language, I'd be using their choice of async libnrary for everything whether I want to or not.

    And I wouldn't be able to switch to the new-shiny-thing when I want to explore it because "sorry, X was what the designers chose when the language was written, so X it must be".

  • text

    📑 Collaborative document editing using Markdown (by nextcloud)

    Yes, but some 'central' agencies push for specific Markdown formats/use. E.g. Nextcloud [1] wants to use Markdown as a format, to save the output of their wysiwyg text editor. Everytime you open a Markdown file in nextcloud-text, it is 'formatted' correctly, according to the Commonmark specs, and _written_ back, without asking the user.

    [1]: https://github.com/nextcloud/text/issues/593

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