Re: Some Questions
> 1) Could someone give me a list of the
> common languages (C, Asm, Basic, etc.)
> sorted by speed?
This is a dumb question for a number of reasons :). The languages really vary in how much optimization is left to the programmer; in asm, all optimization is left to the programmer, since there's no automated optimizer. C and C++ are both optimized by the compiler and have provisions for overriding these optimizations (most of which aren't very good). A language like Java has a JVM which basically sits there and optimizes your program for you while it's running (among other things), so the programmer doesn't really have any optimization to do. This makes programming easy, but if something runs slowly, you have no choice but to change the algorithm.
Interpreted languages are completely different - since there isn't really such thing as optimizing an interpreted program at the language level, it really is the responsibility of the interpreter to keep things running quickly. Oddly enough, most interpreted lanugages (Perl, Python, Ruby, Tcl) all run at very similar, very slow speeds. Since speed-critical code is rarely run in these languages, it isn't a problem.
> 2) Could someone give me a list of the
> common OS's (Linux, Windows, FreeBSD,
> etc.) and in which language they are
All the Unices (Linux, BSD, Solaris, etc.) are written in C, more or less by definition. Small bits of startup code are written in ASM.
NT is, contrary to popular belief, written in C at the kernel level. However, to actually run a program, you need the Win32 interfaces, which are written in C++.
A few mostly-trivial OSs are written in C++. For example, the XOSL bootloader has a built-in kernel written in C++. (It's on my computer, that's the only reason I know about it.) Offhand, I can't think of any others.
Mac OS 9 is a bizarre mix. The bootloader is OpenBoot (interpreted Forth, I think), which starts up the main OS, written in C. But there are still bits of code in there dating to 1984 written in 68000 assembler and Pascal. User programs are in Metrowerks C mostly, but big apps are C++ (like everywhere else).
Mac OS X is an interesting case. Hardware communication on OS X goes through the Mach microkernel, which is written in C and assembler. The only "program" the Mach kernel runs is a FreeBSD-based Unix kernel, written entirely in C, that uses Mach to talk to the hardware. On top of the BSD kernel are three sets of interface libraries: Carbon (mixed C++, C and Pascal - yuck), Cocoa (Java) and Posix (C). Please correct me if I'm wrong, I haven't actually used OS X yet.
Cease fire? Never!
I really can't understand anyone calling for a "cease fire" in the D.E. wars. Why? Because the ammunition in this battle is innovation - and not in Microsoft's distorted sense of the word. The two desktops are competing with each other over features. If there was one environment, this sense of competition wouldn't exist - and if we tried to value each environment for what it is now, without continuing the active exploration of new concepts in UI design, the same would certainly happen.
Of course, people have complained plenty about the duplication of efforts involved in competition. GNOME would never use some of KDE's component code, or vice versa, although it would be perfectly possible to do so (the toolkit issue isn't a problem). But since each side is developing its own tools, they are creating new technology that wouldn't be possible if only one desktop environment existed. May the best GUI win :) .