Although I’ ve practiced a lot on C/C++ , I’m still pretty new to programming and now I’m learning the basics of Java. Java’s ‘Write Once, Run Everywhere’ concept has always confused me.
- Are Languages such as C completely portable at a source level , with only the need to change the compiler for the cpu architecture?If yes , could we consider even C a WORA language over assembly level?
2.What are the abstractions that the jvm provides on a source level? For example , for a simple Hello World in C++ we have to include the header that is different for each OS, but in java this is not the case .
3.Because of the abstractions of the jvm , is java limited to high level ‘app’ development? Can you theoretically write an OS or driver in Java? What parts of Android are written in Java? When the Android Runtime ‘translates’ app jvm bytecode into native machine code does it add (link) other instructions that were simply not addable in the source?