Perlis Languages
blog.fogus.me
Perlis Languages
1–10 of 36 posts
Re: Perlis Languages
#2Interesting set of languages. I would include a language focused on coroutines and concurrency as well: Erlang, Go, or Stackless Python for example. Many problems change significantly when seen in the light of concurrency.
Re: Perlis Languages
#3I would strongly favor Forth over Joy, but either way concatenative languages are really worth exploring. It seems fair to compare Forth with C, as both deal with hardware and memory rather intimately. Compare a C implementation of a Fisher-Yates shuffle:
void shuffle(int *array, int n) {
int i, j, tmp;
for (i = n - 1; i > 0; i--) {
j = rand_int(i + 1);
tmp = array[j];
array[j] = array[i];
array[i] = tmp;
}
}
With the same algorithm in Forth: : shuffle
1- for
i 1+ random over +
over i +
swap@
next
;
The types, intermediate variables and many of the unnecessary details of the implementation fall away. It's an aesthetic distinction, since we're really trading these for "stack noise" words like over and i, but I find it very pleasing.C is normally considered an extremely simple, lightweight language. I think the main lesson Forth has taught me is that we can design much simpler languages in the same space without sacrificing power and flexibility.
Re: Perlis Languages
#4I think Smalltalk is an other language that's at least fun to explore. Especially if you want to know what OO is really about.
Re: Perlis Languages
#5I think Smalltalk is an other language that's at least fun to explore. Especially if you want to know what OO is really about.
Its successor Self shows even more what OO is really about.
Re: Perlis Languages
#6Re: Perlis Languages
#7PerlisLanguage(Prolog).
Re: Perlis Languages
#8A great set of languages. It's true that languages should be mind-expanding, and for that reason I wish C would be included on principle --- everyone should understand pointers --- but I suppose most people have already seen that (the assembler included may make up for it, too).
I'm rather happy that many of these are "modern" languages: Qi, Oz, Kernel, and similar raise my hopes for the field showing that in the interceding 50 years, we have improved upon Lisp, ML, Prolog, and the like.
Re: Perlis Languages
#9Reading the Eiffel entry, it mentions Design By Contract. This is interesting stuff and I should mention that .NET 4.0 includes Design by Contract in the framework itself.
Re: Perlis Languages
#10Inform7 is a another perlis language. It's designed for writing text adventure games, but the source code is designed to look like a natural english language.