Stefan
11/18/2019, 9:23 AMwolkenmachine
11/18/2019, 1:05 PMKartik Agaram
Don Abrams
11/19/2019, 10:41 AMWhenever we have a tree structure, it means that within this structure no piece of any unit is ever connected to other units, except through the medium of that unit as a whole.
Stefan
11/19/2019, 12:15 PMKartik Agaram
Don Abrams
11/19/2019, 6:55 PMKartik Agaram
Don Abrams
11/19/2019, 7:05 PMDon Abrams
11/19/2019, 7:08 PMKartik Agaram
Doug Moen
11/20/2019, 1:07 AMKartik Agaram
Stefan
11/20/2019, 1:25 PMStefan
11/20/2019, 1:36 PMStefan
11/20/2019, 1:47 PMDoug Moen
11/20/2019, 3:29 PMStefan
11/20/2019, 3:48 PMDoug Moen
11/20/2019, 4:10 PMStefan
11/20/2019, 4:17 PMStefan
11/20/2019, 4:29 PMDoug Moen
11/20/2019, 4:38 PMStefan
11/20/2019, 4:38 PMQuoting Wirth, programmers "must learn to weigh the various aspects of design alternatives in the light of these criteria. They must be taught to revoke earlier decisions, and to back up if necessary, even to the top."I think the underdeveloped skill in our industry that could also potentially be augmented with better tools is our capacity to work with several dimensions (different tree approximations of the same semi-lattice) at once as well as how easy we can jump back and forth between different levels of complexity (the depth within those trees), up and down the ladder of abstraction.
Stefan
11/20/2019, 4:42 PMWikipedia synopsisWell, the rabbit hole just looks like any other from up there… 😉
Doug Moen
11/20/2019, 4:47 PMDoug Moen
11/20/2019, 4:52 PMStefan
11/20/2019, 5:07 PMStefan
11/20/2019, 5:12 PMStefan
11/20/2019, 5:14 PMStefan
11/20/2019, 5:23 PMDoug Moen
11/20/2019, 5:30 PMKartik Agaram
Kartik Agaram
Can you try to explain what you mean by tests being "like a Fourier transform..?It's very easy to think of a program as the sum of its source code. Subsystems, functions, lines of code. This decomposition is often useful. I think of it as the time domain in my analogy. An alternative worldview is to think of a program as a space of inputs that it handles, decomposing into different regimes. Within a regime behavior changes smoothly/continuously. Across a regime boundary behavior changes abruptly/discontinuously. I find this decomposition more useful, partly because it's not reified anywhere in the source code and so easy to forget. I consider this the frequency domain in my analogy. One place where you can see the frequency domain if you squint, and if a program is written in a certain way, is by staring at its tests. Usually you'll have one test per regime, and areas around the test will tend to behave similarly. One could imagine trying to add multiple tests per regime to help nail down the boundary more carefully and so reify the frequency domain in the limit. If we did that, a whole new universe of tools would open up. But it's definitely still an open problem.
Stefan
11/20/2019, 10:14 PMKartik Agaram
Stefan
11/21/2019, 8:11 AMStefan
11/21/2019, 8:13 AMKartik Agaram
Dan Cook
11/24/2019, 7:26 AMMariano Guerra
Kartik Agaram
Mariano Guerra