2022-10-07 11:38:38 Sure it is, but it's horribly "isolated" from pretty much the entire remainder of the software world. To use it the way Chuck provided it means installing it on a bare metal computer, and it becomes your only development tool. 2022-10-07 11:39:06 You'd have to take it and make extensive modifications to get something that ran "alongside" an OS. 2022-10-07 11:39:27 That's just how Chuck rolled. 2022-10-07 11:40:11 People complain about the colors themselves, but Chuck was careful to point out that all you need is *some* way of differentiating different types of words - could be color, could be font, etc. 2022-10-07 11:40:37 That characteristic of a word determines whether it's a word that is a name to be defined, or executed, or compiled, etc. 2022-10-07 11:40:41 Or a comment. 2022-10-07 11:41:17 But he even provided his own way of storing source code, and you can't really take colorForth source and just stick it in a vim file. 2022-10-07 11:43:30 So you either use it "as is," and face that isolation, or you undertake a fairly major project to tie it to the rest of the world. 2022-10-07 11:44:28 I'd think it was an open question whether the precise way he wrote it is optimized for processor tech improvements that came later. Most likely no. 2022-10-07 11:48:19 Ran across a physics paper last night that derived special relativity without any discussion of the behavior of light (and without assuming ahead of time the speed of light is constant across observers). 2022-10-07 11:48:57 That behavior of light is what pushed us into that to start with in the late 1800's, but this reasoning turns it into something that Galileo or Newton easily could have completely worked out. 2022-10-07 11:50:14 Turns out in the general case there are only two possibilities. There is a speed that is special. You either get what Galileo came up with, and that speed is infinite, or you get what Einstein came up with and that speed is finite (and turns out to be c). 2022-10-07 11:50:22 There are no other cases. 2022-10-07 11:51:59 The thing is, even if Galileo or Newton had gone through that math and found those two cases, they probably would have rejected the finite speed case because of the "weird" consequences it predicted - consequences that era was not equipped to detect. 2022-10-07 11:52:58 (length contraction an time dilation) 2022-10-07 11:55:11 The finite nature of the speed of light was known in the 1600's, but the fact that it's the same number for all observers, regardless of motion, wasn't known until 200 years later. 2022-10-07 11:57:36 How they got their hands on the speed of light is one of my favorite historical experiments. If you take data on when the moons of Jupiter pass behind the planet when Earth is over on the Jupiter side of the solar system, and use that data to predict when the eclipses will occur several months later, when Earth is further from Jupiter, turns out you'll see those predicted eclipses happen late. The error is 2022-10-07 11:57:38 exactly the time it takes light to travel that extra distance. 2022-10-07 11:58:05 That's just so nicely simple and clear. 2022-10-07 13:03:27 re colorForth, is there no port to an OS? 2022-10-07 13:03:47 I thought one of the guys on one of the monthly forth calls was working on that 2022-10-07 13:04:07 Also curious if you could run the original in an emulator 2022-10-07 13:05:51 https://youtu.be/DWp_FYHFd8Q 2022-10-07 15:07:45 what is the advantage of shannon encoding that Colorforth uses over ascii? I find it less intuitive. 2022-10-07 15:23:13 Code for determining character type is shorter 2022-10-07 15:23:50 character type..? 2022-10-07 15:24:00 class 2022-10-07 15:24:12 Like is it a digit, alphabet, etc 2022-10-07 15:24:20 explain what you mean more pls 2022-10-07 15:24:33 isalpha, isomega 2022-10-07 15:24:54 why would you need that? 2022-10-07 15:25:20 aha's approach is honestly much better in this regard 2022-10-07 15:25:29 For parsing numbers? 2022-10-07 15:25:58 sure, but if you're abandoning ascii you dont need to parse numbers at all 2022-10-07 15:26:29 by abandoning ascii or utf or any regular string based encoding you sacrifice compatability entirely 2022-10-07 15:26:46 liberated from the shackles you can have a model that is simpler, cleaner and faster than shanon coded source 2022-10-07 15:28:05 pretty sure the proletariat isn't ready for that 2022-10-07 15:28:18 for instance, you could build a function name<>code table at the top of the source format, and have two possible token types 2022-10-07 15:28:27 an index into the table, and a literal integer 2022-10-07 22:04:04 One of the things Chuck was really focused on around that time was compile speed. I've always speculated about why, and the best I can come up with is that he may have been completely re-compiling the entire chip design system from scratch, every time. 2022-10-07 22:04:36 Jeff Fox wrote a paper on it and claimed that they could compile a 100 MB or more source code per second using all those methods. 2022-10-07 22:04:54 faster iteration to zero in on an idea, rather than twiddling thumbs while compiler does whatever those slow compilers I do not use do 2022-10-07 22:05:06 Yeah. 2022-10-07 22:05:46 someone was saying in a gamedev channel that unreal engine (C++) took 45 minutes for their (beefy!) system to compile 2022-10-07 22:05:51 One of the things he did involved a symbol table; the "source" would then become an index into that symbol table. I.e., he didn't rebuild the symbol table every time. 2022-10-07 22:06:28 So you grab the next token from the source; go to that index in the symbol table, and just grab the CFA of the word from there. 2022-10-07 22:06:42 I spent a good bit of time thinking about it, but that was quite a few years ago and I'm fuzzy on it now. 2022-10-07 22:07:01 I thought about trying it out, and worked on it for a while, but then I realized there were some downsides that Fox didn't mention in the paper. 2022-10-07 22:07:29 for one thing, having the same name in more than one vocabulary looked pretty problematic (at least if I was looking at it the right way). 2022-10-07 22:07:55 I didn't see a good way to make the ideas play well together. 2022-10-07 22:08:09 But I think that maybe Chuck didn't value vocabularies in that system. 2022-10-07 22:08:22 It was a "one application effort" - he was writing a chip design system. 2022-10-07 22:08:25 And nothing else. 2022-10-07 22:10:10 So I think the symbol table stayed relatively static. You still added words to the dictionary as you processed the source, but when you defined a word you went to the same symbol table entry it had been at before and you just stuffed the new CFA in there. 2022-10-07 22:10:39 Anyway, I started to see how compilation could just fly with the setup Fox described. 2022-10-07 22:14:47 joe9: If you dig around in the history of Forth very much you'll catch on that Chuck was prone to re-invent more or less anything; he always had a conviction that the software world was in the weeds and had gotten there by trying to leverage existing technology too much rather than writing optimum solutions from scratch, problem by problem. 2022-10-07 22:15:23 One of his systems (maybe colorForth) even used a custom keyboard (at least for his workstation). 2022-10-07 22:15:48 you'll find more content to follow the herd 2022-10-07 22:15:49 If he could find anyway to regard something as wasteful, he got rid of it and built something he regarded as more efficient. 2022-10-07 22:16:51 Kind of a "know no limits" sort of guy when it comes to "optimizing."