summaryrefslogtreecommitdiffstats
path: root/2023/talks/scheme.md
blob: 011d52b19c7d646b693ed1e5c084ea4c884b362f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[[!meta title="Bringing joy to Scheme programming"]]
[[!meta copyright="Copyright © 2023 Andrew Tropin"]]
[[!inline pages="internal(2023/info/scheme-nav)" raw="yes"]]

<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->


# Bringing joy to Scheme programming
Andrew Tropin - Nick: [abcdw](https://trop.in/contact), Site: <https://trop.in/>, Fediverse: <https://fosstodon.org/@abcdw>

[[!inline pages="internal(2023/info/scheme-before)" raw="yes"]]

Emacs is usually a primary tool people remember, when talk about
development environment for lisp languages.  It serves the purpose
great for Common Lisp, Clojure and of course Emacs Lisp, but what
about Scheme?  Let's talk about current state of the things, recent
improvements, and emerging tools in this field.

My talk covers the following:

-   What does a usual Scheme developer day look like? And how it can be
    made more enjoyable?
-   Important developer duties, their automation and acceleration.
-   Interactive development and its benefits.
-   Emacs setup for Scheme development.

Links:

- <https://git.sr.ht/~abcdw/emacs-arei>
- <https://git.sr.ht/~abcdw/guile-ares-rs>

About the speaker:

Talk about Lisp development workflows, REPLs, and modern Scheme tooling for Emacs.
Author of Guix Home, maintainer of [rde](https://git.sr.ht/~abcdw/rde), FOSS developer.

# Discussion

## Questions and answers

-   Q: How much do you use these repels remotely ex using a server or
    desktop from your laptop?
    -   A: I don't use it remotely at the moment, but it should work
        perfectly fine (except maybe lookup and other similiar
        functions). I also want to add a shepherd service for ares-rs,
        so you can connect to GNU Shepherd and systems based on it (like
        GNU Guix) from you emacs process and interact fluently with
        guile code.
-   Q: Can this be integrated with eglot?
    -   A: I'm not sure how this integration could look like.
        Theoretically, it's possible to expose many of ares-rs
        functions via LSP custom actions (or whatever it called).
        Anyway, contact me on IRC or <https://trop.in/contact> to
        discuss it in more details if you have something in mind.
-   Q: How hard is it to add support for something else than Guile? Does
    it make sense to contribute at this early stage of development?
    I've written several packages for CHICKEN Scheme before and would
    like to try this one.
    -   A: It's a matter of implementing the whole chicken-ares-rs :)
        Many of the code can be reused, but not all, unfortunately.
        emacs-arei doesn't need any (or almost any) changes.
-   Q: (One day late sorry) Is nREPL more extensible than what SLIME/SLY
    use in Common Lisp world (I think it's comint.el) ?
    -   A: Yes, it's. I was evaluating and considering SWANK protocol,
        but found nREPL to be more suitable and future proof.
        <https://github.com/astine/swank-client/blob/master/swank-description.markdown>

### Notes and discussion

- brilliant work for scheme
- yeah, this is overdue. the only real alternative is slime-r7rs

[[!inline pages="internal(2023/info/scheme-after)" raw="yes"]]

[[!inline pages="internal(2023/info/scheme-nav)" raw="yes"]]