Ja bi radje pogledao statistiku koliko recimo firmi koriste neki programski jezik da bi vodili svoj posao, ili mozda jos bolje jeste pogledati broj ponuda za posao za odredjene programske jezike. To je po meni bolji pokazatelj popularnosti.
Citat:
MarkoBalkan: zašto se toliko koristi u praksi i za projekte?
nema veze sa ovom statistikom.
Generalno najvecu popularnost je stekla kad je web poceo da pravi ekspanziju, sama java virtuelna masina iz verzije u verziju je bivala sve brza i brza. A sa druge strane kako su web sajtovi bivali sve dinamicniji u prikazivanju sadrzaja umesto nekakve staticke web stranice tako je industrija trazila nesto sto ce biti bolje/brze nego koristiti cgi-bin. Posto recimo ako pogledas kako to radi na nekom niskom sistemskom programiranju na C-u i recimo nekom Unix operativnom sistemu, http server je primio zahtev, tj uradio je accept nad socketom i dobio je socket konekciju sa klijentom, ono sto dalje mora da uradi jeste da napravi novi process u kome ce izvriti cgi-bin a to radi na sledeci nacin pozove fork() sistemski poziv koji klonira postojeci proces i napravi novi koji je identican kao i proces roditelj, pravljenje procesa deteta je dosta skupo sa askepkta procesora i memorije, jer operativni sistem mora da prekopira kompletno sadrzaj celokupne memorije i registara iz jednog procesa u drugi. A zatim nakon toga se poziva exec() koji pokrece izvrsavanje drugog programa i brise sadrzaj memorije iz trenutnog procesa. E sad ceo taj postupak je mnogo skuplji nego recimo pravljenje jednog threada i pozivanja jedne funkcije. Tako da generalno ono sto C/C++ nisu placali na mostu platili su na cupriji.
Sa druge strane Sun je u pocetku znao da ne mogu da izguraju ceo posao sami kao sto recimo MS pokusava sa .NET platformom. Pa su javu nudili pod motom kompajliraj jednom izvrsavaj svuda. Tj jasno su dali specifikaciju javine virtuelne masine. IBM i ostali veliki igraci videli su mogucnost u svemu tome i odlucili da podrze celu ideju. Posto pojam specifikacije i razvijanje softwera u nivoima nije nesto sto je poznato zadnjih 5-10 godina. I ako pogledas danas isto tako cela prica oko jave jeste specifikacija a ne implementacija, pa recimo kad uzmes javu na enterprise nivou isto tako imas specifikaciju sta jedan aplikacioni server mora da ima. Pa onda sa te strane mozes kao developer "lako" da menjas bilo koju od komponenti a da sistem i dalje nastavlja da funkcionise. To je dosta vazno recimo ako naidjes primera radi na veoma ozbiljne bugove u nekom proizvodu ili jednostavno zelis da uradis migraciju na neki drugi proizvod koji ti daje bolje perfomanse ili mozda ima bolji comunity ili bolje placenu tehnicku podsku.
I trece sto je dovelo do vece popularnosti jave jeste cinjenica da su u to vreme plate programera u americi bile oko 100 000 $ godisnje. a da je hardver bio dosta jeftini nego plata radnika a java je bila daleko produktivnija stvar nego C/C++ jer ne moras da pazis mnogo da oslobadjanje memorije, vec programeru daje mogucnost da se fokusira na sam problem. Pa je biznis racunica u rukama vlasnika firmi bila jednostavna zasto jjje java bila bolje resenje.
Danas jednostavno imas veliki broj biblioteka koje su pisane za javu pa mozes naci maltene sve od igle do lokomotive. A i java kao jezik i dalje je ziva i razvija se.