Email or username:

Password:

Forgot your password?
Andrew Tropin

I guess during last a few weeks my Lisp preference list changed from:

Clojure, Scheme, Common Lisp, Emacs Lisp.

to

Scheme, Clojure, Common Lisp, Emacs Lisp.

I still find Clojure much more pleasant and elegant out of the box, but Scheme seems more and more future-proof to me.

#clojure #guile #scheme #lisp #emacs #commonlisp

20 comments
Andrew Tropin

@aramya Don't have much experience with Racket (almost 0 I would say). The Scheme in the subject is ~= Guile, but I heard a lot of positive things about Racket, it's ecosystem and community.

Dekkzz

@abcdw

if #guile pans out with wasm that's potentially a game changer

[DATA EXPUNGED]
Andrew Tropin

@andros In short: fosstodon.org/@abcdw/109880051

In long: I'll write a blog post one day.

For now it's more a subjective feeling and some pieces of puzzle, which are getting together from various places.

For the record I've been working professionally with Clojure for 5 years before I started to use Guile Scheme full-time and I still find Clojure to be quite impressive piece of technology with great ideas inside.

Ramin Honary

@abcdw Yeah, I am a huge fan of #Scheme and #Guile, but I unfortunately have almost no opportunity to use it. I use #Haskell for most everything. If Scheme had a Haskell-like (System-F) type system, I could probably convert most of my Haskell code over to Scheme and use Guile exclusively.

What I love about Scheme is that it is so minimal. It seems to has found that sweet-spot between the very mathematical and abstract Untyped Lambda Calculus and an actual practical programming language that you can use to do real #software #engineering.

One thing it lacks is a consistent implementation, and this is where #CommonLisp tends to win out. But Guile actually implements most all of the features specified in the Common Lisp standard, and so do a few other mainstream schemes like Chez. So nowadays, I personally believe there is more reason to use Scheme than Common Lisp if you are starting a new project from scratch.

The features of System-F do exist for Scheme here in there in various forms, in particular a Hindley-Milner type checker with Algebraic Data Types like Haskell or #Ocaml. Alexis King has developed "Hackett" which is a Haskell-like Lisp implemented as a #Racket EDSL. Common Lisp has Coalton, which is very a recent development and very Haskell-like. There is also PreScheme, but it is somewhat restrictive (e.g. no clojures).

Scheme has #Prolog-like system you can import called "MiniKanren", which is nearly identical to the clojure/core.logic module, but this is fully-dependently typed Calculus of Constructs, not System-F, so much harder to use in practice (in my experience). I hope Alexis King ports her Hackett to Scheme. I would do it on my own even, if I had more free time.

- coalton-lang.github.io/2021101
- lexi-lambda.github.io/hackett/
- minikanren.org/
- clojure.github.io/core.logic/
- groups.scheme.org/prescheme/1.

@abcdw Yeah, I am a huge fan of #Scheme and #Guile, but I unfortunately have almost no opportunity to use it. I use #Haskell for most everything. If Scheme had a Haskell-like (System-F) type system, I could probably convert most of my Haskell code over to Scheme and use Guile exclusively.

What I love about Scheme is that it is so minimal. It seems to has found that sweet-spot between the very mathematical and abstract Untyped Lambda Calculus and an actual practical programming language that you can use to do real

Andrew Tropin

@ramin_hal9001 I saw a few attempts of typetizing lisps: Typed Racket, Typed Clojure, clojure.spec/malli, Carp and probably much more, but still not faced something that really shines. I learn haskell and related literature right now, so I hope to get a better feeling of good type system to be able to assess such tool or maybe even implement my own.

Panicz Maciej Godek

@abcdw @ramin_hal9001
It's a bit surprising, but as I started using Kawa - which has a Java-like type system - it turned out extremely pleasant experience.

I wrote about it a bit more here:

functional.cafe/@PaniczGodek/1

Andres Moreno

@abcdw

I really like Clojure's data structure literals and some of the nice thoughts behind them, e.g., using map keywords as functions. Or relational algebra in sets. These little things make Clojure programming really nice.

OTOH, I find the hosted language baggage a bit off-putting: every now and then I have to think about the JVM (e.g., heap size) and there is a bid of impedance mismatch when using OO Java libraries.

Scheme--just beautiful but maybe not as productive?

Andrew Tropin

@monkey1 Not as productive yet, but I suspect it will become.

We can build a better ecosystem without heavy baggage of legacy and quirks from JVM.

Maybe someday even Clojure-flavored dialect of Scheme will become more battle tested and many people will switch from Clojure to it. (github.com/lokke-org/lokke)

Dionysius

@abcdw Do you write some another software in Guile, except Guix scenarios?

Andrew Tropin

@Dionysius Not yet, but I develop tooling for Guile right now and probably most of my future software projects will be in Guile as well.

blake shaw 🇵🇸

@abcdw when you look at projects like Chez, Guix, Racket and plenty of others where a comparatively small group of people have continuously improved and innovated a codebase/ecosystem for several decades, the future proof nature of scheme becomes clear.

GHC contributor Alexis King's talk at SIGPLAN shows all the tooling that practically falls out of the bottom of Racket which Haskell is lacking, but she attributes this to Racket, as if it weren't officially a scheme just a decade ago

youtu.be/H0ATppFmt2o

@abcdw when you look at projects like Chez, Guix, Racket and plenty of others where a comparatively small group of people have continuously improved and innovated a codebase/ecosystem for several decades, the future proof nature of scheme becomes clear.

GHC contributor Alexis King's talk at SIGPLAN shows all the tooling that practically falls out of the bottom of Racket which Haskell is lacking, but she attributes this to Racket, as if it weren't officially a scheme just a decade ago

Go Up