Hacker News new | ask | show | jobs
by phtrivier 11 days ago
From my experience, to be happy I would need the perf of sbcl, the syntax, litterals and data structure of clojure, the begginer-friendlyness of drracket, the type system of ocaml, and the dev experience of rust.

Does that exist somewhere ? I hope jank gets there. Or maybe roc will.

At this point, given the progress and expectations of using LLM, writing code is going to be purely a hobby concern, like carving wood furniture became a hobby once you have Ikea.

So we might as well use fun tools :)

4 comments

So let's try: SBCL with

* [clj-coll](https://github.com/dtenny/clj-coll) - Clojure collection and sequence APIs in Common Lisp, with optional Clojure collection syntax.

  * provides immutable Cons, Queue, PersistentList, capabilities as well as Vector, Set, and Map analogues built on FSet (but accessed entirely via Clojure APIs).

  * optional read syntax so you can type `{:a 1 :b 2}`, `#{1 2 3}`, and `[1 2 3]`.

* [clj-con](https://github.com/dtenny/clj-con) - Clojure-style concurrency operations in Common Lisp.

* [clj-re](https://github.com/dtenny/clj-re/) - Clojure-style regular expression functions.

* [clj-arrows](https://github.com/dtenny/clj-arrows) - Clojure-compatible threading/transformation/arrow macros for Common Lisp.

editor: https://coalton-lang.github.io/20260424-mine/

type system: Coalton

Please say more about the "dev experience of rust." As a long time Lisper and not much of a Ruster, I found the dev experience very painful. Granted, I expect had I continued using Rust that would have abated in tjme. I also disliked Clojure at first until I became comfortable with it and productive, before coming to like and appreciate it.
- a single, canonical, sanctified toolchain for "all the things that are require but don't matter"

What's the "cargo xxx" of lisp ? It depends. Maybe it's "quicklisp something". Maybe it's "ASDF something". Maybe it's a mixture of three different things and you ask a dumb question on SO that should be in the first page of the manual, and you get 10k views : https://emacs.stackexchange.com/questions/83200/given-a-bran...

I know, you enjoy the power of having options, configuring everything, and shaving your yaks to the bone with macros over macros.

But I suspect you never hear of so many questions about "retro antagonist polymorphic macros over monadic functional arrowd", because people give up at "how do I import a lib to make an http call" ?

- a single, standard and opinionated way to lay your frigging files on your effing disk. "cargo new". And, no, it should NOT require people to create a top level "common-lisp" folder to store all their projects.

- adding and loading deps. Sorry, typing quicklisp:xxxx in every repl session you open is not "cargo add".

- a baked in way to run some sort of unit test suite. Have dozens of options if you want, but what is the "cargo test" ?

Of course all those problems have been solved by various tools somewhere in 1997, so it will sound like an "entitled millennial" comment.

But, soon, the tagline to aim for will be "a lisp for the 100 years of lisp". What's that ?

> because people give up at "how do I import a lib to make an http call" ?

Ironically, this is where I gave up on trying to learn Rust. I just wanted to make a HTTP request and the simplest solution was to… download a library with hundreds of dependencies taking up half a gigabyte?

I think OCICL will meet your expectations more readily than Quicklisp. QL does things more the CPAN way (think Gems if you're more into Ruby than Perl).

> a baked in way to run some sort of unit test suite. Have dozens of options if you want, but what is the "cargo test"?

That actually is ASDF, to be more specific:

  (asdf:test-system system &rest keys &key force force-not verbose version &allow-other-keys)
Although if we're honest, the real way to run a test suite in CL is to open the REPL, load your system, and just type something like (run-test-suite).
That actually seems great ! My understanding is that it has to wrap ASDF package, so is there a risk of trying to find a well known lib, but not finding it because the authors refuse to create a ocicl package for some complex political reason (or sheer lazyness ?)
That doesn't seem likely, the packages are part of OCICL, so it's more likely to have the opposite problem: finding some obscure package you want to try out but which isn't in OCICL.
Is cargo really a reason to love rust? I'm not a full-on rustacean but in my limited experience cargo certainly had its flaws and warts like any other build system.

I find it a little puzzling when a language ships the one build system to rule them all. I get that it saves some decision stress but it also is a monoculture. Gradle vs Maven in Java at least puts competitive pressure on each; c/c++ obviously have many options; even Haskell had/has stack vs cabal.

You might like Rhombus. Nice compiler. Uniquely extensible and easy to learn syntax. https://rhombus-lang.org/
Carp has been slowly inching forward and ticking those boxes