Quote:
|
Which came first, Java or .NET?
|
Java. C# came about after Microsoft added proprietary extensions to Java in their J++ product. Sun then threatened legal action. I think I previously posted that information on this forum.
Quote:
|
When you say JIT compilation, do you mean compilation similar to C/C++ - with the ability to run just as fast (as soon as it's compilied)?
|
Well, compilation is just translation of code in some given form to code in a different form. In this case, the JIT compiler is producing x86 instructions on the fly, as necessary. The CLR doesn't execute code as quickly as unmanaged C++ or C code. Microsoft claims that it is possible to get managed .NET code to execute nearly as fast as unmanaged code.
Quote:
|
Next, I have coded/am coding in both Java, and C#, depending on the sit. Which is more valuable?
|
They are both valuable. However, Microsoft is improving C# at a greater rate than Sun is improving Java. Java has its markets just as C# has its markets. If you're programming Windows, use C#. If you're writing code for different operating systems, use Java. I'd also use Java for socket programming rather than C#, but that's really only because I like Java's threading model much better.
I also like Java for embedded systems. I've coded microcontrollers in proprietary languages, assembly, and C, but I wouldn't do it again. The last embedded systems project I worked on made use of a Systronix SaJe microcontroller. The interesting thing about the SaJe is that it uses an Ajile Systems AJ-100 processor, which natively executes java bytecode. This means that the execution speed of the java software for the SaJe is nearly the same (or is the same) as software written in C for a comparable microcontroller. Also, you get all the benefits of using Java rather than C, like managed memory (for most cases), networking, and threads, which are all built into the language. For embedded systems, I am firmly rooted in the Java camp.