Kartik Agaram
Justin Blank
09/09/2019, 4:38 PMjavac
isKartik Agaram
Gary Trakhman
09/09/2019, 4:42 PMtbabb
09/09/2019, 5:33 PMKartik Agaram
tbabb
09/09/2019, 6:06 PMKartik Agaram
there some wins from only learning one language to hack on the languageThat is narrowly true. But if you zoom out a bit, your computer relies on many languages. To hack on your computer you need to know many languages. So the narrow win turns into a loss in the long term.
Is SQL too confusing? You don't exactly know everything it'll do, but you don't also stare at query plans for every query.Most people don't need to stare at their compilers' internals, yes. But there's a very long, very steep funnel here that the world relies on: users of software become programmers, programmers learn more about the internals of their dependencies, down and down until a tiny fraction of people have some sort of global picture of what the computer is doing. (Not what the computer should be doing. I'm not a reductionist, and I don't claim that system software is the most important or anything like that.) Better interfaces definitely reduce the need to inspect implementations (and SQL's interfaces like
explain
are among the best). But humans don't know how to eliminate the need entirely. And Jonathan Blow would claim we shouldn't. In the big picture and the long term implementation quality matters.
Declarativeness and recursion go hand in hand.I like both! The reason I called recursion misguided here is that it's not actually recursion. Recursion in a single function or spanning a few functions has a clear base case. Here the base case spans codebases and unbounded spans of time. Most of the time our computers don't have it.
Is it so different from a function call? I have to run through a mental model of the data structures and what they'll do.To me the essential dissatisfaction in this group seems to be that we should rely less on working things out in our heads and offload as much of that load to our computers as possible. When you're tracking down a bug in a fundamental compiler that affects your whole computer, that burden can be quite large. So yes, there are similarities to function calls but they're sirens. Focus on the differences.
would you say a runtime library implemented in the same language as user code is too implicit?I actually don't have a problem with using a subset of a language to build the whole language. All my projects for the last 6 years (since http://akkartik.name/post/wart-layers or so) do this. There are no cycles and it's perfectly reasonable. In the end my goal is for the software that makes up a computer to reward curiosity. That's my North Star, and I think many of the problems we discuss in this group would be resolved if we hew to this North Star. https://www.reddit.com/r/ProgrammingLanguages/comments/cybbd5/september_2019_monthly_what_are_you_working_on/eyubr43 Hopefully this kinda pointillistic set of responses helps convey where I'm coming from.
Gary Trakhman
09/09/2019, 6:38 PMKartik Agaram
Gary Trakhman
09/09/2019, 6:45 PMTo me the essential dissatisfaction in this group seems to be that we should rely less on working things out in our heads and offload as much of that load to our computers as possible.I think it's a moving target. It's not clear to me that computing can ever get totally accessible, but maybe we'll focus attention on more interesting problems.
Konrad Hinsen
09/09/2019, 6:51 PMKartik Agaram
Gary Trakhman
09/10/2019, 1:02 PM