these_things_are_real_i_do_not_make_them_up.png
Notices where this attachment appears
-
@m0xee @realman543 @iska
> they are now "meme" languages,
Well, you say this, but I wrote an ad-hoc assembler in a Forth a couple of years ago because it was faster to fire up a Forth and look at a chart and emit the instructions I needed than to track down an assembler that would handle the weird shit I was doing and also run on my machine and then get it to compile. 30 minutes: program's done, blob's produced, anyone else would still be stumbling through search results and reading the README in someone's Github repo to see if it even targets the right chip. It's wonderfully expressive, the code comes out compact and readable, and if you're doing a "real" Forth on a small system, you can save a lot of memory: 40 or 50 bytes of opcodes turns into three two-byte addresses.
All the way on the opposite side from bitbanging on tiny machines, I have embedded stack-based languages in applications to use as DSLs for scripting. One of these was just internally facing, but it cut the length of most of the endpoints to two lines, one to extract/escape the user-supplied parameters and one to invoke the little runtime with the generated program and get the results out.
It's not even rocket-surgery stuff, it's easy stuff to do if you've done it once, but if you think it's a meme, you won't try it the first time and it's a tool you'll never have.
Same goes for Lisp; I've used it less often but it's a nice language. (Lisp-1s like Scheme, anyway; I don't like the separate function namespace stuff CL does.) I wouldn't wanna use Lisp as an entire environment if I could use Forth, but it'd be serviceable.
...Not on Itanium.
these_things_are_real_i_do_not_make_them_up.png