- The java platform has much more simpler APIs than other platforms like UNIX or windows
- The various implementations of the java machine emulator provide cross-platform portability
- A huge collection of standard libraries, providing built-in support for threading and networking
- Easy dynamic linking, can load classes even over the network, inspect and use an unknown class
- Supports Unicode natively
- Discourages the production of malicious code since the developer cannot access memory directly
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
java programming language has great limitations that should be considered before starting a large project:
- Low performance
- Forced garbage collection
- indetermination on destructor calls and resource release
- forget realtime approximation, too strong unpredictability of execution time
- Just a partial support to multiple inheritance with the introduction of
interface
- No header files, interface and implementation are messed together
- No operator overloading
- Security means less flexibility: no pointers magic, no pointers to methods
- You must explicitly call the
finalyze
method of ancestor classes! - Java bytecode is easy to reverse-engineer
- Just one (unsafe) mode to pass arguments to methods, no default arguments
- No
const
modifier (partially compensated byfinal
) - No preprocessor magic, no conditional compilation
- No manual code optimizations like
register
orinline