Dakujem za postrehy, rad by som si to teda zhrnul alebo zopakoval to co bolo povedane aby som si z toho odniesol nieco do praktickeho zivota a neimplementoval blbosti
Klady:
1) Relativne rychly vyvoj a refaktorizacia v modernych IDE typu Idea alebo Eclipse ci Netbeans
2) "write once run everywhere" (ked sa chce, da sa toho rozumne dosiahnut)
3) Java je viac vhodna na serverove aplikacie alebo demony
4) Toto tu nepadlo ale podla mna velmi vyspely ekosystem nastrojov ako Maven Ant, neskutocne mnozstvo kniznic na vsetko mozne ... Java je myslim v tomto ekosysteme a previazanosti asi najdalej, nech to slovo uz znamena cokolvek ... Mne sa pacia iniciativy ako JCP a podobne ...
Zapory:
1) Na systemove utility / programy je nevhodna pretoze samotny start JVM a inicializacia by trvala dlhsie ako samostatne vykonanie programu.
ano s tymto suhlasim, aj ked ... neviem, ide o to, co sa programuje, napr. ked nakodim nejaky konzolu, tak sa to spusti len raz a je tam potom nejaky REPL ...
2) JVM nevracia aktualne nevyuzitu pamat systemu a tym padom casto mava alokovane viac, nez je treba
3) Musel by som pisat pripadne nejaky wrapper skript, ktory obali java -jar xyz.jar a podobne do jednoducheho CLI prikazu a nastavi classpath a environment
nevidim zasadny problem
4) Java je na malu utilitu velmi "ukecana"
5) Java je zlozitejsia na nasadenie oproti jazykom ako Python / Ruby kde staci len interpreter a skript = jeden subor
myslim ze to je len otazka dalsej hodiny na napisanie toho skriptu teda velmi tento argument neprijimam
6) Je nenazrana na pamat
imho tu myslim ze to je prasacky naprogramovane ale ano, Java je proste uz z povahy veci viac narocna na pamat, to je proste fakt
7) Bezpecnost Javy je biedna az nulova
to je trochu demagogicke, jeden diskutujuci povedal, ze tento problem sa tyka vacsinou klientov
Treba to nakodit v IDE a simple editor casto nestaci
co je otazka preferencii, osobne to vidim ako vyhodu)
Inak na napadlo, ze co sa tyka velkosti JVM a pomaleho startu, ved na nejaky subset vlastnosti mi staci aj nejaka osekana verzia ako napriklad Java SE Embedded
http://www.oracle.com/technetwork/java/embedded/downloads/javase/index.html"Java SE embedded is based on desktop Java Platform, Standard Edition.[1] It is designed to be used on systems with at least 32 MB of RAM, and can work on Linux ARM, x86, or Power Architecture, and Windows XP and Windows XP Embedded architectures."
Takze velmi nechapem argument velkosti instalacie a pamatovej nenazranosti ked to dokaze bezat na embedded zariadeniach. A nad Java SE embedded si uz pridam akekolvek jarka chcem a som tam kde som s Java SE ale mam "stripped down" instalaciu. Alebo sa mylim?
http://www.oracle.com/technetwork/java/embedded/resources/se-embeddocs/index.html#sysreqsDam ruku do ohna ze to umoznuje networking a podobne ...