[ prog / sol / mona ]

prog


Do you even Scheme?

19 2020-09-12 14:37

>>15

Why nobody uses Scheme? How can we make it more popular?

At least for me, I think a lot of this has to do with it being very difficult to write portable Scheme, especially if you want to interact with the outside world, or write something particularly efficient. There is this real dissonance of Lisp at once encouraging standardization, encouraging "the right thing", encouraging writing complete programs, and at the same time Scheme denying you the opportunity to write portable programs.

21 2020-09-14 17:29

>>20
The dissonance is in the form of these contradictory beliefs which Scheme has as a product of its cultural inheritance as a member of the Lisp family of programming languages, and its belief that programming languages should be easy to implement (leading to under-specification and non-portable programs).

22 2020-09-14 18:55

>>21
I hold the dim view that "portability" is largely a myth bolstered by the dominance of certain machine architectures and language implementations over alternatives. In that respect Scheme doesn't seem appreciably worse than C in being under-specified, but without any dominant implementations or even consensus among its users the ecosystem stayed fragmented while C's mostly coalesced around a handful of flagship implementations on x86.
More often than not, truly portable C results from contortions by the programmer to write for the lowest common denominator. For non-trivial programs, this is not usually something to aspire to.

23 2020-09-14 20:06

>>22
This is a compelling argument, and I still need to think about it more. If I
understand correctly this is more of an argument against something like
standardized performance guarantees rather than standardized semantics and
syntax. So it might be that portability in a smaller sense would still be
virtuous, on the other hand this may be an ad hoc adjustment, which is not a
good sign for the truth value of a theory. Just to invoke a sort of stream of
consciousness this makes me think about sort of paradigm independent
programming like Fortress, and deductive optimisations like reduction
operations on lambda calculus. To what extent can optimisation exist without
referense to hardware, even if we include extremely dramatic deviations in
hardware? There is also this blurry line of how much influence protocols
should have over a language especially if we accept binary protocols, for many
tasks it would likely turn out that simply accepting the common representation
of a protocol would be more efficent than translating into a form which might
be more efficient due to hardware specific optimisations. Homogenous
representations of data structures seems like it would allow for a great deal
of reasoning about performance. This is likely another ad hoc modification
though.

24 2020-09-14 20:09 *

>>23
sorry about the fill-paragraph, I usually correct this before sending but forgot.

47


VIP:

do not edit these