[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: out-of-control GC
From: |
David Kastrup |
Subject: |
Re: out-of-control GC |
Date: |
Thu, 14 Sep 2017 22:36:54 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
Linas Vepstas <address@hidden> 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
- Re: out-of-control GC, (continued)
- Re: out-of-control GC, Arne Babenhauserheide, 2017/09/10
- Re: out-of-control GC, David Kastrup, 2017/09/10
- Re: out-of-control GC, Linas Vepstas, 2017/09/10
- Re: out-of-control GC, Marko Rauhamaa, 2017/09/10
- Re: out-of-control GC, Linas Vepstas, 2017/09/10
- Re: out-of-control GC, Marko Rauhamaa, 2017/09/10
- Re: out-of-control GC, Arne Babenhauserheide, 2017/09/11
- Re: out-of-control GC, Linas Vepstas, 2017/09/14
- Re: out-of-control GC, Marko Rauhamaa, 2017/09/14
- Re: out-of-control GC, Linas Vepstas, 2017/09/14
- Re: out-of-control GC,
David Kastrup <=
- Re: out-of-control GC, Arne Babenhauserheide, 2017/09/14
- Re: out-of-control GC, tomas, 2017/09/11
- Re: out-of-control GC, Linas Vepstas, 2017/09/14
- Re: out-of-control GC, David Kastrup, 2017/09/13
- Re: out-of-control GC, Arne Babenhauserheide, 2017/09/10
- Re: out-of-control GC, Arne Babenhauserheide, 2017/09/10
- Re: out-of-control GC, Mark H Weaver, 2017/09/14
Re: out-of-control GC, Arne Babenhauserheide, 2017/09/10
Re: out-of-control GC, Mark H Weaver, 2017/09/12