Etc Language

The Etc (pronounced 'etzee') language was developed by Carlo van Bussum. It is seen by most as a (far) descendant of APL. It enables programming in 'adhesive oriented style', and has non-deterministic generator constructs. With a rich set of built in operators for transclusive domain theory and inductive generalization, it enables programmers to quickly implement complicated systems.

In the next release of etc, currently under development and expected in early 2003, etc will support non-trivial multidimensional temporal translations.

Why 'etzee', which is counter-intuitive, rather than 'et-see'? Also, which syllable has greater emphasis?

Etzee as Carlo is Dutch and didn't know it was really et-see. The z stuck. Also it's easier to google for, but that's only an accidental benefit.

'etc' is most commonly compared to APL and descendants, but has also been called a 'Pascal on steroids' [Wasn't that ADA?]. While its Pascal heritage is hard to detect at first, once seen, beginners can start writing significant code in it very quickly.

'etc' was created in 1996 and has already gained a devoted following.

I think etc is the cat's meow, but I don't think it's so very readable.

Try it for a little while, it will grow on you. -- CarloVanBussum

I like etc myself, even though I don't really understand transclusive domain theory so I'm probably missing half of it. -- MartijnFaassen

A web server in etc:

Hello world:

What is 'Good afternoon world'?

Good afternoon world:
An example of adhesive style:

Mandelbrot set, in recursive feel:

Julia (at one point):

Dimensional Fold with trick sort:

Reading comma-separated text:

Wow, I'm impressed.

I don't believe it. I think this language is a joke.

Think what you like. :) -- CarloVanBussum

The use of the common term, "etc", as the name of a programming language hardly helps one locate references to it using search engines. If the bizarre examples are for real, a brief explanation is required or links/references to an intro.

It would be, if it weren't a silly joke. :)

Here is more information:

How many wikis is this stuff on?

Seems like a relative of HqNinePlusLanguage

No, not really. HQ9+ is a small, esoteric language. It's not even Turing-complete. Etc is quite real, and can be actually used for real-world applications.

This language doesn't exist and neither does CarloVanBussum. This is WikiPollution?. Deliberately putting false information on wiki is an annoying thing to do which wastes people's time. I'm tempted to just delete the page but it's probably better to keep this page so that when this HoaxLanguage propagates to other wikis/forums people can quickly discover that it's a lie.

So where were the torches and pitchforks when O'Reilly put out the Parrot gag?

Context matters. O'Reilly put out their original articles about ParrotHoax? on April 1st and the truth was published shortly afterwards so that there was little possibility of confusion. So ParrotHoax? was an April Fool's Joke and was accepted as such. What is the rationale behind the EtcLanguageHoax??

I wouldn't consider this to be a hoax or a lie, meaning some sort of intentional deception. ParrotLanguage looked at least a little plausible, but people who read stuff like "adhesive oriented style", "non-deterministic generator constructs", "transclusive domain theory", and "inductive generalization" without any sense of irony need to get their heads out of the clouds (or whatever places their heads are in).

Or perhaps some of us have grown too used to reading academic papers on programming language research that are always filled with weird and wonderful concepts that you have to look up. LambdaTheUltimate weblog and CiteSeer filled with stuff like that and I find looking up the bits I don't understand to be most educational. I don't know everything so when I read phrases like "transclusive domain theory" I say "wonder what that is?" and try to find out more info. I suppose that I tend to assume honesty rather than irony.

It wasn't intended as a hoax; it was just silly playfulness that got a bit out of hand. I read LambdaTheUltimate and CiteSeer too, and I was having fun coming up with this spoof (initially on #python on IRC). Of course, part of a spoof is also that it is almost plausible in places. Does such a spoof teach us anything useful about programming or programmers? Perhaps it shines a bit of light on some aspects of our community. -- MartijnFaassen

Sorry if I offended anyone. Is silliness about programming OffTopic? -- MartijnFaassen

I liked it. I don't consider programming-related silliness OffTopic, as long as it doesn't go overboard, and I don't think this did. The people who fell for it may be upset now, but don't let that bother you: it's a sign of success. It's amazing how bent-out-of-shape people will get about one little page that they don't understand. -- KrisJohnson

I must say I had a good laugh reading the tutorial. Having messed with InterCal a bit, Etc almost sounded real at first. And CarloVanBussum sounded way too silly (any MoinMoin developer/user should get it) -- ManuelLanctot

AHA! I get it! -- StevenNewton

I was half-fooled until I saw the tutorials. If only I'd known who GuidoVanRossum was.

O, I think I understand almost how it works, but each word represents something predefined. For example "X" is an object that represents whatever a "Hello World" program is supposed to do. But I don't think that is useful, or you might need to make objects using something else, I am not sure.

Here is my example of what the shortest HTTP server program in a programming language is:

 # Here is a web server in InterQest?:

cfg=-c"iqhttpd.conf" -s:net{ inst=-i[port=cfg[port]]{ -e{ ?recvdata{ a|[%1] ?a_=_[13,10,13,10]{ b=strg[a,"GET ",...," HTTP/"] inst/send["200 OK"13 10 cfg[b]] -X[inst] } } } } }
It is obvious from inspection that this "InterQest?" thingie is a programmable web server, not a programming language, which perhaps is the point: if the functionality of example programs is built-in to the language, then the program can be arbitrarily short.

That's not very funny, but IMHO neither is EtcLanguage.

Not exactly; actually, InterQest? is not a real programming language (yet) (I might make it up later). It's just that it has a few built-in objects, such as net (like a WinSock control in Visual Basic), and -c is a wormfunction which means configuration file. Configuration files ar do very much (!), and it has shortcut-operators, and -s means make a server, recvdata is an event of an instance of a net server, -X closes an instance, | is a shortcut to add data to a list, _=_ means "contains", strg is a function. Of course, this web-server program will not return 404 errors; it will just post it to the InterQest? error file, but add a few more lines and it should be easy to fix it. The configuration file "iqhttpd.conf" might be a format like:

Yes, yes, I inferred all of that after thinking about the notation you wrote for a couple of minutes. That doesn't contradict what I said, I don't think. The point is that very large chunks of functionality are specified by just a few short character sequences, but the functionality isn't general purpose, it's all concerning web servers.

I could imagine that it would be useful, by the way, but that's a different question.

What is the extension for an Etc program, and Is it Dot Netable? 20040401
Is there a main page for it? Where can it by downloaded? None of the links above seem to point to it and google does not work as "etc" is too common.
Will there be a CD issued with the book, and when will Carl be finished?

EtcLanguage scores low on readability, but at least it's an improvement over PerlLanguage.


You're crazy! Take the above Etc example:

This is much more clearly expressed in Perl (although not quite as tersely):


HoaxLanguage CategoryJoke

EditText of this page (last edited November 16, 2005) or FindPage with title or text search