HNHacker News
TopNewBestAskShowJobs

SpindleyQ

12 karma · joined April 22, 2009

submissionscomments
SpindleyQ··on What the hell is Forth? (2019)
Author here. I didn't have a decent Forth environment, I had a weird mess that I built myself from scratch. I ended up implementing a lot of "sophisticated" features - coroutines, cooperative multitasking, an interactive debugger - but I was never annoyed enough by the lack of locals to seriously contemplate spending the effort to build them, so I just didn't.
SpindleyQ··on What the hell is Forth? (2019)
Blog author here, in 2020 I released a DOS game built completely in my own Forth system. Fully open source and hackable. https://spindleyq.itch.io/neut-tower

The coolest application of the Forth philosophy in that project was actually building tools that integrate directly with the engine, imo. I built a map and tile editor directly into the game for quickly iterating on art and level design, and at one point even added a slide presentation engine for giving talks with that had live demos integrated directly into slides. The eureka moment was when I added map editing and realized that I didn't need to write a fancy GUI just for saving and loading maps, because I had a live Forth console running over the serial port. As soon as I'd written the save/load routines they were immediately, directly usable.

Death Road to Canada is another game I'm aware of that is written in Forth, for more modern platforms.

SpindleyQ··on Charles Simonyi on Intentional Software Joining Microsoft
You still need to name concepts. Hungarian notation is actually as much about communication as it is about code.

You'll get a lot of the benefits simply by being really disciplined about being consistent and precise with how you refer to things. What Hungarian does is force you to out of necessity.

SpindleyQ··on Charles Simonyi on Intentional Software Joining Microsoft
This is true. We used Hungarian Notation internally extensively. The most counterintuitive thing is that having a cryptic name for a concept can have advantages: it has a precise meaning, and if you don't know what it is, you can't convince yourself that you do. If there's a class in my code called, I don't know, "View", that's going to give me clues as to what it is, but it may also mislead me into thinking it should support certain operations that it doesn't, or that we're talking about a UI view when actually it's referring to a database view, or whatever. If you just string together a handful of random letters, at least when communicating with someone else you know you're talking about the same thing, and you'll use the same name consistently.

Not a good idea for code that you want people to be able to use without gaining a deep understanding of, but for collaborating on inventing new things, it's a very effective communication hack.

SpindleyQ··on Charles Simonyi on Intentional Software Joining Microsoft
That's the DSL DevCon demo, video here: https://channel9.msdn.com/Series/DSL-DevCon-2009/Intentional...

Best demo we ever gave while I was there, by a longshot.

SpindleyQ··on Charles Simonyi on Intentional Software Joining Microsoft
I worked at Intentsoft in its earlier days (2006-2011) and left just as it was really starting to seriously staff up. I look at the pictures of the office these days and it's so surreal to me to see the absurd growth of what had stayed a small team for a really long time.

Is the Pole Position cabinet still there? Did anyone ever fix the monitor? I miss that thing.