From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: David Kastrup Newsgroups: gmane.lisp.guile.user Subject: Re: out-of-control GC Date: Thu, 14 Sep 2017 22:36:54 +0200 Organization: Organization?!? Message-ID: <87efr9f255.fsf@fencepost.gnu.org> References: <87zia28phj.fsf@web.de> <87shfuqojf.fsf@elektro.pacujo.net> <877ex6qivt.fsf@elektro.pacujo.net> <87vakl2jkv.fsf@elektro.pacujo.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1505421453 23437 195.159.176.226 (14 Sep 2017 20:37:33 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 14 Sep 2017 20:37:33 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Sep 14 22:37:30 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 1dsat8-0005uh-0Z for guile-user@m.gmane.org; Thu, 14 Sep 2017 22:37:30 +0200 Original-Received: from localhost ([::1]:49946 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dsatC-0001VN-6j for guile-user@m.gmane.org; Thu, 14 Sep 2017 16:37:34 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39208) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dsasp-0001UJ-Hl for guile-user@gnu.org; Thu, 14 Sep 2017 16:37:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dsasm-0002xo-En for guile-user@gnu.org; Thu, 14 Sep 2017 16:37:11 -0400 Original-Received: from [195.159.176.226] (port=56321 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dsasm-0002ww-7a for guile-user@gnu.org; Thu, 14 Sep 2017 16:37:08 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dsasc-0005Hc-5F for guile-user@gnu.org; Thu, 14 Sep 2017 22:36:58 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 45 Original-X-Complaints-To: usenet@blaine.gmane.org X-Face: 2FEFf>]>q>2iw=B6, xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN; i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw Cancel-Lock: sha1:xXtXx/NDROAhgKHuy502elvk0j0= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 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:14151 Archived-At: Linas Vepstas writes: > Perhaps. Back in the day, when young programmers were learning C++ > for the first time, they felt obligated to use each of the nifty new > tricks they just learned: multiple inheritance, overloaded operators, > virtual methods, virtual base classes, templates: not just use, but > abuse these, even when something simpler was available. It was like > working with quick-set concrete: after the code was written, it seemed > like it was impossible to make any significant changes to it that > would even compile, much less do the right thing. This kind of code > was hard to read cause it was badly written. The language C++ has had a long-running inferiority complex towards FORTRAN, basically with the motto "we can do the same, but user-defined, and still get native performance of a statically typed system". This gave it a monstrous, and actually unpredictably contorted type conversion lattice in order to simulate Fortran's builtin complex types. It also gave birth to a legion of attempts to do efficient runtime-dimensioned multidimensional arrays, with the result that there are no numeric libraries equivalent in usability and efficiency to half-century old FORTRAN libraries like BLAS and LINPACK since there still is no agreed-upon efficient multidimensional array type, let alone one where the compiler can do good strength reduction. This "we can do the same, but user-defined, and still get native performance of a statically typed system" mantra pervades all language standardization processes and basically leads to a Turing-complete template, type and ambiguity resolution system that is a wholly independent layer akin to the C preprocessor but syntactically structure-preserving. Scheme (and its overall LISP family) has no language syntax to speak of and its input _is_ already a data structure, so "structure-preserving" has always been a given for its preprocessing. It also never really was into static typing, but "JIT compilation" allows to reduce the impact of that decision considerably. > Sometimes, with scheme, I get the sense that if you haven't read SICP > you can't understand what the code does: that you can't understand the > code cause it's well-written. Well, that does not sound like a good language design goal either. -- David Kastrup