Today, probably, every developer thought: 'Do not write me a program in Java? She has a lot of people on many operating systems will benefit. " Maybe. But it all depends on the type of project: free or commercial. For the first case, just, Pass Java, because this program can be run on any platform where there is a runtime. But the Java byte code is easy to decompile and carry a protective mechanism in commercial software, so that with better paid projects of Java is not suitable. Actually, in Java has several advantages: a cross-platform, the power of the C language, the prevalence of runtime on most operating systems, free compiler javac. Cons: some strange language (it is very unusual), the ability to decompile the byte code the complexity of the operation of the official compiler. There, first compile each source is part of the program is necessary, then all this stuff in one package Plus or minus does not cover.
With the native-code (native code) is the case with exactly the opposite. Native-code – a computer code that executes directly without any cpu runtime, as is the case with Java. This code works only on a single processor architecture and the only one operating system under which the program was written. Such codes can not decompile, disassemble, just as in the assembler code without comment the developer did not understand. Pluses of the native-code: the full protection of the source code, the existence of a set of simple and powerful language to create a native-code. Cons: absolutely not cross-platform. Here we cover the pros cons. What would there not have been written, the choice of platform – the case of the developer. I just found that is good for dinner spoon, and should not be abused no Java, no native-code.