guix-devel
[Top][All Lists]
Advanced

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

Re: developing javascript with guix


From: jgart
Subject: Re: developing javascript with guix
Date: Wed, 27 Jul 2022 17:25:17 -0500

On Wed, 27 Jul 2022 11:33:43 +0200 Maxime Devos <maximedevos@telenet.be> wrote:

Hi Maxime,

Hope all is well.

> Let's try not doing anything special:

Thanks for the repl example and for trying out a Guix developer js
workflow for me. Do you happen to know if the same approach works
for erlang?

I think we should have language developer documentation for
general orientation of new Guix users. Ryan Prior, another Guix
contributor/developer has mentioned this idea to me before.

How are users supposed to know to run node and node-mersenne?:

> $ guix shell node-mersenne node
> $ node
>  > mersenne = require('mersenne')

A new js developer Guixer will be frustrated if they have to learn this
through trial and error or by hanging out in the irc channel long enough
to find out that insight on how to do this.

Also, not every js developer will run code from a repl in their usual
workflow. So, I think we should see what the js community does as common
practices for loading js libraries and see if Guix could support that
since this will be too disruptive for a js developer to adopt Guix if
the workflow is radically different or completely undocumented. We should
document and show them what to expect when using Guix with js libraries.

> doing that is considered a good thing, it seems to me that it should 
> then also be done for Guile, Python, C/C++/etc, Minetest, Vim, ...

I completely agree that it should be done for all of our supported
language ecosystems.

To give an example from Common Lisp,

The common lisp community mostly uses quicklisp if they are not using
roswell.

Since Guix is a replacement for quicklisp, it asks users to understand
how to load libraries via asdf which is a low level detail for most common
lispers using quicklisp. I know this from my personal experiences. Phoe,
a prominent lisper in the community, for example, uses quicklisp mostly,
and does not usally load libraries from the asdf API in his workflow. The
same can be said for other prominent lispers I've conversed with.

If we are asking CL users to use asdf, which is not the most common way to
load libraries in the CL community then we should document in the CL Guix
documentation section how lispers should load CL code when using Guix.

I realize that we may not know the right approach yet because very few
common lispers use Guix.

The other thing regarding CL that should be mentioned is the fact that
you can not load lisp libraries dynamically in the repl or editor buffer
without restarting the shell environment. This is a common expectation
in the CL community and we should atleast make a note that they will
not be able to do that dynamicaly in a repl when using Guix currently.
If we do not want to support that because of our thesis or commitments
or some other reason then we should document it for CL users.

I think there are some efforts by charje to implement this but I'd have
to dig it up from the mailing list archives. I can link that if anyone
is interested.

> (*) E.g., when looking for the 'require' function, there was initially 
> some slight confusion with 'require' accepting relative and absolute 
> file names so I was fearing it might need to be passed 
> $GUIX_ENVIRONMENT/lib/node_modules, but this turned out to be unfounded.

Does this happen consistently/successfully across all languages supported by 
Guix?

Sorry for my long rant above. I just want to make sure I document my
experiences with these language ecoystems and their interaction with Guix
tooling so that we can see where we can improve regarding documentation,
user interface, as well as improving the Guixer's developer experience.

all best,

jgart

https://whereis.みんな/

https://phoe.github.io/
https://github.com/charje/



reply via email to

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