#guile (#scheme really) complaining: why would you think that (srfi srfi-9) is a good name for records. How about using 'records' as a name - much more easier to remember: (srfi records) .

- yelling at the universe

@ieugen

The whole SRFI thing is filled with randomness. It's delightful if you are casually strolling by but maddening if you want to get things done.

Big reason to drop significant time on Scheme: continuations.

I find Scheme records wanting after using Clojure maps...

@monkey1 yeah, I found out about #guile and got curios about #scheme when I researched #guix .
I appreciate #clojure more after the small amount of time I spent on scheme. Especially tooling. #Calva is awesome for Clojure! So far I failed to replicate even a small part with #Emacs (which I am also learning as I go)

Doing #AdventOfCode2023 in scheme and learning as I go. Did not reach continuations yet. Heard a lot about them.

@ieugen @monkey1 calva is based on emacs CIDER, but if vs code works for you that’s ok. Learning both clojure and emacs at the same time is not for the weak :)
@mykhaylo @monkey1 the user experience in Calva is much better IMO. I started a discussion about this https://github.com/clojure-emacs/cider/discussions/3761#discussion-7606266 . I believe #casual package from #emacs has the right attitude: use transit text menus to discover options, like magit .
Calva like Jack-in options - improve UX especially for new users · clojure-emacs cider · Discussion #3761

Hello, I started with Clojure using VSCode and Calva and I was spoiled. Now I am looking at emacs (mostly for org-mode), but tried it for clojure dev as well. I opened an existing project and tried...

GitHub
@ieugen @mykhaylo @monkey1 The UX is always a very subjective topic. As a long-time Emacs user I’ve always struggled with the UX of VS Code, so I think at the end of the day people often confuse things that they are familiar with, with things that are objectively “better”. But I agree that always there’s room for improvement for pretty much everything.
@bbatsov @mykhaylo @monkey1 true it is user dependent. I think the options are quite well explained in this emacs talk: https://emacsconf.org/2024/talks/casual/ . I resonate with the author. For things I use less often, I believe casual menus make a lot of sense.
EmacsConf - 2024 - talks - Re-imagining the Emacs User Experience with Casual Suite

@ieugen @mykhaylo @monkey1 I’ll take a closer look at this after the holidays. I’m always open to making some improvements, but I’m also always wary of external dependencies. (Often dependencies become liabilities at some point, so I’m quite careful with those)
@bbatsov @ieugen @monkey1 I have been looking at a very efficient workflow of a colleague in Cursive, and there are a couple of things that I’m struggling to implement using CIDER. I’ll record a loom to demonstrate, your help would be amazing.
@bbatsov @ieugen @monkey1 actually there’s an even better way. We both we’ll be making demos of our workflows in early January, and I’ll send a link to his. He has some mad skills with cursive.

@bbatsov @ieugen @mykhaylo

Strong +1 for the Cider experience in Emacs!

@ieugen @monkey1 for me the casual stuff is too slow in usage. It makes sense in magit and some custom workflows, but for something as dynamic as repl interaction it’s too many steps.

Plus I can make Emacs act the way I want and hence I have a bunch of custom eval commands.

@mykhaylo @monkey1 For the is about starting the repl: list discovered projects in dir, select which type of repl you want (clj, cljs, bb, lein, etc) list aliases from selected project, etc. It might be an option for other repl interactions as well. But this should be OPT IN.

@ieugen

Are you using emacs-geiser for your #Guile stuff? It is pretty nice.

On the VSCode vs Emacs: I have used Emacs for a long time and like the spartan UI. I also prefer to live with defaults and eschew the use of fancy features like debuggers.

Got started in programming with drivers and got used to thinking my way through problems. Probably not the most efficient way to code but that's how I do it.

@monkey1 I am using geiser. Eval current sexp and buffer. I miss clojure rich comments . I also like it more how clojure returns the expression values for defs instead of undefined in scheme. more repl friendly

@ieugen

Agreed.

You can get rich comments with a little macro that takes a form or forms and returns nil.

@monkey1 would be nice to have that in #guile. I don't know how to macro. or install libs (yet) .

@ieugen

It would be a really nice exercise for you to take up. Look for a tutorial and see if you can make it happen.

Ping me if you get blocked.

@monkey1 Thanks. It was quite easy to add #clojure rich comment block to #guile #scheme :

(define-syntax comment
(syntax-rules ()
((comment ...)
#nil)))

(comment
(+1 2)
)

Now do rich comment tests ! :)

@ieugen

What resources are you using for learning Scheme?

I think https://www.scheme.com/tspl4/ is excellent.

The Scheme Programming Language, 4th Edition

@monkey1 thanks. looks nice. I use guile manual, scheme r7rs spec, SICP book and another I forgot.

@ieugen

SICP is great but I think the book I linked is really good to give you a quick intro to the broader capabilities of Scheme SICP works with a minimal dialect.

All the same, you've got more than enough grist for your mill!

@ieugen

Continuations are not useful day-to-day but they are intellectually interesting and a really powerful tool for extending the language control features.

I do agree with you on Clojure ergonomics--it's a really sweet language for getting stuff done.