>>33
Actually, the Windows NT kernel and user interface is coded in C. It's a fairly complex interface as it tries to be feature-full, so functions with a dozen or more arguments are not uncommon. In most cases people would only need to specify only a few of them, while leaving the rest NULL. In rarer cases you would need to specify most of them. In Lisp, you could just use keyword arguments and specify only those that you need, while leaving the rest unspecified and the compiler would have added code handling these keyword/optional/rest arguments as needed. OO languages like Java have a similar problem, where they try to solve this defficiency by using overloads, but that just makes the user write a lot of boilerplate code. *nix evades the problem by just keeping the argument lists as simple as possible, while sacrificing functionality(Worse is Better), but that isn't the solution to the problem, it's just running away from it.