Słusznie wspomniał @Wibowit, że należy rozgraniczyć JVM od Javy. JVM ma swoje mocne strony, jak na maszynę wirtualną Już sam fakt, że gdy już się ta krowa rozhuśta to potrafi dorównać natywnemu kodowi, o czymś to świadczy. Jeśli chodzi o sam język, no cóż. Pracowałem z bardzo złym kodem w Javie jak i całkiem niezłym, ale jako takiej nie lubię. Wydaje mi się, że jeśli ktoś się podnieca nowymi rozwiązaniami np. z Javy8 (to było nowinką jak ostatnio używałem) to chyba po prostu nie ma oglądu w innych językach programowania. Dla kogoś kto programuje w Javie i tylko Javie zapewne fajną wiadomością są Streamy Future'y i tym podobne rzeczy, ale tak naprawdę te rzeczy nie koniecznie pasują do języka. Jak tu obsłużyć wyjątki w Streamie… hmmm… Nieeee, jeszcze może Scala (znów JVM), już prędzej, ale Java mnie nie przekonuje.
Tak właściwie w ogóle ten sort języków zupełnie mnie nie bawi, bo lubię mieć pojęcie co robię, dlatego lubię proste języki jak C (>=99, starsze standardy są dosyć nieprzyjemne), czasem spojrzeć w assemblera(lub dezassemblację). Niespecjalnie jara mnie jakakolwiek idea maszyny wirtualnej, bo działam praktycznie tylko na Linuksie i oprogramowaniu open source (wiadomo, to jest 99% najwyżej, bo w na poziomie firmwaru, czasem sterowników ciężko bez BLOBów; lubię też czasem pograć, ale umówmy się, mało mnie to dotyka) więc nie widzę raczej potrzeby stosować takie rozwiązania. Natomiast jestem entuzjastą łączenia programów za pomocą skryptów, Bash i AWK to są moje języki wysokiego poziomu. xD
Jestem świadom, że większość programistów chciałaby odsunąć jak najdalej od siebie platformę na której pracuje i takie osoby z pewnością mogą kochać Javę (choć wolałbym, żeby jeśli już kochały Scalę, Haskell, OCaml lub LISP), aczkolwiek obawiam się, że takie podejście nie ma dobrego wpływu na branżę (a przynajmniej więcej programistów powinno wiedzieć jak to wszystko działa).
Aaa, i poznasz drzewo po owocach -> Androidowi na pohybel. Nie to żeby był gorszy od Windowsa czy iOSa, bo to wszystko tak samo ograniczający shit.