Earlier quoted context omitted.
I work in the fast food industry, don't code, and I'm not even particularly interested in tech, but spend hours reading the articles and comments here.
I was a network engineer and would do the same, can't place the exact reason why, but today i am a python programmer doing network automation. I do think HN had a major part to play in this change
Chuck Moore, Extreme Programmer
151–160 of 186 posts
Re: Chuck Moore, Extreme Programmer
#152I want to take a moment to reflect on what a great community HN has. It never ceases to amaze me. The link is from the CS department at the University of Northern Iowa in Cedar Falls, IA. It sounds obscure, but that's my hometown. I grew up a couple blocks away from it. I sat in on classes there. I even know the author's family. That's small town Iowa, for ya. I never thought I would see anything related to that on h…
Re: Chuck Moore, Extreme Programmer
#153Earlier quoted context omitted.
It's called factoring with subroutines, and Forth hasn't cornered the market on anything by calling them words.
No, but Forth provided one of the nicest, most immediate, and interactive environments to explore a problem. Instead of multiple files in a text editor, you build and test your app live and then dump it all to a text file. I have rarely had that experience with any other language except Smalltalk. I understand some Lisp environments act that way, but Forth was available places Lisp and Smalltalk were not.
Re: Chuck Moore, Extreme Programmer
#154Earlier quoted context omitted.
>Again, small town Iowa is very different from elsewhere in the country. It's not what you would expect on a site focused on tech where most probably hail from coastal urban or suburban enclaves. He lives outside of a town of 40k, it's not particularly small. For reference I grew up in a town of 6k- I'm not trying to play small-town olympics here but he's hardly from the boonies. The University of Iowa is there... >O…
I don't think I've ever met anyone from Iowa. Most people on this site are probably from the coasts. So I would consider it an example of diversity.
You're really grabbing on to physical location to justify ignoring the fact that that person is perfectly representative of most of the folks here.
Re: Chuck Moore, Extreme Programmer
#155Earlier quoted context omitted.
I've written a standalone Forth system that could boot from a floppy and recompile itself. I've ported the core interpreter to C so I could use libraries. I've rewritten it using various threading techniques. Up to that point it was just toy systems because i never did something useful with those. Then I rewrote a Forth interpreter than would play really nice with C. That thing right now is around 30k/3KSLOC. This ti…
Doesn't your latter post contradict your previous post? If Forth is not powerful how did you manage to do such things with Forth, and why did you stay so long with Forth despite its "ugliness" and "meanness"?
"ugly, stupid and mean" is actually intended to the beginners or to those who want to try it. That's what most systems are out-of-the box, especially for the minimal ones (bigger systems like gForth might be a bit better).
That's their starting point. R> and R> are hideous so at one point they'll want to replace them with "pop" and "push". Stack juggling looks bad so they'll have to learn to minimize them. And they'll have to get used to RPN. There's no GC and not even heap allocation (unless ANSI-Forth added it as an extension since the last time I checked?), so they'll have to deal with the lack of memory management that are in every other high-level language. There's neither static nor dynamic type checking so they won't get any warning if they dereference a character. Instead, it will crash again and again without any stack trace.
So they'll have to deal with all this ugliness, stupidity and hostility that they won't expect "enough" because Forth fans praise it often without a warning about the fact that it takes a really long time to fully tame such a rabid language.
Why did I stick with Forth for so long? I made it progressively more beautiful for me; I learned to fight complexity and factor, which indirectly prevents mistakes; I implemented warnings in my system for mistakes that are hard to find (e.g. a redefinition) and are easy to check for.
Re: Chuck Moore, Extreme Programmer
#156Earlier quoted context omitted.
Doesn't your latter post contradict your previous post? If Forth is not powerful how did you manage to do such things with Forth, and why did you stay so long with Forth despite its "ugliness" and "meanness"?
"powerful" too often means "it does things I don't really need or that I don't even understand; but hey, I might use them someday" - or at least that's how it sounds to me. "ugly, stupid and mean" is actually intended to the beginners or to those who want to try it. That's what most systems are out-of-the box, especially for the minimal ones (bigger systems like gForth might be a bit better). That's their starting po…
When I encountered Forth first (6502 figForth) I felt it quite convenient. At that time there were only two other options - Basic and Assembler. Maybe that most developers today are too pampared by all the available IDEs for other languages. It's the same attitude why so many people stick with Windows instead of learning OSX or Linux, despite all the flaws of the Windows ecosystem.
> lack of memory management that are in every other high-level language
As already mentioned, I consider Forth suitable for tiny systems, iOT, Firmware etc. I would never use Forth for big software. I would not use even C++ for that. In that area Ada, Rust or Nim works much better for me.
Re: Chuck Moore, Extreme Programmer
#157Earlier quoted context omitted.
I don't think I've ever met anyone from Iowa. Most people on this site are probably from the coasts. So I would consider it an example of diversity.
What ethnic / socioeconomic background are most people here from? You're really grabbing on to physical location to justify ignoring the fact that that person is perfectly representative of most of the folks here.
See? We can both play these games.
Re: Chuck Moore, Extreme Programmer
#158Earlier quoted context omitted.
It's pretty close to rural. 40K citizens and corn fields a mile or so from campus. Not sure what your overarching point is though--what's wrong with remarking on the improbability of a submission from a tiny university in Iowa?
I grew up in a town of 6k and we were the big one in 20 miles. 40k is suburban IMO. Edit- and I was ridiculing the idea that the mention of a wealthy, homogenous suburb indicates how inclusive this community is. Pretty much every story here deals with things from a young, white, wealthy perspective.
Re: Chuck Moore, Extreme Programmer
#159Earlier quoted context omitted.
No, but Forth provided one of the nicest, most immediate, and interactive environments to explore a problem. Instead of multiple files in a text editor, you build and test your app live and then dump it all to a text file. I have rarely had that experience with any other language except Smalltalk. I understand some Lisp environments act that way, but Forth was available places Lisp and Smalltalk were not.
Developing on the target is just so last century. Now that programmers have developed the IDE you'll have to pull them from their cold dead hands.
Whats up with mocking everyone you reply to on this thread?
Re: Chuck Moore, Extreme Programmer
#160Earlier quoted context omitted.
And here's why that matters. Below is the complete source of a Forth block editor. This editor is more than sufficient to write an OS with, although of course emacs or vim would be better. That is pretty awesome. Forth is a language in which it's realistic for each programmer to have his own custom editor. That's even more awesome. | RetroForth Block Editor (http://www.retroforth.org) | * Released into the public dom…
> : right# negate 32 + . ; This is an example of "ugly" Forth code. It's ok here to make the code as short as possible. In reality I would write (educational) Forth code this way. The texts in parentheses are comments. ( compute Hypotenuse sqrt[a²+b²] ) : hypo ( a b ) swap ( b a ) dup * ( b a² ) swap ( a² b ) dup * ( a² b² ) + ( a²+b² ) sqrt ( result ) ; ( Application: 1.2 3.4 hypo )