2022-10-24 02:08:11 just use ed 2022-10-24 06:57:15 MrMobius: I have words for moving and copying blocks, so I just rearrange them when necessary 2022-10-24 09:22:25 http://git.9front.org/plan9front/mafs/ed15895273e750a388552171d4888e075bc3ea59/docs/mafs.pdf/raw 2022-10-24 09:23:07 Why not have a proper file system instead? 2022-10-24 09:23:39 I do not see how blocks add value when there are different files such as receipts, resumes, etc to store. 2022-10-24 09:42:15 uhhhh 2022-10-24 09:49:41 "stack effect calculus"... 2022-10-24 09:50:02 Is there a typescript to forth? That is, it's still forth. Just with annotations. Or possibly as a superset. 2022-10-24 09:56:47 typescript isnt annotations 2022-10-24 09:56:48 its a typechecker 2022-10-24 09:58:15 eris[m]: I think you know what I mean lmao 2022-10-24 09:59:46 dont 2022-10-24 09:59:55 i 2022-10-24 10:00:02 there exist some forths with stack effect checkers 2022-10-24 10:00:04 but why would you want that 2022-10-24 10:02:10 you'd also have to heavily restrict forth due to the fact that ans and such have various primitives with nondeterministic stack effects 2022-10-24 10:02:21 > That is, it's still forth. Just with annotations. 2022-10-24 10:02:37 this is the stack effect comment :) 2022-10-24 10:03:51 ( n n n -- wtf?? ) 2022-10-24 10:05:17 The word needs three items on the stack. 2022-10-24 10:05:55 I guess you could jury rig up some testing from such comments 2022-10-24 10:05:56 That's not in any way executable - it's a note to the user. 2022-10-24 10:06:06 I've thought about it. 2022-10-24 10:06:30 actual tests might make more sense though 2022-10-24 10:06:34 But as eris noted, words that have non-determinate effects throw a wrench into it. 2022-10-24 10:06:40 Factor does look at the comments, iirc 2022-10-24 10:06:51 I'm sure there are some systems out there that do. 2022-10-24 10:06:57 But I don't like this tendancy to make a new forth for every idea 2022-10-24 10:07:09 Not good for lib ecosystem :( 2022-10-24 10:07:28 So would be nice with something that's either fully compatible with forth, or transpiles down to forth 2022-10-24 10:07:44 I'm not a fan of lib ecosystems. 2022-10-24 10:07:45 Maybe something more akin to Flow from facebook 2022-10-24 10:07:53 KipIngram: no? o0 x) 2022-10-24 10:08:01 you could autogenerate tests from them 2022-10-24 10:08:01 Well, that's overstated. 2022-10-24 10:08:11 I think they get over-relied on. 2022-10-24 10:08:21 (also, certain forths do check the comments) 2022-10-24 10:08:26 But kinda necessary for a lang to grow. Or even be used. 2022-10-24 10:08:26 I think people wind up doing backflips to make some available library applicable. 2022-10-24 10:08:28 though, if you need to check stack effect comments 2022-10-24 10:08:39 I think used wisely they're great. 2022-10-24 10:08:41 you're writing code wrong :) 2022-10-24 10:08:50 i'd also argue that the nondeterministic effects are also an example of misuse 2022-10-24 10:08:55 gotta go, bbl \o 2022-10-24 10:08:57 But take it too far and you wind up with a big bloated pile of glue code. 2022-10-24 10:09:06 C was ever lacking in the library department, but somehow got popular 2022-10-24 10:09:37 I mean, the reason I use Python as much as I do is because of its outstanding package ecosystem. 2022-10-24 10:09:47 So there definitely are advantages. 2022-10-24 10:09:49 See? 2022-10-24 10:10:04 Does Forth even have a central package hub? 2022-10-24 10:10:07 joe9: I have a system that uses files as well as one that uses blocks. Over the last year I've grown to like the blocks a bit more; it's perhaps a bit odd, but (for me) the constraints they impose do help to encourage better factoring and organization 2022-10-24 10:10:10 but then someone pulls leftpad and all the javascript jank go boom 2022-10-24 10:10:21 But I still think there's a tendency to "reach too far" with it. 2022-10-24 10:11:01 olle: for ans systems, there's https://theforth.net/packages 2022-10-24 10:11:03 I guess I'll put it this way. I think a lot of software gets written by people who wouldn't be able to write it if they had to implement their core functions themselves. 2022-10-24 10:11:12 And I think that lack of understanding of the details is a negative. 2022-10-24 10:11:31 so 2022-10-24 10:11:31 forth does not have a single language 2022-10-24 10:11:40 no 2022-10-24 10:11:48 I think a programmer should know what his code is doing, and sometimes reliance on libraries blocks that. 2022-10-24 10:12:29 ^ 2022-10-24 10:13:21 I think Chuck's main objection to the standard was that it tends to say "this is what Forth is" instead of encouraging people to adapt Forth to their needs in an optimal way. 2022-10-24 10:14:04 there's probably more who can make a hash of forth than follow the chuckwagon 2022-10-24 10:14:47 That probably applies to almost everything in the world. 2022-10-24 10:14:58 You don't want to see the first Forth I ever wrote. 2022-10-24 10:15:05 Or... you might; you might get a laugh from it. 2022-10-24 10:16:07 I don't even really remember it - this was nearly 40 years ago. But I remember being shocked at how "wrong" it was, when I learned how Forth really works on the inside. 2022-10-24 10:16:24 How amazingly simpler it could have been. 2022-10-24 10:21:37 < KipIngram> That probably applies to almost everything in the world. 2022-10-24 10:22:58 I think most programmers feel that way about their first projects. 2022-10-24 10:24:50 I guess that's pretty likely. 2022-10-24 10:25:35 Solid point regarding libraries and frameworks, though. I see this in action with novice "experts" a lot in recent years. 2022-10-24 10:26:15 I feel the field is becoming overrun with Morlocks. 2022-10-24 10:26:59 I also think it's one of those areas where quantity crowds out quality. 2022-10-24 10:27:12 Indeed. 2022-10-24 10:28:30 But I'll also admit to being unpragmatic at times; I'm sometimes guilty of NIH because I want to implement something to really understand it. That's not always a good thing. 2022-10-24 10:30:46 Absolutely agree. I am guilty of that too, but on the other hand there's nothing wrong with doing a project for education's sake. I think it would only be a negative if you've got a stakeholder that's feeling high urgency. 2022-10-24 10:31:07 ACTION nods. 2022-10-24 10:31:37 I've always felt like if you can program something (fairly well), then you do really understand it. 2022-10-24 10:32:35 Ditto. 2022-10-24 10:33:05 Like right recently I've found myself wanting to write some of these astrophotography image processing things for myself, for that very reason. 2022-10-24 10:34:04 Heh, I guess you missed me referring to our conversation a few weeks ago in ##astroimaging earlier today 2022-10-24 10:34:06 There's sort of a barrier to entry, though - before you can start on the "interesting things" you have to first be able to actually get the data into your program in some tidy way. 2022-10-24 10:34:34 crxc, can you share more details on how blocks are helping? What constraints? 2022-10-24 10:34:40 And then get the results back out into something you can look at. 2022-10-24 10:34:46 Right. 2022-10-24 10:35:35 I think the approach most take is to convert data into some uniform format that your program can operate on and display, and then transform the raw data back to whatever it needs to be for a given file format. 2022-10-24 10:35:43 Spatial domain, frequency domain, doesn't matter. 2022-10-24 10:35:55 Step one is munging and massaging data into a processable format. 2022-10-24 10:37:18 joe9: blocks enforce 16 lines of 64 characters. It makes it easy to focus on # 2022-10-24 10:37:34 a single word (or small grouping of short related ones) 2022-10-24 10:37:46 what do you mean by #? 2022-10-24 10:37:55 typo, sorry :( 2022-10-24 10:38:45 I found 1kB blocks a little limiting, and I've generally gone with 4kB blocks, so 64 lines of 64. But I have the same feelings about it; I just can handle a somewhat large chunk of functionality. 2022-10-24 10:39:37 I think it just encourages you to think a little more about how you organize your ideas. 2022-10-24 10:40:05 "larger" 2022-10-24 10:40:35 crcx: Right, I saw that. But why is it so pathetically small? x) 2022-10-24 10:40:47 For a language that has been around for 50 years, I mean 2022-10-24 10:40:52 its a good selectin 2022-10-24 10:40:54 4kb corresponds to page size 2022-10-24 10:41:08 I also think Forth should provide access to the "basic functionality." No harm in it also offering higher levels of abstraction, but the basics should be there. And blocks are how disks actually *work*. 2022-10-24 10:41:14 olle: every implementation is different 2022-10-24 10:41:19 though it fits on the screen less easily :) 2022-10-24 10:41:20 probably a haiku will have a bit more thought put into it than the average paragraph 2022-10-24 10:41:27 crcx: Yeah, sucks, huh 2022-10-24 10:42:20 olle: not really. we share ideas, but build the systems we want to use in whatever way makes most sense to us 2022-10-24 10:42:29 I think you should also be able to see block-read and block-write (or whatever you decide to call them) - those also bypass the buffering system Forth usually provides. 2022-10-24 10:43:32 > But why is it so pathetically small? x) 2022-10-24 10:43:33 is it? 2022-10-24 10:43:38 (my blocks are 4KiB in size, but I only address memory as 32-bit words, so still have a 1024 character limit) 2022-10-24 10:44:23 eris[m]: ~40 entries 2022-10-24 10:44:31 Back then when Chuck did that the basic sector size was 512 bytes, so he was already dealing with two of them. 2022-10-24 10:44:38 These days most disks move bigger pages. 2022-10-24 10:44:43 4kB is common. 2022-10-24 10:45:05 But our latest drives at work have gone to 16kB, to reduce the amount of RAM needed in the logical to physical mapping table. 2022-10-24 10:45:22 Capacity increases have driven up the page size. 2022-10-24 10:45:25 utf-32? 2022-10-24 10:45:33 KipIngram: About programming a lib yourself - you're only as smart as what you can automate (abstract), so the "intelligence of the eco-system" depends on the libs it has 2022-10-24 10:45:42 Na ja 2022-10-24 10:45:44 So really using a "smaller than logical page" block size is a little inefficient. 2022-10-24 10:45:59 Puts you in a position of possibly having to do read-modify-writes. 2022-10-24 10:46:00 eris[m]: it's technically capable of that, though I personally only use 7-bit ASCII encodings 2022-10-24 10:46:02 olle, you do not get forth. Once you do, it makes sense. You have a long way to go. 2022-10-24 10:47:32 encodings? there's more than one 7-bit ASCII encoding? 2022-10-24 10:47:52 Try the POL book by Chuck and the Starting Forth by Brodie, olle. 2022-10-24 10:48:12 joe9: Ye, I have a couple of books on my list :) Thanks 2022-10-24 10:48:13 BUT 2022-10-24 10:48:18 Also Thinking Forth, by Brodie. 2022-10-24 10:48:21 Looking at the example snippet for Factor 2022-10-24 10:48:56 I think Thinking Forth has value for programming in general, not just Forth. 2022-10-24 10:49:16 thinking forth is much less about forth than how to think about programming 2022-10-24 10:49:22 ^ 2022-10-24 10:49:26 Learn Forth and when programming with it. you suddenly feel the programming nirvana when you realize you know everything happening from when the character is read to how it executes. 2022-10-24 10:49:57 That is a high that no other system could give me out there. 2022-10-24 10:50:11 It is a bit like a drug, though. Once you start feeling that way you don't want to give it up. 2022-10-24 10:50:23 It is beautiful when you understand everything. 2022-10-24 10:51:22 KipIngram: yes, it is a drug-like-addiction. No matter what you do, there will be that part of the brain that wants to go to Forth. 2022-10-24 10:51:29 https://concatenative.org/wiki/view/Factor/Features/The%20library 2022-10-24 10:51:52 I do not know Factor. 2022-10-24 10:52:42 thrig: there have been a few minor changes in the control character portion during the early years 2022-10-24 10:53:20 and yet we're stuck with CSV instead of things using those field and other group characters 2022-10-24 10:54:45 unfortunately true 2022-10-24 10:55:39 (granted if you talk to windows gamedevs "ascii" means "cp437" or "anything with text in it") 2022-10-24 10:57:45 idk, kinda feels like a failure on systemic level, to have one forth dialect per person xD 2022-10-24 10:58:49 Or maybe a lib from one system can be used on another? With small modifications 2022-10-24 10:59:49 maybe, or maybe not without porting, say, a bunch of gforth words 2022-10-24 11:00:38 my systems are far enough from ans to require potentially extensive rewriting to bring over code 2022-10-24 11:01:09 olle: Forth doesn't really emphasize the ability to store compiled code and load it into an arbitrary location in RAM. You compile source to get code into memory. 2022-10-24 11:01:35 You could certainly talk about sharing source, but of course if your dialect is different, that could be problematic. 2022-10-24 11:01:49 Hm hm 2022-10-24 11:03:42 The compiler looks word addresses up in the dictionary, and there is no other process that tells anyone where things are. 2022-10-24 11:04:30 All scripting langs have the same situation. You never share compiled code. 2022-10-24 11:05:01 That said, if you load the same system in the same location, there's no reason you can't read in a binary chunk that you compiled earlier, put IT in the same place, and have it work. 2022-10-24 11:05:11 You just have to promise nothing has moved. 2022-10-24 11:06:13 You could potentially invent some intermediate form where you only had to look up external words, and there was a faster way to handle "within the module" references. 2022-10-24 11:06:22 But that doesn't exist as a default given. 2022-10-24 11:09:07 Sharing source works for everyone else, so :) It's fine. 2022-10-24 11:10:40 also forth compile times generally aren't terrible like they are in some languages 2022-10-24 11:11:43 Yes. 2022-10-24 11:13:45 Compared to Ruby and PHP? :) 2022-10-24 11:15:29 C++ or Rust are typical examples of "lol wtf?" compile times 2022-10-24 11:21:41 anyone has practical experience with Forth Inc or any of Chuck Moore's projects in those days? Why did Forth not get much traction? Just curious of any customer experiences using Forth.. 2022-10-24 11:22:34 It is easy to get into an echo chamber with the content on the internet these days. Just want to hear some dissenting practical experiences.. 2022-10-24 11:43:48 I'm guessing Forth doesn't scale that well on an enterprise scale? 2022-10-24 11:44:03 Else, try ask on the reddit forth forum joe9 2022-10-24 11:52:29 does "enterprise scale" mean "lots of so-so Java coders who need something like Java or Go to keep them from making to bad a mess" ? 2022-10-24 11:59:37 There are only a certain amount of super-star devs available on the market :) You have to be able to hire intermediate devs too, and have them to be productive. 2022-10-24 12:00:33 that is enterprise scale yes 2022-10-24 12:08:22 So if you have a language that's dangerous in unskilled hands, you have to spend a lot of money on dev salary. 2022-10-24 12:08:38 Compare to a language with lots of security features built in 2022-10-24 12:13:14 Like GC - the killer feature of last century. :) 2022-10-24 17:44:02 All of those features cost. 2022-10-24 17:45:59 The idea that arranging for less competent people to be able to do the work will result in improvements just does not compute with me. 2022-10-24 17:46:45 it's not so much improvements as to churn out acres of code 2022-10-24 17:47:15 Yes, I know. The acres that are needed to support the bloated infrastructure that makes the whole thing float. 2022-10-24 17:47:54 I have a very poor opinion of the modern software industry. 2022-10-24 17:48:28 As I've said before, if any other industry you can think of had the quality record of the software industry, the world just wouldn't stand for it. Say, the airline industry, or the automotive industry. 2022-10-24 17:49:05 The software industry can change its product after they've sold it. And they use that as a massive crutch to excuse poor quality. 2022-10-24 17:52:05 it used to be that once burned on cds or dvds that was it 2022-10-24 17:52:47 or even floppies, Ultima V didn't let you save in dungeons as Lord British didn't have time to work that out 2022-10-24 17:56:41 thrig: that was actually common practice from 16 bit consoles era 2022-10-24 17:57:07 smaller saves because less things to keep track of 2022-10-24 18:00:29 actually an issue for Zelda: Breath of the Wild hence the red moon 2022-10-24 18:00:37 in game that is. 2022-10-24 18:04:21 i dont really buy the argument of modern software being so much more terrible 2022-10-24 18:04:52 no one as a manager is ever going to put any time into getting something from 100ms down to 10ms or 1ms for anything if it's just too fast for a human to know or care 2022-10-24 18:05:26 there is an enormous amount of optimizing to be done in most things and most that would not be noticed or appreciated if someone took the time to do it 2022-10-24 18:05:29 mechatronics and areospace care 2022-10-24 18:05:41 sure. sometimes 100ms is too long 2022-10-24 18:05:55 but when it isnt, it makes no sense to put time and effort into making it faster 2022-10-24 18:05:57 plus if you optimize you could use a cheaper mcu 2022-10-24 18:06:07 faster/smaller/whatever 2022-10-24 18:06:11 for other things that is 2022-10-24 18:06:19 mrmobius: IT ADDS UP 2022-10-24 18:06:33 every single one of those delays is cumulative 2022-10-24 18:06:43 it's not that oh, my routine is a bit slow 2022-10-24 18:07:02 yes they are cumulative so when it gets too slow, target the biggest or easiest to solve delay and stop optimizing when it's fast enough 2022-10-24 18:07:08 and leave the rest unoptimized 2022-10-24 18:07:09 its that oh, my routine is built on a slow routine built on a slow routine built on a slow routine built on a slow routine built on a slow routine 2022-10-24 18:07:12 sure! 2022-10-24 18:07:16 but they dont bloody do that 2022-10-24 18:07:33 and thats why modern software is the way it is 2022-10-24 18:07:45 you get this accumulation of silt 2022-10-24 18:07:59 each layer hardens underneath you as its added 2022-10-24 18:08:22 here's how to make your react routine faster! 2022-10-24 18:08:27 has all the layers of silt underneath it 2022-10-24 18:08:45 people put these delays into their baseline system 2022-10-24 18:09:02 oh, it's just a web browser issue, nothing we can do to fix it 2022-10-24 18:09:11 but who cares if the final product is plenty fast enough? 2022-10-24 18:09:13 oh, it's just a linux issue, nothing we can do to fix it 2022-10-24 18:09:16 but it isnt 2022-10-24 18:09:19 it never is 2022-10-24 18:09:32 maybe "fast enough" is a matter of opinion then 2022-10-24 18:09:39 it's a matter of money