It helps to understand right from the start the spirit of the MUF design and implementation.
MUF is not intended to be a maximum-machine-efficiency programing language like C or ForTran, nor a maximum-sophistication language like Lisp or Haskell, nor a maximum-reliability language like Eiffel or Ada.
Rather, MUF is intended to be a simple, predictable language in which novices and experienced programmers alike may interactively perform little programming tasks on Muq.
By itself this makes MUF neither better nor worse than other programming languages. Different tasks and different audiences call for different designs, in the computer world no less than in other areas of engineering.
The spirit of MUF calls for providing simple tools which allow solving simple tasks with an absolute minimum of syntactic clutter and busywork, while providing facilities sufficient for solving more complex tasks when needed.
Simple things should be simple, complex things should be possible. -- Alan Kay (creator of Dynabook, Smalltalk...)
As a quick illustration of the spirit of muf, here is the simple function hw printing out "Hello world!" in various languages:
MUF: : hw "Hello world!\n" , ; C: void hw(void) { puts("Hello world!\n"); } PASCAL: procedure hw begin writeln('Hello world!') end; LISP: (defun hw () (format t "Hello world!~%"))
As you can see, as a simple notation for doing simple tasks, MUF compares quite nicely with the competition.
Go to the first, previous, next, last section, table of contents.