My history with Forth and stack machines (2010)
yosefk.com
yosefk.com
The more things change, the more they stay the same?
Intel optimization reference manual: http://www.intel.com/content/dam/www/public/us/en/documents/...
Agner Fog's Software optimization resources: http://www.agner.org/optimize/
I don't think it starts making sense until the 5th reading or so :).
But on re-reading this for the n'th time I think the lede of this one is in the comments. Like any guru who is selling a "right way of doing," Chuck Moore has always had a business interest in selling snowflake Forth services of some kind. He, and other Forth followers, may well believe the pitch fervently. It is, at least, a relatively self-consistent ideology, and it discards the messy aspect of building any kind of institutional presence. But it also has a kind of dogmatic quality.
My LMDB database engine is the world's smallest/fastest/most reliable full ACID transactional data store. The core of the engine is less than 32KB of x86-64 object code - it can execute entirely within a CPU's L1 instruction cache. It blows away other DB engines that are several times bulkier in size. It's only 6kloc of C. It does what it does precisely by following the Forth philosophy - do what you need, throw everything else away. http://symas.com/mdb/
Efficiency always matters, even today with CPUs whose L2 cache is larger than entire computer systems of 30 years ago. Efficiency always matters because all of these compute resources have a cost - electricity isn't free, and time spent is irreplaceable.
I have other ongoing projects in Forth because it can handle some cases easily that are awkward in other languages. (E.g., an ASN.1 parser for dynamically adding new syntaxes to the OpenLDAP server. Forth is the perfect tool for the job because it's inherently a language designed for extension.)
One would do well I think to explore through old code bases and algorithms for stuff that ran well on those old systems. Because memory is plentiful doesn't mean we need to waste memory bandwidth or cache locality.
* https://news.ycombinator.com/item?id=1680149
* https://news.ycombinator.com/item?id=8146306
* https://news.ycombinator.com/item?id=3963896
* https://news.ycombinator.com/item?id=2985601
* [a handful of zero-comment and one-comment reposts I've elided]
This is a very popular repost—as it should be, because it's a very good and well-thought-out article, and a surprisingly well-reasoned and well-written example of the "meditation on a programming language" genre of blog post—and each of the past comment threads is also worth consulting.
http://github.com/lawless-m/North
Stack based is fun.
It's quirky but extremely elegant.
Either its time has long gone or its time hasn't come yet, hard to decide which.
I know. But I feel that it still has not reached anywhere near its potential and I'm not sure if it ever will.
First time I worked with it was in the 1980's, I've been only an observer since then but the bug never left me. It's a language for the equivalent of software jewelers.
Quite an achievement for that little not popular enough language
http://www.reddit.com/r/tinycode/comments/2rzuwp/da_here_h_2...
http://www.reddit.com/r/Forth/comments/2s0g4a/da_here_h_2_h_...
I think there is an opening again for Forth in the Internet of Things. That's many low-power (and thus) small computers.