guile-user
[Top][All Lists]
Advanced

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

Re: How to make GNU Guile more successful


From: Amirouche
Subject: Re: How to make GNU Guile more successful
Date: Mon, 13 Feb 2017 21:20:05 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0

Le 13/02/2017 à 12:06, Arne Babenhauserheide a écrit :

Hi Amirouche,

Thank you for your nice writeup!

Amirouche writes:

I don't know why Racket is successful probably because
it has a very good documentation and also a documentation
generator written in scheme.

   => This is a long debate and core principle of GNU project
      so I don't want to enter that debate
But I want to add something: I’m getting the hang of just checking the
info-page to look something up. And I realize that with well-written
info-pages this is faster than googling for stack overflow.

My peers have this habit during system programming looking at man
pages and other stuff. I don't know much command line-fu. My experience,
about programming:

- looking up the API referennce (procedure index)
- looking up ansers in stack overflow

In the case of Guile programming I also look general scheme solution like
in racket. Last time I checked they had a Racket->JS translator, but not
much graphdb stuff.

The ability to generate multiple format is what makes TEXINFO powerful.

And it's easy to packages.

   => Another pain topic. In reality it's very easy to package
      all sort of guile programs for guix. But guix itself needs
      to be more stable.
I wish I had guildhall ready. Got hit by
time-eaten-by-other-project-because-guildhall-was-priority-three.

It needs to be easy to not just package some code, but also to share
that package without hitting a bottleneck.

I got stuck with guile-git; because of new way of bindings C. I use
guile-bytestructures.


Python is successful because it has a massive number
of libraries.
    => We (all the people reading this mail) can not just
       create all those projects. It requires to many domain
       knowledge for a handful of people to be able to compete.
       But what we can do is *share*, *share* and *share*
       again *all* what we do (on mailing list, blogs, on gitlab
       or whatever) whether it is a full blown project with a
       website made by a professional designer with tests suite,
       a tutorial documentation reference doc and a community or
       a simple *snippet* or broken experiments.
A really simple way to share a project would be nice here. Nowadays many
people just push something with a README to github, but github is
unfree.

I try to move to framagit. but I still use github sometimes.


    => In terms of software I really think, we need something like
       ActiveState Python Cookbook [0]. I still go there sometime even
       I could simply ask the question on StackOverflow and get an
       answer in minutes.

       [0] http://code.activestate.com/recipes/langs/python/

During a long time I was said that Pythonist were
among the smartest developer, because simply they had
the guts to learn a language that was not learned in
school.
I never heard that one :)

Python *was* easy to learn.

   => Scheme is easy to learn if you stick in the "garden"
      (garden must be defined but it's basically what I
      introduce in my tutorial [1]) Which is totally the
      same for the Python of today (read Python 3.5+).
Or look at py2guile: http://draketo.de/py2guile

Python is no longer easy due to integrating additional syntactic forms,
each of which makes a specific kind of code much nicer but complicates
learning.

We have something similar in foof-loop:

(define (count-matching-items list predicate)
   (loop ((for item (in-list list))
          (with count 0
                (if (predicate item)
                    (+ count 1)
                    count)))
         => count))
;       ^^ here

This looks really simple in this place, but it introduces special syntax
which will be unintelligible for someone who does did not explicitly
learn foof-loop.

And guildhall is filled with special forms I had to understand just to
be able to do small changes.

This is a social problem. For a deeper discussion why it is a problem,
see http://winestockwebdesign.com/Essays/Lisp_Curse.html
"Lisp is so powerful that problems which are technical issues in other
programming languages are social issues in Lisp."

I didn't know that one


We can counter this with easy tutorials and with writing something like
canonical Scheme. But for this, we need to define a canonical Scheme
which is hits the performance and readability sweet-spot for
Guile. Canonical code must be close to the fastest code.

Practically put: We need Andy Wingo to nitpick the tutorial about things
which will cause overheads the compiler cannot fix easily — including
expensive use of macros.

Right now, I don't have performance issues. Except maybe with the crawler code.

I improved stream srfi-41 performance, if you want the code.


      [1] http://hyperdev.fr

PHP was successful back in the days because it was easy
to install,
Or because it was the only thing which existed. Didn’t it make it easy
for the hoster to sandbox it — both in terms of access and in terms of
resource requirements?

     => A scheme web application is much easier to run!
Sadly not on my cheap webhoster which provides unlimited bandwidth for
a fixed cost.
Ok, I have a vps, I simply spawn the guile application in a screen and
point nginx to it. It's like configuring nginx for gunicorn. nginx forward
the traffic from :80 to :8080 or whatever based on some rules. It's like
a router for the ports being smart about http protocol.

     => While you might not be interested to build something
        like prestashop. You very much be interested to build
        something like Drupal or Wordpress to allow mom and
        dad and others create a personnal experience on the
        web.

Another thing, Python has GNU Media Goblin

     => We must do better!
Or, maybe collaborate with it?

There is the protocol Chris is working at w3c which is interesting.
I forgot the name :p but it looked cool. At some point, I'd like to talk
some kind of federation protocol. The issue is that they require some
identification, so that people can name you unlike 4chan. Yes my current
project is like a text 4chan with a search engine.

  I’m sure that there’s lots of stuff which
could be shared, because it is not language-specific (more exactly: it’s
HTML, CSS, Javascript and images).

I love their website and logo!


What block you from contributing to the wide ecosystem of GNU Guile?
- publishing a program for non-Linux platforms (well, Windows, OSX and
   mobile phones) so most of my friends can use it.

- an alternative to `python setup.py register sdist upload`

Best wishes,
Arne




reply via email to

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