unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* Newbie thoughts on Guile Hall + Guix
@ 2022-02-05 20:01 Christine Lemmer-Webber
  2022-02-05 22:15 ` Mikael Djurfeldt
                   ` (3 more replies)
  0 siblings, 4 replies; 41+ messages in thread
From: Christine Lemmer-Webber @ 2022-02-05 20:01 UTC (permalink / raw)
  To: guile-user

Hello!

It's been a while since Guile was my main hacking environment; I've been
returning to it, and one of the nicest things to change about its
ecosystem is the presence of Guile Hall.

I really, really like Guile Hall.  A lot!  I think it has room to grow
but it fills a clearly missing piece of the Guile ecosystem while doing
it in the best way possible: making itself explicitly compatible with
Guix.

I thought I'd write down some impressions while everything is fresh.

 - Its ability to make an autotools-compatible tarball, but without me
   needing to think about autotools at all, is a real delight.

 - Its test suite stuff is also really nice.

 - I found myself surprised that hall.scm is "just data", instead of
   taking the more guix'y approach of being code that actually builds a
   datastucture.  I'm not sure what the goal of this is; there can be
   reasons to take that approach but I'm not sure what it is here?
   My assumption is that the main reason is so that "hall scan" can
   correctly read and then modify and spit out another file, but I'm
   not sure.

 - What I would actually *really* like would be for the Hall package
   definition structure to be a wrapper *around* the Guix package
   structure.  Then the guix.scm would be really simple: it could just
   "peel off" the outer struct.  If I wanted to do some smart
   modifications of things from there maybe I could.  I dunno, something
   like this.

 - "hall scan" is really cool, but I kind of wish I didn't need to use
   it.  I'd rather not keep track of any of this stuff at all.
   I'd be happy just pointing some code at a directory and say "snarf
   up all the .scm files you see therein!"

 - I'm currently writing a manual starting in a .org file that's then
   converted into a .texi file.  I'd prefer if I could find an
   entrypoint to insert this into the compilation workflow: a pre-step
   to the docs compilation that generates the .texi file *from* my
   .org file.
 
 - On that note, it strikes me that Hall's integration with autotools
   is great because it means that existing distros don't need to be
   aware of Guile *or* Guix.  But it also means that Hall probably has
   all of the information that it could do all the steps that autoconf
   and automake do too.  That might be interesting to see that.
   
Anyway, just some thoughts.  Making Guile packages is already much less
intimidating now thanks to Hall's work.  Thank you for it!

 - Christine



^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Newbie thoughts on Guile Hall + Guix
@ 2022-02-06 13:40 dsmich
  0 siblings, 0 replies; 41+ messages in thread
From: dsmich @ 2022-02-06 13:40 UTC (permalink / raw)
  To: 'mikael@djurfeldt.com'; +Cc: 'guile-user'

From: "Mikael Djurfeldt" 
To: "Aleix Conchillo Flaqué"
Cc: "guile-user"
Sent: Sunday February 6 2022 8:15:06AM
Subject: Re: Newbie thoughts on Guile Hall + Guix

> I also think that there is a need for something light-weight and
cross
 > platform. I think, e.g., that PyPI is one of the main reasons for
the
 > success of Python and that the lack of something in that direction
is
 > holding Guile back.

...

> So, the
 > question is if it would be possible to use aspects of Guix and
 > Hall---to
 > refactor things, perhaps akin to the peeling off that Christine is
 > talking
 > about? Maybe with some extra support for the non-Guix case such
that
 > the
 > package would work both within snd outside of Guix? Am I crazy?

Not crazy. I think this is a wonderful idea.

-Dale




^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Newbie thoughts on Guile Hall + Guix
@ 2022-02-08 12:19 Blake Shaw
  2022-02-08 19:46 ` Chris Vine
  2022-02-09  6:28 ` Catonano
  0 siblings, 2 replies; 41+ messages in thread
From: Blake Shaw @ 2022-02-08 12:19 UTC (permalink / raw)
  To: Vijay Marupudi; +Cc: Ognen Duzlevski, guile-user

Vijay Marupudi <vijaymarupudi@gatech.edu> writes:
> I don't think it's fair to say that using packages in Guile just as
> easy/hard as other languages. Python / Javascript make this incredibly
> easy, and their ecosystem is evidence for that success. Their package
> managers have flaws, but they have benefits too, and those benefits
> would be great for Guile.

I would just like to tag onto this convo that I agree that its not fair
to say that Guile is easy and will quickly bless those who endeavor to
learn it with superpowers. My experience w/Racket was very smooth and I 
got working in it very quickly. I was a contracted to work on a project in
Python a few months ago and without ever studying it I was able to 
start doing production work in it (ridiculous how intuitive it is,
really). Before I started learning Guile I read Edwin Brady's book on
Idris and found Idris much easier to get from start to end of small
projects I was working on (because there is a well written book on it).

While Guile has become my favorite programming language, it took me
several months to learn how to navigate & figure out how to navigate the
SRFIs, how to plan a program so that I can know what to expect along the
way (what features I'll need to implement myself, etc) before I was able
to get productive in it beyond the realm of Guix. And I think most would
agree that Scheme is a less advanced language than Idris (I did some
category theory in school so I have some intuition for the ideas, but
still). And to be honest, I still hit plenty of road blocks.

There were definitely some times where I was digging around trying to
figure out how to do things and came across messages in the archives
saying "its so easy you just do [vague hand wavy explanation]". And I
found that quite frustrating, like there is an insularity meant to weed
out the bad apples. And when this topic popped up on the guix list a few
weeks ago some others expressed similar concerns, folks who are doing
very impressive work. A programming language should never make
programmers feel dumb -- it should make us feel empowered!

[end rant, thanks for humoring me]

-- 
“In girum imus nocte et consumimur igni”



^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Newbie thoughts on Guile Hall + Guix
@ 2022-02-08 16:13 Blake Shaw
  0 siblings, 0 replies; 41+ messages in thread
From: Blake Shaw @ 2022-02-08 16:13 UTC (permalink / raw)
  To: adriano; +Cc: Zelphir Kaltstahl, guile-user

adriano <randomlooser@riseup.net> writes:

> Just don't
> That stuff is too low level for human beings
> [...]
> Anyway, I feel your frustration, I've been there myself
>
> Actually I've been there with Guile more than with Guix
>
> But still I feel you
>
> I hope this message of mine can sooth your frustration, to some extent
>

Wasn't intended for me, but I found it soothing!

Somewhat off topic, but I feel like briefly relating these types of
sentiment could even be useful to interject in within the Guix docs at
times.

There are many points of docs where the sales pitch bleeds into points
far past the point of sale, so to speak. There are lots of "Guix makes
this easy by x y z" deep in the docs, but the longer I've been in the
community the more I've seen long time contributors relate that there
are lots of points of frustration around certain things that may be
called easy in the docs. If you're frustrated, and someone is there
telling you what you're confused about this is simple and easy, that
can come across as rubbing salt in wounds. While I share the enthusiasm,
and I realize how much Guix eases things compared to traditional
methods, it has been de-motivating for me at times.

On the other hand, I think briefly relating, for example, "Depending on
the complexity of a package, packagers at times will be exposed to
low-level details that aren't traditionally meant for humans. This can
be a genuinely frustrating experience..." becomes encouraging.  

Hope that makes sense, just food for thought! We could all use a pat on
the back at times, especially given the human-ness of a project like
guix that is waivers between the social and solitary :)  

-- 
“In girum imus nocte et consumimur igni”



^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Newbie thoughts on Guile Hall + Guix
@ 2022-02-09  3:23 Blake Shaw
  0 siblings, 0 replies; 41+ messages in thread
From: Blake Shaw @ 2022-02-09  3:23 UTC (permalink / raw)
  To: Chris Vine; +Cc: guile-user

Chris Vine <vine35792468@gmail.com> writes:

> Everything is capable of improvement but the guile manual is a manual
> and not I think primarily intended as a language tutorial (although
> Chapter 3 of the manual does have a very cursory introduction to the
> scheme language).  If you are looking for a tutorial, I suggest reading
> https://www.scheme.com/tspl4/ .  It covers the R6RS flavour, but at the
> tutorial level I don't think the various current standard flavours
> (R5RS, R6RS and R7RS) matter too much.
>
> I would be reluctant to see the manual turned into a tutorial if that
> were to mean abridging any of its current completeness.
>

For sure, but I didn't say anything about the manual here or anything
about a tutorial. 

-- 
“In girum imus nocte et consumimur igni”



^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Newbie thoughts on Guile Hall + Guix
@ 2022-02-09 10:30 Blake Shaw
  2022-02-09 14:13 ` Olivier Dion via General Guile related discussions
  0 siblings, 1 reply; 41+ messages in thread
From: Blake Shaw @ 2022-02-09 10:30 UTC (permalink / raw)
  To: Catonano; +Cc: Guile User

Catonano <catonano@gmail.com> writes:

Hi Adriano, 


> I personally believe this is a good chunk of why Guile wasn't as successful as Python
>
> With Guile the overall experience is extremely frustrating
>
> I've been hanging around here for years, on and off, and overall I haven't done anything, in Guile

I think this type of response should be taken seriously by all of
us, and we should seek to know why this happens for some users, as I've
seen plenty of people express the same sentiment. Guile seems to be a
community that takes pride in its openness, so in order to grow it seems
we should seek to know:

    + Where do some users get stuck?
    + What kind of applications are they trying to write?

We might find that there is a lot of overlap where there is a set of
solutions for doing things, but its difficult to find out where to find
the know-how. If we are able to recognize this, we are closer to address
the issues, and it seems like something many guile users have in common
is that they want to make the community and learning experience better.

> I managed to do some widgets in clojurescript, some modest datapipes in Clojure, a game of life with some 2d graphics library in Clojure
>
> I made some things in Python
>
> In Guile ?
>
> Nothing, nisba, nada

I feel you! And there seems to be many others who have had similar experiences.

Perhaps a survey is due. Are those who are highly productive in guile
relying heavily on the FFI? What is their workflow and how does it
differ from those who are hitting walls?

>
> I can relate to the experience of feeling frustrated about how casually some things are referred to on Guile channels
>
> Last time it was about the new exceptions
>
> But I remember I asked for an example of some usage of the APIs for web serving in Guile, some years ago
>
> I was kindly offered an example by Andy Wingo nonetheless
>
> But then I could follow up, I got lost, I don't remember why exactly, but I was ashamed to keep gong n any way
>
> Something similar happened when I asked about lazyness
>
> I don't think I've ever seen a community that suffers the curse of knowledge more than the Guile community
>
> This is why I was enticed to attempt the only video in my life about how to read a file (a basic use case) with Guile
>
> And I'm mumbling to do a new series about project management and package building
>
> And about delimited continuations
>
> And, and, and....
Totally. I think many of us can relate. 
>
> That is, my hope now is that Guile can be made into something empowering, so that it will be useful to someone else in the future
>

And so that we can work on cool projects together, and grow as a
community :)

> rather than disempowering as it has always been (for me at least)
>
> I've been terribly frustrated about this in the past and I'm so refreshed to see you landing here, in Guile land

Thanks! I'm glad to be here and meet you. I'm about to attempt my first
professional project that will use Guile, and I'm a bit
nervous. Nevertheless, I'm the type of nerd that has always used obscure
academic programming systems for commercial art projects, and theres
certainly something sisyphean about it, as it means that I end up
writing a lot of C, which brings me little pleasure. But as a former
Puredata programmer, I realize that when you get in the swing of things
it usually pays off majorly, especially the aspect of being a part of a
community that is small and close-nit.

>
> One final note: while I have been emotional about this in the past, I believe I'm not being emotional now

I'd hope the Guile community can similarly refrain from taking criticism
personally, and recognize that everyone is here to contribute to
something we see as powerful, beautiful, and reflects humanity's better
attributes. Nobody is here to bring the community down... we're here to
build, and see our contributions grow like a nice garden of blooming
hacks and programs :)
>
> My remarks are not meant to disparage the Guile/Guix community, I acknowledge the generosity of this community, overall
>
> I just think that it's right and useful to raise perceived problems
Without a doubt. I think we're all here for community, free software,
and comradely discourse, not just scheme.
>
> And I think this initiative to reconsider the structure of the manual is one of the best things that happened in a very long time
I'm super glad folks have taken to it well! It's the type of subject
that can get bogged down in bikeshedding when too many long-time users
are set in their ways. So the fact that folks seem to be excited about
it, seems to indicate that won't be the case this time around.
>
> After so many years I still can't tell where to look in it when I need something
>
Let's fix that! :)

Looking forward to your feedback on my presentation.

ez,
b
-- 
“In girum imus nocte et consumimur igni”



^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Newbie thoughts on Guile Hall + Guix
@ 2022-02-10 12:42 Blake Shaw
  0 siblings, 0 replies; 41+ messages in thread
From: Blake Shaw @ 2022-02-10 12:42 UTC (permalink / raw)
  To: Aleix Conchillo Flaqué; +Cc: Olivier Dion, Catonano, Guile User

Aleix Conchillo Flaqué <aconchillo@gmail.com> writes:

> My 2 cents:
>
> - Doing something in Guile is tough. I've been trying since 2011.
>
> Why is it tough?
>
> - The manual is written by very smart people for very smart people. Not for
>   newcomers.

I've seen this sentiment expressed a few times when this topic has popped
up, and I think it can come across as assuming that the people who struggle
with it are either not very smart, new to programming, or both. For
instance, I know that someone who described a difficult experience
which shared many of the same attributes as my experience, and they are
the author of a popular programming book that is certainly not for
newcomers. Before the pandemic threatened to separate me from my
partner if I returned to school, I was doing my PhD in philosophy of
mathematics focusing on categorical logic, and I've been programming
since I was 15, almost 20 years now (but I will admit I'm no super
hacker, my work has been specifically limited to audio dsp, opengl,
opencv and stage video & lighting). And I worry that beyond possibly
scaring off folks who could possibly become very active members of the
community, this form of sentiment functions to allow us to forgo the  
difficult work of understanding what the problems are and how they can
be addressed.

> I'm excited to see what Blake comes up with, but the content will
> probably still be not-trivial. At the end of the day it's a reference manual, not
> a book to teach you how to write a new project from scratch.

I'm glad to hear it! It good to see so many people get excited about
documentation! Which certainly indicates a shared desire to see the
documentation improved. And I agree its a manual, and if anything there
is a good amount of inconsistency when the manual is itself unsure whether its
a tutorial or a manual. I think I have a very simple guideline that I'll
present that allows us to maintain most of the existing material while
allowing us to revise sections in a consistent way to make them less
tutorial-like, quicker to consult, and easier to understand, at once!
It's not magic, but I think will offer a notable improvement both "for the
working hacker", but also for the little schemers like myself. I'll be
excited to hear what you think of it. 
>
> - There are no simple and modern resources that teach what is the "Guile/Scheme"
> way. How do you even organize a project when you start? Or something like 
> https://go.dev/tour/ to teach the basics. Yes, you can read books but most people
> when they start to learn a new language they just want to try to do something
> quick. And the books that teach Scheme are not trivial/practical.

I agree, and I'm really excited to see how Jeremy Korwin's book develops
because from just a glance at it, it seems to be on the right track to
fill those shoes.

>
> - Lack of libraries. We do have libraries but the ecosystem is not big and for
> those libraries we have it's hard to get started, most don't have simple examples
> or don't have examples at all.
>
> - Assuming you find the library you need... how do you start using it? How do you
> install it? Now there's Guix, but not everyone has Guix or wants to install Guix.
> I'm on macOS currently so I can't even install Guix unfortunately.
>
> - Lack of support in editors other than Emacs (yes, geiser is great!). There's a
> project that might help there: https://gitlab.com/rgherdt/scheme-lsp-server. But
> LSP is not enough, you need a paredit equivalent, etc.
>
> - Creating a new library is (or was) not easy. guile-hall and guix help here. But
> how do newcomers even find "guile-hall"? Should guile-hall be part of Guile and
> included in the manual?
>
> - Distributing the new library you have created is (or was) not easy either.
> Also, guile-hall and guix issues here.
>
> So basically today we are kind of forcing people to learn Emacs and Guix (if you
> can even use Guix) to have a minimum decent environment.
>
> For me starting with Guile was not hard because of autotools, I already had to
> deal with that for many years. For me the hardest part was the lack of resources
> (libraries, tutorials, examples, simple books).
>
> As for myself, I've been trying to create libraries to replicate what I use at
> work (and I'm far from that) or others that I find fun. And I will try to keep
> doing that to improve Guile's ecosystem and help with anything else I can.
>
> Best,
>
> Aleix
>

I address many of your concerns in my presentation, but not all of
them, and I agree with most them. Will be interested to hear what you think!

ez,
blake

-- 
“In girum imus nocte et consumimur igni”



^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2022-02-10 18:03 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-05 20:01 Newbie thoughts on Guile Hall + Guix Christine Lemmer-Webber
2022-02-05 22:15 ` Mikael Djurfeldt
2022-02-05 23:19   ` Jose Antonio Ortega Ruiz
2022-02-06 14:09     ` Ricardo Wurmus
2022-02-06  0:40   ` Christine Lemmer-Webber
2022-02-06  4:54     ` Aleix Conchillo Flaqué
2022-02-06 13:14       ` Mikael Djurfeldt
2022-02-06 14:03         ` Ricardo Wurmus
2022-02-06 14:28           ` Vijay Marupudi
2022-02-06 14:53             ` Ognen Duzlevski
2022-02-06 15:13               ` Maxime Devos
2022-02-06 15:29               ` Vijay Marupudi
2022-02-06 21:34                 ` Zelphir Kaltstahl
2022-02-07  2:11                   ` David Pirotte
2022-02-07  2:47                     ` David Pirotte
2022-02-07 19:21                     ` Zelphir Kaltstahl
2022-02-07 22:35                   ` adriano
2022-02-05 22:16 ` Vivien
2022-02-06  2:53 ` Zelphir Kaltstahl
2022-02-06 16:35 ` Olivier Dion via General Guile related discussions
2022-02-06 16:44   ` Vivien Kraus
2022-02-06 22:10     ` Olivier Dion via General Guile related discussions
2022-02-06 16:55   ` Maxime Devos
2022-02-06 22:05     ` Olivier Dion via General Guile related discussions
2022-02-06 22:32       ` Maxime Devos
2022-02-06 23:00         ` Olivier Dion via General Guile related discussions
2022-02-06 21:37   ` Zelphir Kaltstahl
2022-02-06 22:12     ` Olivier Dion via General Guile related discussions
  -- strict thread matches above, loose matches on Subject: below --
2022-02-06 13:40 dsmich
2022-02-08 12:19 Blake Shaw
2022-02-08 19:46 ` Chris Vine
2022-02-09  6:28 ` Catonano
2022-02-08 16:13 Blake Shaw
2022-02-09  3:23 Blake Shaw
2022-02-09 10:30 Blake Shaw
2022-02-09 14:13 ` Olivier Dion via General Guile related discussions
2022-02-09 20:05   ` Aleix Conchillo Flaqué
2022-02-09 20:28     ` Maxime Devos
2022-02-09 21:13       ` Aleix Conchillo Flaqué
2022-02-10 18:03     ` Vivien
2022-02-10 12:42 Blake Shaw

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).