Citazione Originariamente Scritto da BlackCaesar Visualizza Messaggio
Fosse solo per quello... Ha i generics che fanno pietà: è nato come il sostituto del C++ e all'epoca non aveva nemmeno i generics, dovevi castare tutto ad Object, quando C++ aveva i template da 8 anni prima che sono fatti coi controcoglioni e sono un linguaggio turing-equivalente con cui puoi anche fare metaprogrammazione. Nel 2005 (!!!!) hanno aggiunto i Generics, e ovviamente sono fatti di merda: non si possono creare array di generics (perché mai non è dato saperlo), non si possono utilizzare i tipi primitivi per istanziare i generics, bisogna boxarli dentro alle rispettive classi, tutto è allocato sullo heap così gli array perdono il vantaggio della contiguità in memoria, non aveva le lambda e le funzioni di ordine superiore, non ha un linguaggio dichiarativo come LINQ in C# per manipolare strutture dati (perché connessioni e query su Database in Java giustamente vanno fatte via stringhe, che è più sicuro di utilizzare un type system). Due anni fa hanno aggiunto le lambda, e sono pure buggate: ho fatto una fold con una map dentro e a run-time la virtual machine ha tirato Uncompilable Code Exception o una cosa del genere, praticamente il compilatore generava bytecode buggato per la virtual machine. L'unica ragione per cui Java ancora esiste sono le tonnellate di legacy code delle aziende.
Zitto zitto che mi tocca averci a che fare con Java per lavoro. Per adesso almeno.