[Date Index] [Thread Index] [Author Index]
Re: Mathematica as a programming language.
In article <4euo82$nph at dragonfly.wri.com>, Phil Perucci <pperucci at access.digex.net> wrote: >It seems the elegance of language is inversely proportional to its power. > >Mathematica and Oracle's PL/SQL are two of the screwiest languages I have >ever used (ESPECIALLY MATHEMATICA), yet they are the easiest tools for >"getting the job done". Well, I hope we don't start a religious war over this, but I strongly disagree. All of the seemingly diverse features of the language are really manifestations of only a handful of very powerful primitive concepts. The most general of these is pattern matching and rule substitution. If what you're referring to is the plethora of built-in functions, keep in mind that, for the most part, they aren't intrinsic to the language. You could implement the vast majority of Mathematica functions (even things that seem like primitives, such as Map and Apply) using pattern matching and rule subsitution. There are really only a few "magic cookies" in the language (like Sequence, Evaluate, Unevaluated, and certain attributes), and most users aren't aware of them anyway. Mathematica is the easiest tool for "getting the job done" precisely because it has so many built-in high-level functions. Would it be a better language if you had to implement all of these from scratch? I don't think so. If you find the kitchen-sink approach distracting, just ignore everything you don't need. There's also a lot of special syntax, but again, you could ignore all that if you wanted to and enter every expression in its FullForm. The situation is somewhat analogous to command-driven text editors like vi and (especially) emacs. In theory, you can do any kind of text editing using only the cursor keys, the text-entry keys, and the delete key. But people who spend a lot of time with these tools appreciate all of the shortcuts that they offer. People who don't spend as much time with them don't have to learn all of the shortcuts. Dave Wagner Principia Consulting (303) 786-8371 dbwagner at princon.com http://www.princon.com/princon