candy VS sail

Compare candy vs sail and see what are their differences.

candy

🍭 A sweet, functional programming language that is robust, minimalistic, and expressive. (by candy-lang)

sail

Sail architecture definition language (by rems-project)
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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
candy sail
3 2
312 518
15.7% 3.1%
9.9 9.4
2 days ago 4 days ago
Rust Isabelle
MIT License GNU General Public License v3.0 or later
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.

candy

Posts with mentions or reviews of candy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-24.
  • Candy – a minimalistic functional programming language
    5 projects | news.ycombinator.com | 24 Feb 2024
    We're using some unstable features (hence nightly), and I just updated our Rust version on Thursday (https://github.com/candy-lang/candy/pull/948) because the previous one (nightly-2023-07-21) was too old for a dependency. So we're not usually using this recent Rust versions.

    Thanks for letting us know about the binary size! We previously enabled debug info in release builds to use flamegraphs, but actually don't need it for most builds. I just disabled it (https://github.com/candy-lang/candy/pull/950), and the binary size went down from 177.4 MB to 14.2 MB for me!

    The CLI should work, or at least we're using it regularly when working on Candy. Can you please share your OS and the command and output, maybe in a GitHub issue? We definitely need to improve our documentation and the CLI's error handling. Does running `cargo run --release -- run ./packages/Examples/helloWorld.candy` from the repository root work for you?

    The VS Code extension also uses the CLI internally since that exposes a language server, so it basically runs `cargo run --release -- lsp`. But we also have to improve the stability here.

  • October 2022 monthly "What are you working on?" thread
    16 projects | /r/ProgrammingLanguages | 2 Oct 2022
    Continued working on Candy (https://github.com/candy-lang/Candy).

sail

Posts with mentions or reviews of sail. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-28.
  • How to improve the RISC-V specification
    9 projects | news.ycombinator.com | 28 Apr 2024
    Sail is pretty similar to ASL (both current ASL and ASL 1.0) except that (1) it has a more expressive type system, so that bitvector lengths can all be statically checked, (2) it has proper tagged unions and pattern matching, and (3) there's a wide range of open-source tooling available, for execution, specification coverage, generating emulators, integrating with relaxed concurrency models, generating theorem-prover definitions, etc. We've recently updated the Sail README, which spells some of this out: https://github.com/rems-project/sail .

    As Alastair Reid says, one of the main things missing in the current RISC-V specification documents is simply that the associated Sail definitions are not yet interspersed with the prose instruction descriptions. The infrastructure to do that has been available for some time, in the Sail AsciiDoc support by Alasdair Armstrong (https://github.com/Alasdair/asciidoctor-sail/blob/master/doc...) and older LaTeX versions by Prashanth Mundkur and Alasdair (https://github.com/rems-project/riscv-isa-manual/blob/sail/r...).

  • Candy – a minimalistic functional programming language
    5 projects | news.ycombinator.com | 24 Feb 2024
    That's completely feasible and there are languages that do this. It doesn't really eliminate the need to run your program unless the inputs to your program are also completely restricted types like One, Two, Three. In which case yeah, you don't need to run it and the type system can just tell you the answer.

    I believe you can do that sort of thing in loads of type systems, e.g. Typescript, but there are languages that intentionally support it. I use a niche DSL that has fancy types like this called Sail. https://github.com/rems-project/sail

    In my experience the downsides of these fancy "first class type systems" are

    1. More incomprehensible error messages.

    2. The type checker moves from a deterministic process that either succeeds or fails in an understandable way, to SMT solvers which can just say "yep it's ok" or "nope, couldn't prove it", semi-randomly, and there's little you can do about it.

    Still my experience of Sail is that it's very comfortable to go a little bit further into SMT land, and my experience of Dafny is that it's very unpleasant to go full formal-verification at the moment.

    I've done a fair bit of hardware formal verification too and that's a different story - very easy and very powerful. I'm hoping one day that software formal verification is like that.

What are some alternatives?

When comparing candy and sail you can also consider the following projects:

hindley-milner - simply typed lambda calculus with hindley-milner type inference

SynthML - A programming language for type-directed program synthesis

kcl - KCL Programming Language (CNCF Sandbox Project). https://kcl-lang.io

langs

TablaM - The practical relational programing language for data-oriented applications

mighty - The last validation library you will ever need!

astatine - Astatine is a is a mid-level, statically typed, procedural programming language with some functional components.

sirius - The Sirius programming langauge

boba-core - Core Boba definitions necessary for all Boba pearls and programs to compile

caesura - an array programming language

CSpydr - A static typed low-level compiled programming language inspired by Rust and C

Cwerg - The best C-like language that can be implemented in 10kLOC.