Strong typing, a hill I'm willing to die on

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

    Gerbil Scheme

  • I'm more into Scheme than CL, but am aware of Coalton. My current lisp is Gerbil: https://cons.io which already has a type annotation system and will be enhancing it for the next major release (v19).

  • rescript-compiler

    The compiler for ReScript.

  • You might want to look into ReScript (https://rescript-lang.org/). It has strong static typing with type inference, and it is very fast.

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

    WorkOS logo
  • talk-transcripts

    Transcripts of Clojure-related talks

  • >So this is 10x, a full order of magnitude reduction in (?) severity before we get to the set of problems I think are more in the domain of what programming languages can help with, right? And because you can read these they'll all going to come up in a second as I go through each one on some slide so I'm not going to read them all out right now. But importantly there's another break where we get to trivialisms of problems in programming. Like typos and just being inconsistent, like, you thought you're going to have a list of strings and you put a number in there. That happens, you know, people make those kinds of mistakes, they're pretty inexpensive.

    [0] Video: https://www.youtube.com/watch?v=2V1FtfBDsLU

    [1] Slides and transcript: https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

    [2] Video https://www.youtube.com/watch?v=YR5WdGrpoug

    [3] Slides and transcript https://github.com/matthiasn/talk-transcripts/blob/master/Hi...

  • FrameworkBenchmarks

    Source for the TechEmpower Framework Benchmarks project

  • JustJS would like a word https://www.techempower.com/benchmarks/#section=data-r20&tes...

  • clj-kondo

    Static analyzer and linter for Clojure code that sparks joy

  • eastwood

    Clojure lint tool

  • Django

    The Web framework for perfectionists with deadlines.

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

    InfluxDB logo
  • SICL

    A fresh implementation of Common Lisp

  • Gladly!

    https://github.com/robert-strandh/SICL (which I wrote a decent chunk of the compiler backend of.)

  • fur

  • One might say that the embracing of reflection in Java and C# pretty much solidifies the case against static typing for complicated projects.

    I'd tend to think the important feature here is strong typing, not static typing, and indeed TypeScript, which is hampered by the anemic type system of its parent JavaScript, it not the best example of strong typing.

    Ultimately, strong typing is a hill I'm willing to die on, too. But a lot of people making arguments on this topic are conflating it with static typing, which just isn't the same thing. In general, that gives me the impression you haven't done enough work in enough different languages to really have an informed opinion.

    Though uncommon, strong dynamic type systems do exist. This is the approach I'm taking with Fur[1]. Python is... stronger than many other popular languages (i.e. JavaScript), but still does a lot of coercion (particularly around truth-y/false-y values).

    But perhaps more critically, weak static type systems also exist, such as C, which is the source of many of the world's most serious bugs. It's highly unwise to assume that static typing is strong typing.

    [1] https://github.com/kerkeslager/fur

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