From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: taylanbayirli@gmail.com (Taylan Ulrich =?utf-8?Q?Bay=C4=B1rl=C4=B1?= =?utf-8?Q?=2FKammer?=) Newsgroups: gmane.lisp.guile.user,gmane.lisp.guile.devel Subject: Re: Request for feedback on SRFI-126 Date: Wed, 30 Sep 2015 09:58:32 +0200 Message-ID: <87si5wz6c7.fsf@T420.taylan> References: <87zj08t5w1.fsf@T420.taylan> <87mvw7t100.fsf@T420.taylan> <1555352.V50ucWGNsT@fluss> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1443675603 17216 80.91.229.3 (1 Oct 2015 05:00:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 1 Oct 2015 05:00:03 +0000 (UTC) Cc: guile-user@gnu.org, guile-devel To: Arne Babenhauserheide Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Oct 01 06:59:59 2015 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZhVyJ-0007tc-5W for guile-user@m.gmane.org; Thu, 01 Oct 2015 06:59:59 +0200 Original-Received: from localhost ([::1]:37790 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhVyD-0003J2-2B for guile-user@m.gmane.org; Thu, 01 Oct 2015 00:59:53 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhCHf-0008LJ-DY for guile-user@gnu.org; Wed, 30 Sep 2015 03:58:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZhCHe-00083U-6b for guile-user@gnu.org; Wed, 30 Sep 2015 03:58:39 -0400 Original-Received: from mail-wi0-x236.google.com ([2a00:1450:400c:c05::236]:38620) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhCHb-000810-M2; Wed, 30 Sep 2015 03:58:35 -0400 Original-Received: by wiclk2 with SMTP id lk2so48932263wic.1; Wed, 30 Sep 2015 00:58:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=Vk0g4neBbZOHsbRWq0vHVO+F6rO38wrVNGZCEs0UGPE=; b=FQSaGt8oP9X2zLmCSFjXbbMS4nNc0RaASCVMUyrcLxnTebDI6AGqxS9po6kk2l1AA9 Rn8rDnucPKOORot6CTKZEulXQ6ScEbK6qlngbB+Fbkj8R4XzFxE5iZsscjZqU1RIdhoH L7oD2trFqEtk7brZn9A2/NtNe9BQmNPoejn83PBA/RWgsla3lYrr8V11EoqPrVQKdosF 8UT5Iij0pJ+6bRjVKB+nn6H4/HwnRvPd3RhPfHpWwG53uAJDXYAApTxW7LAWICy66au1 /+37jrHM4K+DDi5rGEYa67oKjLpEjQVM9hubXNVjrqQoCLRgVYmH6bNjEQVzDzPcHDT4 Ycsg== X-Received: by 10.194.78.34 with SMTP id y2mr2411515wjw.91.1443599914577; Wed, 30 Sep 2015 00:58:34 -0700 (PDT) Original-Received: from T420.taylan ([2a02:908:c32:4740:221:ccff:fe66:68f0]) by smtp.gmail.com with ESMTPSA id p4sm28056155wia.15.2015.09.30.00.58.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Sep 2015 00:58:33 -0700 (PDT) In-Reply-To: <1555352.V50ucWGNsT@fluss> (Arne Babenhauserheide's message of "Tue, 29 Sep 2015 22:05:29 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::236 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 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-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:12060 gmane.lisp.guile.devel:17878 Archived-At: Arne Babenhauserheide writes: > [...] The best language for any job is the one which provides the > solution off-the-shelf. SRFIs could give Scheme such solutions, and > the flexibility of Scheme would allow making these solutions much more > elegant than what can be created with Python. > > But someone has to actually do that: Creating libraries with > consistent style which provide to the application developer what > Scheme already provides to the language developer. Exactly, I agree. It should be noted though that some things can be implemented purely as portable libraries, so there needn't be a Request For Implementations to do it, whereas some other things, which I call "fundamental" features, need to be supported by implementations, so they need to be in the language specification or an authoritative SRFI. For instance the "sets and bags" library in SRFI-113 could have been just a library hosted on snow-fort.org or elsewhere because it can be implemented as a library on top of hash tables, but the hash table library/API needs to be in the language because it can't be implemented as portable library code (not very well anyway; see SRFI-69 ref. impl.). I like to think of SRFI-126 as "R7RS-small section 6.10 Hashtables" if that isn't too shameless. (I don't know yet if it's really worthy of that, hence critique welcome.) *** I think there are only few fundamental APIs left now that need to be standardized, for standard Scheme to become fairly seriously usable and possible to write as plenty libraries in as e.g. Python. One could already do a ton given R7RS-small, SRFI-99, SRFI-106, SRFI-115, SRFI-126, though the mentioned SRFIs aren't well-supported yet. After that, we probably want a fuller POSIX API (not just sockets), an FFI, delimited continuations, and a few other things. Care needs to be taken not to fall for API design mistakes in the conception of these SRFIs, but I could say I see the writing of them as more drudgery than anything else at this point. But sadly, there seems to be little interest anymore among the biggest Scheme implementations to help get that work done. In any case I'll go on to write a delimited continuations SRFI inspired by Guile's API, an FFI SRFI based on libffi's feature-set, will preach for broader syntax-case adoption (don't know about phasing yet), and see if I can write some POSIX API SRFIs as well. If that effort will be in vain, so be it I guess. Taylan