On 28 Aug 2001 10:20:20 +0900, Stephen White wrote: > On 28 Aug 2001 07:57:31 +0900, Sean Middleditch wrote: > > Oh. ::sigh:: another language added to the growing stack of languages I > > need/want to learn now. Was Algol that highly used of a language? I've > > not heard much about it. > > It's more valuable to learn families of languages than specific > languages. If you choose to learn something Algol family of languages, > you'll have a fair idea of what Algol's about. Studying specific > languages within the family is more useful for seeing implementation > tradeoffs and the effects of emphasising one facet over another. > Understood. I am attempting to write a small language, though - learning implementations and such is quite a bit useful to me. ^,^ > The most valuable language I ever learned, even though I can hardly > write a loop in it these days, was Forth. It's truly amazing to see so > much done with so little - highlighting the power of introspection and > direct access to language internals. The power of "DOES>" is truly > phenomonal - allowing the programmer to switch between compilation and > interpretation in mid-stream. > Wow. I'm feeling denser every e-mail on this topic I get. I don't think I've ever even heard of Froth. At least Algol I'd heard of. > This is how the Forth word ." (to print a string) was implemented - > the interpreter sees ." , then starts feeding raw program code > directly to the program itself. The ." word happens, in this > instance, to just output everything it gets until another " is reached. > There's nothing to stop this string from being parsed any other way, so > each command could have custom syntaxes as parameters. The language > could be, and was, written in itself, outputting direct to bytecode > while the programmer typed - there was no interpretation or compilation > pass. There has never been a simpler and more elegant implemetation of > eval than this! > That certainly is interesting, but I see a few problems arising... > This flexibility came at a price - the more this facility was used, the > harder it is for someone else to pick up the code and understand what's > happening. This, I think, was the nail in Forth's coffin (along with its > RPN)- but what a coffin! It occurs to me that writing for a Forth stack > machine, with an embedded Forth language to create more machine on > demand, could be more interesting than the current bytecode machine. > There's no speed issue either, as Forth machines are blindingly fast. > Oh, and look, there the problems are. ^,^ Hardware for running Froth? You know, sometimes I *hate* having been born so late. > Back to the topic... My list of languages to know: > > An early assembler designed for human programmers (eg, one of: Z80, > 6502, 68030, VL80C010) to understand CPUs > C for compatibility with other programmers, and to see how higher > level abstractions can layer over the top of assembler > Forth to see how a more complex machine model (stacks instead of > registers) leads to far greater flexibility. > Ruby for a human oriented language that a computer can handle. > Just 4, hmm? ^,^ I'm not sure what my list would look like if I put it together, but I know it'd be bigger than that. Why, I don't know. half the language I've bothered to learn I never use. I should try putting together a list like that, of languages I would recommend, then individually analyze each item on the list and determine why I added it, and if it should stay. No, maybe I shouldn't, because then I'd likely realize how many days of my life I spent learning useless languages. ^,^ > Then a few other ones to a lesser degree, eg, "sh" for its concept of > piping and building quite interesting little scripts by joining programs > together, Prolog to find out how many times you can throw up in a row > without fainting, BASIC for the crack cocaine of languages, Logo to see > the program itself in a graphical manner, and so on. > Logo? > What's nice about Ruby is that it takes more of the best while remaining > conceptually small. It doesn't have all of them, but perhaps the use of > one great feature would make it more difficult to use the other great > features... > Yes, I definitely like Ruby. Again, though, I just wish I wasn't so set in C/C++. I keep trying to do things "the wrong way" in Ruby. > Now I think I'll go off and play with writing Forth in Ruby. :) > >