guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A Forum for Guix Users


From: Attila Lendvai
Subject: Re: A Forum for Guix Users
Date: Mon, 17 Jul 2023 17:41:33 +0000

> Like I've mentioned on fedi before, advocates of Lispy languages tend to
> talk a lot about what's possible with the language, but the truth is
> that the actual tooling that matters simply isn't very good, and having
> an S-expression based syntax doesn't magically make writing the kinds of
> refactoring tools that Java developers have been enjoying for 10+ years
> significantly easier.
> For that we need good static analysis, and unbounded dynamism and too
> much syntax magic makes that more difficult.
> At the very least I want to be able to rename variables across the whole
> project and jump to definitions reliably.


i came to Common Lisp from that world, and i don't miss those tools one bit.

those refactoring tools in the java world feel so useful exactly because of the 
linguistic inability to formally express abstractions in the language. when 
lisp is used properly (which includes discipline while naming abstractions!) 
then one doesn't miss those tools.

a related quote that captures this sentiment:

“[Design] Patterns mean "I have run out of language."”
        — Rich Hickey

but i agree that there's plenty of room for improvement in the lisp tooling, 
even for just Guile + Geiser to catch up with CL + Slime.

and i also agree that the learning curve is way too steep with Emacs + lisp 
tools. ultiamtely, i think it's worth it, but it does require quite some 
determination and frustration tolerance.


> ps.: As far as I can tell, the Lisps with good IDEs are image based, not
> source based, that's why they have an easier time doing metaprogramming,
> because the runtime helps a lot. But an image based system is not
> exactly in line with Guix's goal of reproducibility.


all lisps are image based in the sense that they are a VM once the source has 
been loaded... no? but, unfortunately, all (non-obsolete) lisps use flat text 
files to represent the source code. java tools turn that flat text source code 
into a graph and work on the graph, and does this text-graph-text conversion 
transparently for the user.

but it's only possible to do this conversion in languages that have a 
relatively little degree of freedom... which translates to less freedom to 
express abstractions... which in turn translates to a greater need for 
refactoring tools.

again, i most agree with you. what i wanted to express is that there's much 
more to this topic.

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“It's surprising how many persons go through life without ever recognizing that 
their feelings toward other people are largely determined by their feelings 
toward themselves, and if you're not comfortable within yourself, you can't be 
comfortable with others.”
        — Sydney J. Harris




reply via email to

[Prev in Thread] Current Thread [Next in Thread]