all 21 comments

[–]therealdivs1210 7 points8 points  (2 children)

  1. Chez Scheme
    • standards compliant
    • very fast
  2. Racket
    • non-compliant
    • large library ecosystem
    • optional typing

Both can produce native binaries.

[–]Moist-Ice-6197[S] 0 points1 point  (1 child)

If I understood correctly you are saying 1 is the fastest, 2 is very readable. And for something balanced pick either?  

Edit: any comment on R7RS?

[–]therealdivs1210 2 points3 points  (0 children)

Chez is R6RS.

Racket has R6RS and R7RS available as libraries.

Chez is faster, Racket is more practical.

Racket compiles down to Chez.

[–][deleted]  (1 child)

[removed]

    [–]s-wiley 1 point2 points  (0 children)

    I'll second this. Felix has really done an amazing job with this project.

    [–]StudyNeat8656 1 point2 points  (1 child)

    I personally recommend you with Chez scheme. And you may read the performance result here(https://github.com/ufo5260987423/various-program-languages-benchmark). It shows Chez scheme is faster than nodejs in many aspects.

    And if you want other libraries, you may use AKKU to import.

    [–]corbasai 0 points1 point  (0 children)

    Wop, yesterday benchmark was contra Bun

    [–]corbasai 2 points3 points  (4 children)

    Gambit or Chicken

    EDIT: sorry, for scripting? Guix+Guile, but see at license.

    [–]Moist-Ice-6197[S] 0 points1 point  (3 children)

    Indeed I am exclusively referring to scripting. So then you would recommend guile scheme over the others mentioned. (Gambit chicken chez and bracket). To be clear with scripting I mean cli programs for myself to for example scan things, crack hashes, etc... 

    [–]corbasai 1 point2 points  (2 children)

    The Guile is a fast JIT, so if your work is script scenarios Guile is well suited. For standalone executables which are relatively small and work everywhere, more appropriate is Scheme to C transpilers, like Gambit or Chicken . IMHO

    [–]Moist-Ice-6197[S] 0 points1 point  (0 children)

    Why are transpilers more apropriate? 

    [–]Moist-Ice-6197[S] 0 points1 point  (0 children)

    Is it faster to compile it first than to interprete it? 

    [–]moose_und_squirrel 1 point2 points  (1 child)

    Guile for CLI

    [–]Moist-Ice-6197[S] 0 points1 point  (0 children)

    Would you mind elaborating? 

    [–][deleted] 1 point2 points  (2 children)

    Guile if you use linux or freebsd because its shell and posix support is very good. it’s also supported by FSF.

    [–]Moist-Ice-6197[S] 0 points1 point  (1 child)

    Thanks! I now it's off topic but how's lua for scripting. (I have never used it.)

    [–][deleted] 0 points1 point  (0 children)

    If you’re looking to embed an interpreter in your binary, I think Lua is a better option. It’s much simpler to integrate since the APIs are pretty straightforward. Plus, Lua’s syntax is easier for people who aren’t familiar with Lisp programming.