Honestly, Java is the best thing that has happened to developers. The write-once, run-mostly-everywhere language is simply awesome. It is undoubtedly very stable and ubiquitous. However, all said and done, Java is not 100 per cent perfect. It does come with its own set of problems (not major, we say) that can be quite frustrating at the end of the day!
Here are 10 things we absolutely hate about Java:
1. Long CamelCase names
Gluing together long sentences in the form of variable names by capitalising the first letters might add a bit of self-documentation to the code. Many developers would agree to the fact, however some are even of the opinion that Long CamelCase names can be quite taxing. Take for instance, i // holds the interest rate before taxes as per regulation 43 is any day easier to read than interestRateHoldingVariableAdjusted ForTaxesAsDefinedByRegulation43, right?
2. Punctuation
The one thing that distinctly separates Java from others is the rampant availability of punctuation like curly brackets, semicolons, and parentheses. Although punctuation lovers might beg to disagree, most programmers are rather not very fond punctuation abundancy. They on the contrary see it as visual noise that in turn leads to a disconnect between the developer and the compiler.
3. Open source confusion
Ok, be honest, is Java open source or not? Of course developers might contend that the JREs and JDKs are freely available, but does that mean your safe? Developers around the globe live a under a constant threat of anxiety peaking out from countless imaginative legal repurcussions when using Java.
4. The Java thread pig farm
Node.js users constantly ridicule Java server platform saying that the Java thread factory is one big pig farm that adds 2MB of additional fat to the server RAM profile each and every time someone clicks on any supported Web link. During its initial days, Java threads were extremely lightweight when comapared to competing solutions.

5. Intolerably slow startup times

No one question the fact that Java apps run fairly smoothly upon start, what is painstaking is the start up. It’s exceptionally slow, a considerable issue for developers. For instance, Android app creators know and constantly fret about how slowly the simulator code runs on the desktop.

6. Endless checking for null pointers
This is perhaps one of the most frustrating aspects of Java. It requires countless ‘if’ statements to check if variables ended up null. Well, if they did not, the entire Java thread would eventually crash with NullPointerExceptions.
7. Object creation overhead
Tossing everything into an object might seem ‘effective’, however, those who do it know how slow the process of creating a Java object can be. Furthermore, the process is expensive. Notably most programmers who aspire to speed up coding more often than not tend to avoid the object-oriented model.
8. Primitive wrappers to use data structures
The Java data structures are pretty neat, however the only downside is that they require programmers to wrap their basic values in objects to use them. This turns a four-byte ‘int’ into a big, fat object.
9. Strings are big, need overhead, and are final
Strings are objects that can’t be changed. Its highly advisable programmers get them right the first time. In case you go wrong somewhere, you will have to create an entirely new object and copy it all over.
10. No global variables
Absence of global variables entails in programmers creating Global class and fill it with static variables. Meanwhile, others build singleton objects, however there are serious issues about efficiency here.

Expandable and upgradable API library that includes descriptions and API documentations of more than 270 programming languages, packages and libraries plus 65 programming frameworks where all of them have distribution under different OSS and CCPL licenses. API library includes 3 main parts: Java API library (API of different Java fundamental software packages and OSS like Apache and other libraries), DevDocs API library (Description and API of 65 frameworks and languages), HyperPolyglot (Comparative analysis of the syntax and forming elements of different programming languages). Main architecture components: Ruby 2.2.1, Node.js, CoffeeScript, Sinatra, Sprockets, DOM, html5, css3, Oracle/RedHat EL6.

Art2Dec OSS API library - Art2Dec OSS API library:

…Programmers are always advised to improve skills in C, Java, Objective C, PHP and the similar types. But the exciting part is there are few new languages which are getting introduced slowly with huge potential and entering the mainstream programming too. Some of the languages are evolved from existing languages. The newer languages are helpful towards making applications simpler for programmers.
1. D – D :
This is one of the hottest new programming languages which is used by Facebook. It’s a refreshed version of C++ and it takes its inspiration from Python, Java, Ruby, Eiffel and C#. It’s easy to write a code with D and it also doesn’t require a pre-processor. It can also tackle Unicode excellently. D is growing to expand its reach in coming years a lot with high efficiency and productivity.
2. Dart - Dart:
Dart is created by Google which is expected to become the new language for web programming.
Dart uses C like syntax and keywords and its objects are defined through classes and interfaces. Dart allows programmers to declare variables with static types, though its optional. Dart is not very usable today but it has a strong future. It’s a strong competitor for JavaScript.
3. Ceylon - Ceylon :
The creator of Ceylon programming language, Gavin King, knew it best how to create a language which is better than Java. That’s why King created Ceylon in collaboration with Red Hat. This language is said to have potential to kill Java one day. It works on the Java runtime environment only which means java has a huge role to play in Ceylon. But Ceylon offers regular syntax and developers are allowed to overcome the limitations of Java.
4. Go - Go :
It’s a programming language used for application development to system programming. It’s more similar to C and C++ than Java and C#. It has some modern features too like garbage collection, runtime reflection and more. Go language is an easy option to program with and its basic syntax is like C. The Go team aims to create a dynamic scripting language. The language is still under development and it differs from other languages a lot.
5. F# – F# :
Computer scientists are quite familiar with the concept of functional programming but programming languages like C++ and Java lack from integration of functional-style code into libraries. Here comes F# or F-sharp which is a Microsoft language and both functional as well as practical. It’s based .NET common language runtime.
6. Opa – Opa :
Web development is not a very simple thing to do. Web apps require several coding in multiple languages. HTML and JavaScript are required on the client, Java and PHP are required for server, SQL is required for database and more. Opa is not an alternative to the existing programming languages. It’s a combination of client and server frameworks.
7. Scala - Scala :
Scala is more than often compared to Java. It’s not very new as it’s there for ten years but it’s not considered one of the most essential programming languages. But Scala is said to be very productive by developers as it’s concise and more functional programming style is used in it. It also offers a potent mix of object oriented and functional programming.

9 Programming Languages For JVM.

Many programming languages have been ported to Java in the past. In fact, the JVM has not been simply native to Java for quite some time now. Not only are these other languages useful, they are often headed by big names from the technology world. Here are nine of the best of them.
Groovy – Groovy: This is an object oriented programming language that is similar to Java syntactically, but doesn’t have Java’s clutter. In fact, the compiler for groovy can easily take Java syntax, which allows developers to move seamlessly from Java to Groovy. The language also uses a type inference, which enables it to infer the type of a variable without the developer having to explicitly mention it.
JRuby – Jruby: This is a Java port of the Ruby programming language that uses the terser syntax. While this allows the developer to accomplish much more work with a single line of code. Like Groovy though, this is also an object oriented programming language. Moreover, it also has vast libraries from the Java platform, which is something Ruby doesn’t.
Jython – Jython: This scripting language, aka JPython, was amongst the first few scripting languages to be released for the JVM. It allows for dynamic compilation of Java bytecode. The language was stalled from 2005 to 2008, when the principal developer, Kim Hugunn, quit the project.
Clojure – Clojure: This is a functional programming language that is based on Lisp. In fact, based on its syntax, Clojure lies somewhere between Common Lisp and Scheme. It is big on concurrency and is a good language to use when concurrency is what you want to achieve. This program compiles to Java bytecode and is able to access the Java frameworks.
Scala – Scala: This is a multi-paradigm programming language that combines several programming philosophies. So, it is an object oriented programming language with functional capabilities and also facilitates parallel programming. It is compiled to bytecode and runs as fast as Java.
Kotlin – Kotlin: This is a statically typed general purpose language, which is compiled to the Java bytecode and to JavaScript. This language aims to create performance-critical applications, which are compiled as fast as in native Java.
Rhino – Rhino: This is an open source Java Script engine that has been written in Java. Rhino is managed by Mozilla and has the JavaScript shell for executing scripts. It is also embedded into Java applications often.
Ceylon – Ceylon: This is a general purpose statically typed imperative programming language, which is object oriented but also block structured. Ceylon is quite influenced by Java and is aimed at projects involving team-based development for large programs. It is led by Red Hat.
Fantom – Fantom: This generates bytecode at runtime for the Java Virtual Machine, JavaScript or the .Net platform from Microsoft. It has features similar to JRuby and Groovy and is an object oriented language. It integrates with Java libraries but isn’t as seamless as the other two. It has its own libraries though, which make up in part for the shortcomings.

New addings to Java API Documentation (you can find at):

New addings to Java API Documentation: – Java SDK SE 7u71, Java SDK SE 7u72, Java SDK SE 8u25,Java SDK EE 6.0.1, Java SDK EE 7u1, JAVA FX 2.2.71, JAVA FX 2.2.72, JAVA FX 8u25