thanks for the responses (it's really nice to be able to say something obut a prograrmming language and not get a religious flame war started). i don't care much (at all, actually) about Mathematica but i am a major WL enthusiast (i view myself as a WL evangelist) becuase it is the ONLY programming language that i know of that allows you to implement your ideas as code directly without having to accomodate the inheresnt limitations of a computer (i consider having to express what one want to compute in terms of what the computer can understand rather than in the way you you think as a form of 'special ed' which while i understand its value with people, i'll be damned if i'll spend my time doing it for a computer.
note: i'm in the process of writing a 'philosophy of scientific methodology' article on why WL is the ONLY appropriate language for technical or scientific, or computational, work (i don't know where i'll publish it but i'll post it here in the community if the moderators will let me - it's going to be a bit longer than most of the postings here). it is utterly ridiculous and totally unacceptable for people to have to accomodate the needs and the limits of a computer just because they're using a computer - only hackers should want to or have to care about the computer (i am a major a-v enthusiast - i watch about 500 movies a year - and i'm on my 13th home theartre since the 70's and i don't care out or want to know about a-v technology - though i do know a great deal about video technology - i want to watch movies and not even have to think about the technology behind it.
just as an example, check out the very interesting unpublished manuscript by richard fatemann (a long-standing Mathematica detractor)
http://www.cs.berkeley.edu/~fateman/papers/cashort.pdf
and compare the code he wrote in LISP and the WL code i wrote and the 'more efficient' WL code written be unidentified person. i can say that if i was required to write programs in LISP the way richard does in his mansucript, i'd just abandon the work entrely - i have a lot better things to do with my limited time. and as for the two WL programs in the manuscript, i understand what's being done with the more efficient version (now that i understand more about Compile thanks to responses i've received in the community here) but i would argue that my version is much better if one wants to focus on the model. i don't think people who use computers for doing something should even have to use Compile or Parallelize - that should be be done automatically by the programming language so they can focus on the science. it's up to SW's programming people to incorporate this into the language (they should also optimize the speed of pattern-matching because that is IMO the MOST significant feature of WL (along with nested function calls not needing temporary state variables) becuase that's the way humans think. the he.. with the way computers 'think'. i couldn't care less about that. and just as final commnet, i absolutely hate the code used in the Demos. that is all low-level stuff and we shouldn't have to be bothered to write it. i want to be able to write what i call the warpper around a program to make it into a Demo in a single command (just as i want WL to decide what is th best way to do a sort operation - i just want to use "Sort' and not have to decide about whether i should use bubble sort or merge sort or whatever other kind of sort procedure. i want my language to choose thec best sort procedure.