From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Amirouche Newsgroups: gmane.lisp.guile.user Subject: Re: How to make GNU Guile more successful Date: Mon, 13 Feb 2017 21:20:05 +0100 Message-ID: References: <87lgtajpkc.fsf@web.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1487017247 8147 195.159.176.226 (13 Feb 2017 20:20:47 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 13 Feb 2017 20:20:47 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 Cc: guile-user@gnu.org To: Arne Babenhauserheide Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Mon Feb 13 21:20:43 2017 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdN74-0001j0-Mr for guile-user@m.gmane.org; Mon, 13 Feb 2017 21:20:42 +0100 Original-Received: from localhost ([::1]:59357 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cdN7A-0003dY-AR for guile-user@m.gmane.org; Mon, 13 Feb 2017 15:20:48 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49405) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cdN6c-0003bT-KL for guile-user@gnu.org; Mon, 13 Feb 2017 15:20:16 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cdN6Z-000356-D5 for guile-user@gnu.org; Mon, 13 Feb 2017 15:20:14 -0500 Original-Received: from relay6-d.mail.gandi.net ([217.70.183.198]:53403) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cdN6Z-00033Z-3r for guile-user@gnu.org; Mon, 13 Feb 2017 15:20:11 -0500 Original-Received: from mfilter29-d.gandi.net (mfilter29-d.gandi.net [217.70.178.160]) by relay6-d.mail.gandi.net (Postfix) with ESMTP id 2E7BEFB88B; Mon, 13 Feb 2017 21:20:08 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mfilter29-d.gandi.net Original-Received: from relay6-d.mail.gandi.net ([IPv6:::ffff:217.70.183.198]) by mfilter29-d.gandi.net (mfilter29-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id 0X0018RJdHwR; Mon, 13 Feb 2017 21:20:06 +0100 (CET) X-Originating-IP: 82.239.61.147 Original-Received: from [192.168.0.7] (aul93-4-82-239-61-147.fbx.proxad.net [82.239.61.147]) (Authenticated sender: amirouche@hypermove.net) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id E5435FB8A0; Mon, 13 Feb 2017 21:20:05 +0100 (CET) In-Reply-To: <87lgtajpkc.fsf@web.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.198 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:13182 Archived-At: 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 >