Inferno96 wrote:They are "hot" for those languages because they are extremely powerful and can produce programs quickly(C# with VS 9.0).
Not only that. Old and proprietary pieces of code (Cobol, PL/1, insert-stoneage-language-here) which weren't really up to run on nowadays systems (because bound to 16-bit systems/compilers etc) are already ported to compile into .NET MSIL code, which can be run on virtually any environment (Windows with the traditional Framework, *NIX/MacOSX and others with Mono, even Watches and Toasters using the MicroFramework).
Large companies which are bound to use that/want to continue using it due to compatibility with legacy systems/monetary reasons for re-writing the app from scratch in a "new" language are likely to use that instead, because most of the work is already done (I've seen for example .NET compilers for PowerBuilder and Cobol somewhere), and doesn't take that much time to actually recompile it.
The big advantage of .NET over Java is also its JIT Compiling strategy that compiles MSIL code once it is accessed, and keeps it compiled - which is quite a good performance improvement where the Java VM interprets Bytecode rather than compiling it into native code.
The only drawback I see is the easy reversibility of .NET (and also Java) code; Load up Reflector, and you're good to go with the full source. Obfuscation may make it harder, but compared to native ASM reverse engineering, it's still the faster approach there.
infogverrilla: weekend's idea is probably the best way to go, altho I'd suggest to start with PHP. C++ looks similar, but introduces a more strict ruleset then PHP (typed variables/type safety, serious OOP, overall more control of what your code actually does). Once you got into it, move on to C++.