[icoFolderApps.png]Program files
[icoHelp.png] Help[icoJava.png] Java
 Java (29sep2009)
java is a platform and a proprietary programming language that had a great diffusion during the internet era. It has remarkable features:
  • 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
However, remember always the infinite source of wisdom: 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
There are also some minor annoyances, usually sold as features and missed by C++ developers:
  • Just one (unsafe) mode to pass arguments to methods, no default arguments
  • No const modifier (partially compensated by final)
  • No preprocessor magic, no conditional compilation
  • No manual code optimizations like register or inline
Learning a high level language, especially java, should involve a special effort on reusing the provided libraries.