Source code for the Charm programming language (by tim-hardcastle)

Charm Alternatives

Similar projects and alternatives to Charm

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better Charm alternative or higher similarity.

Charm reviews and mentions

Posts with mentions or reviews of Charm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-25.
  • Lazy Let: A Cheap Way and Easy Way to Add Lazyness
    2 projects | /r/ProgrammingLanguages | 25 May 2023
    Charm does this for declaration of local constants in functions (there are no local variables in functions). So for example if you wanted to write the Collatz function this way (which you wouldn't, it's just a minimal example) then you could do so without worrying about a computational explosion:
  • Global and local variables, a choice of evils
    2 projects | /r/ProgrammingLanguages | 15 May 2023
    In fact that's how a lot of Charm programs end up getting written, because you want to pass a whole bundle of stuff to the functions. For example.
    2 projects | /r/ProgrammingLanguages | 15 May 2023
    To recap, for anyone who's so far managed to avoid learning how Charm works --- it embodies the Functional Core/Imperative Shell pattern, in that the language is divided into commands (which have effects but don't return values) and functions (which return values but don't have effects). Commands can call commands and functions, but functions can only call other functions, and so the effectful part of one's code ends up being a very thin layer at the top of the call stack. The commands themselves consist of imperative state-affecting instructions, e.g. x = 42, get name from Input("What's your name? "), post "Hello world" to Output(), etc.
  • What the imperative shell of an Functional Core/Imperative Shell language looks like
    5 projects | /r/ProgrammingLanguages | 7 May 2023
    No, it's "shell" as in "shell of the code". The idea is that the imperative bits of the language, the bits that do the mutation of state and the IO, can can call lovely pure referentially transparent functions. But functions can't call commands (otherwise by definition they wouldn't be pure). So all your imperative-ness is reduced to about 1% of your code which lives right at the top of your call stack --- the "imperative shell" of your code. See [here]( for an example. The "imperative shell" is the main function --- all 13 lines of it --- and everything everywhere else is pure and immutable.
    5 projects | /r/ProgrammingLanguages | 7 May 2023
    ''Suitable for the language''. Charm is a Functional Core/Imperative Shell language. What does IO look like in such a language?
  • What are some cool things you've built using your own language?
    6 projects | /r/ProgrammingLanguages | 1 May 2023
    I'm not sure what counts as cool. It's just dogfooding at the moment. I did a bunch of other languages (only the BASIC and the Forth are up to date with the current version of the language I think), and I did a tiny adventure game (and used it as the basis for a tutorial).
  • Is your language solving a real world problem?
    3 projects | /r/ProgrammingLanguages | 7 Apr 2023
    It's hard to explain in one go, but imagine the sort of small business/charity/school/department of a large business/etc that runs off a mess of Excel and Python and SQL and PHP, where someone needs to produce an app for the use of Jared and Samantha from Accounting ... this would all work much better if they had a bunch of Charm services running off a Charm hub wrapped around their database. It's a GPL, it's nice to use for other things, but that's the sort of thing I have in mind.
  • TeaScript 0.10.0 Release - NEW: Tuple/Named Tuple, Passthrough type, CoreLibrary config, ext. file/directory functions, changed license.
    6 projects | /r/ProgrammingLanguages | 11 Mar 2023
  • "Writing an adventure game in Charm"
    2 projects | /r/ProgrammingLanguages | 6 Mar 2023
    I made this tutorial document. Is it comprehensible?
    2 projects | /r/ProgrammingLanguages | 6 Mar 2023
    Just today I was writing a document in which I quoted "Discipline doesn't scale".
  • A note from our sponsor - InfluxDB | 22 Feb 2024
    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. Learn more →


Basic Charm repo stats
7 days ago

tim-hardcastle/Charm is an open source project licensed under MIT License which is an OSI approved license.

The primary programming language of Charm is Go.

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.