Follow

prog lang roundup for side project

Looking for a language/env with the following stuff:

- fast to invoke in CLI
- good toml, json library
- sqlite library that doesn't try to be an ORM or similar
- access to modern hash algos (currently I'm focusing on sha3-256)
- access to Ed25519

(last two I can probably get away with FFI to some good lib like libsodium)

benchmark here is Go. Doesn't have to beat it, just offer the things above and look fun to develop

racket: super fun, but slow cold start on CLI (I presume it's due to its VM)

gerbil: built on gambit scheme. Still in development, but I like its syntax and features. The build process has failed on me twice in different versions though, which speaks for the maturity of the project

CL/SBCL: no complaints here, worked well after I read some 10 articles to get things going

Rust: obvs has everything I need but I still find it too complicated

Show thread

Haskell: I like it but I really need to discipline myself to not overcomplicate my code. Also I don't like monads for type-coding side effects, sue me

Still to evaluate: chicken scheme, gambit scheme (which gerbil is built on top of), Ocaml

Still on the fence about: interpreted langs. Here the benchmark is Python, it just has to be super fast and somewhat fun to work with (I have no problem with said "outdated" langs)

Show thread

@urso Either perl or c# would satisfy all five of those requirements, though I don't think I'd start a new project in perl today myself, alas. I know most CS nerds are more into esoteric languages than I am, but I can work a list of bullet points.

@raindog469 didn't check C#, will take a look and post the results later!

I did discard JVM and its languages because the cost of bringing the whole VM up was too great for a CLI. Do you know how C# fares in this regard?

@raindog469 just did a quick test on CLI invocation. It's just a hair faster than Racket, so perhaps not too good here (and I am being kinda picky here. The tool I'm writing will already sit on IO for most invocations so I'd rather not add to that a chunk of unavoidable VM tax if I can)

@urso You're right, c# does have the vm tax on first startup. It seems better in .net core under Linux but that might just be due to not having visual studio chewing up all my resources.

Also not in love with 80MB hello world executables, but that's the tragedy of boilerplate framework code.

@urso (but TOML? People actually use that over json? It's like a Windows ini file tried to make the switch to something less flat and gave up the ghost halfway. Though... At least it's not yaml.)

@raindog469 TOML is much better than Yaml while also meant to be edited by humans (unlike JSON, afaik). Rust uses that for describing packages and dependencies, and it doesn't have the inconsistencies that INI files have across languages/implementations

@raindog469 it is also not that complex while allowing to describe somewhat complex structures without too much noise. I really like TOML for configuration :)

Sign in to participate in the conversation
Bear.community

Bear.community is a 18+ only Mastodon server for bears, chubbies and chasers.