openflow VS Charm

Compare openflow vs Charm and see what are their differences.

openflow

A ventilation system built around Itho Daalderop's DemandFlow system, written in Inko (by yorickpeterse)

Charm

Source code for the Charm programming language (by tim-hardcastle)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
openflow Charm
1 36
7 126
- -
8.1 9.4
19 days ago 6 days ago
Dockerfile Go
Mozilla Public License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

openflow

Posts with mentions or reviews of openflow. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-01.

Charm

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](https://github.com/tim-hardcastle/Charm/blob/main/examples/adv.ch) 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".

What are some alternatives?

When comparing openflow and Charm you can also consider the following projects:

utop - Universal toplevel for OCaml

sprig - Useful template functions for Go templates.

wyvern - The Wyvern programming language.

boba - A general purpose statically-typed concatenative programming language.

butter - A tasty language for building efficient software. WIP

Skript - Skript is a Bukkit plugin which allows server admins to customize their server easily, but without the hassle of programming a plugin or asking/paying someone to program a plugin for them.

Deal - 🤝 Design by contract for Python. Write bug-free code. Add a few decorators, get static analysis and tests for free.

subtex - Lightweight latex-like language for authoring books

Lisp-in-Charm

flora - A pure embeddable functional programming language with algebraic effects and direct access to evaluation environments

wyvern - Automatic conversion of call by value into call by need in the LLVM IR.

raylib - A simple and easy-to-use library to enjoy videogames programming