Unicon

Panacea
Or, The Way To World Peace


Some time ago I was overcome with revulsion. Revulsion for Perl, that is. Using perl is something like picking at a scab - you know it's bad for you and it's going to hurt, but you just can't stop. Sure, you can (usually) get what you need done, but will you respect yourself in the morning? Variable names like $| and $[. Syntax from hell. And some mind-boggling absurdities: in Perl %foo and $foo are different things, but when you say $foo{bar} you are actually referring to %foo. Parentheses around expressions are significant. There's the whole quoting mess (string constants don't have to be quoted). Not requiring parentheses around function arguments is hairy -- what happens with functions that take a variable number of arguments that are used in expressions? How do you parse foo(4+5)*8? Yikes! And I'm not sure I even understand filehandles (or dirhandles) after about 4 years of Perl. Hidden variables ($_, @_) suck. It is just about impossible to write Perl code that manipulates complex data structures.

After five years of self-abuse, I decided to stop cursing the darkness and lit a candle. When I was at Arizona I'd been using Icon for string processing and data structure mangling; then Clint Jeffery had added X11 (graphics) support to Icon, and it had become even more fun to play with. If writing Perl code was like hacking through a jungle in sweltering humidity, Icon was the walk through a tranquil mountain meadow. The only problem with Icon was that it didn't have access to the Unix low-level stuff like system calls, select() etc.

Well, no more. I finally made some time and started to implement Unicon, Icon with Unix functions. It is just the best damn language to write fun Unix programs and scripts with, even if I say so myself. Since graphics support is integrated, it is more powerful than Perl and tcl/tk combined. Of course Unicon is free; source and executables are available.

PS: If you use Perl, or are even thinking about it, read about Perl's Seven Deadly Sins and Perl4 gotchas first. Don't take it up just because of all the hype.

***