Tohle je zrovna taková školácká chyba. Už v úvodu do Javy se člověk dozví, že == porovnává u objektových typů přesnou shodu (tatáž instance). Tzn. že to pro 100 zrovna vrátí true je jen náhoda resp. optimalizace, ale používat to nemáš. To ti řekne i IDE (třeba NetBeans).
Na rozdíl od třeba C++ tu není přetěžování operátorů, takže == se chová všude stejně. Jestli je to dobře nebo špatně, to je otázka - asi jak pro koho - ale vzhledem k tomu, že to je jazyk pro široké masy, tak je to asi spíš dobře.
nikoliv náhoda, ale jak správně píšeš, optimalizace, dokumentovaná ve specifikaci, probíhá unboxing malých 8-bitových čísel (-127 až 128). Ano, je to školácká věc, avšak dokáže potrápit kdejakého zajetého vývojáře, když nemá IDE.
Ano, stejně tak mi IDE řekne ty chyby s porovnáním v JS. O to právě vůbec nejde. Horší je, když se ten jazyk chová nedetermisticky v čase. Tohle se naučíš a nepříjde ti to.
PHP je na webu velmi rozšířené, přitom to je jazyk, které není schopný ani sjednotit argumenty a názvy funkcí, ještě se nesbavil memory leaků a jediný lék je pravidelný restarat interpreta, ve výsledku to ale provoz nijak moc nevadí a lze s tím žít.
Tohle jsou argumenty, které můžeme my řešit u piva, ale pro aplikace to je jedno, je jedno jestli je jazyk více vláknový se zámky nebo to fejkuje přes event loop a asynchronní IO zase vlastně na té aplikaci a vývoji nemusí jít vůbec poznat (z pohledu času vývoje, náročnosti na zdroje, chybovosti atd. atd.)
Po těch letech vývoje mi je asi šumák v čem je BE/FE aplikace napsaná, důležité je, že jí bude možné dalších X let provozova a vývoj dokončit.
Dnes se bez IDE programovat neda a popravde netusim jediny duvod, proc IDE nepouzivat.
Argument o nepouziti IDE je toho ranku, jakoze kdyz nepouziju klic od zahradni branky, polezu pres plot.
Nemyslim si, ze je sumak, co bezi na backendu, prave z toho duvodu dlouhodobe podpory.
Kdyz vezmu 20 let stare WAR tak ho na novem Tomcatu rozjedu bez potizi, max veci typu rename javax-jakarta, ktere jsou peclive popsane a jsou na to konverzni tooly.
Na javascript se podivam za dva mesice, npm upodate plne hlasek o deprecated modulech, CVEcka az na mesic, nektere modyly skoncily po roce vyvoj a mam nahradit alternativou, typicky se stejne jepicim zivotem.
Do JS/TS projektu se musi NEUSTALE hrabat a kdo chvili stal uz stoji opodal.
Pararelizace dtto, Java spolu se Spring podporou velice slusne ale tezkotonazni, NodeJS Async/Await je hnus vedoici k chaosu v kodu, nejlepsi mechanismus asi goroutines/channels. A java obdoba korutin "Project Loom - Virtual Threads" ma podporu v Java 21 a Spring Boot 3.2.
O PHP nema cenu se bavit, to zoufale bylo, je a bude.
Takze mas castecne pravdu, pro male veci je celkem jedno, co je vespod a typicky se to naplaca v necem, co dostupny Lojza programator ovlada. Pokud potrebuju dlouhodobou stabilitu a udrzovatelnost, pak Java/Spring/MavenCentral/ApacheFundation. A pro masivni vykon kontejnery a mikroservisy, ty jednodussi treba v GO.