Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • OS
  • Zašto vam je potrebna Java na računaru ili laptopu? Čuo sam pojmove "Java virtuelna mašina" i JVM

Zašto vam je potrebna Java na računaru ili laptopu? Čuo sam pojmove "Java virtuelna mašina" i JVM

  • Prevod

Lako je zaboraviti značaj tehnologije kada ona kao kometa prođe kroz kolektivnu svijest i umre vatrenom smrću iza horizonta. Na primjer, Cobol - nekada je ovaj jezik bio ikona za čitavu eru, ali sada se može porediti samo sa pokvarenom ribom. Ovih dana, svaki hipster programer će vam reći da je Cobol sranje je, stari i beskorisni jezik. Java bi mogla biti sljedeća žrtva "aktualnih" presuda.

Vrhunac prodaje knjiga na Javi je daleko u prošlosti. Iskusni Java uslužni programi više nisu dovoljno seksi za naslovnice časopisa. Java već ima 19 godina, a progresivni programeri su strastveni prema takvim modernim i najnovije tehnologije poput Node.js, Objective-C, Dart, Go, itd., pitajući se: „Java? Je li ovaj Web 1.0 artefakt još uvijek živ?

Brza pretraga na Dice.com pokazuje da je Java rad u izobilju. Ako za iOS postoji oko 2500 ponuda, za Javu ih ima više od 17000. Naravno, ne možete se u potpunosti osloniti na ove brojke. Ali činjenica da je na Dice.com tržište rada u Javi potencijalno sedam puta veće nego za najnoviji iOS sugerira da "stara Java" radi prilično dobro.

Možda zato što Java nudi bolji poslovni plan od predaje 30 posto Apple-ovog prihoda i ukrštanja prstiju i nade da će vaša aplikacija biti među 25 najboljih. U većini slučajeva, Java rješava probleme koji su korisniji od pomaganja ljutim pticama da se osvete jednako zlim svinjama. Java je osnova brojnih platformi za razvoj softvera koje pružaju efikasan rad na sistemima sa različitim arhitekturama čipova. Java pomaže u rješavanju problema za programere serverskih, klijentskih i ugrađenih sistema.

Pre nego što zaboravimo ogroman doprinos Jave IT industriji i njenu današnju ulogu, želeo bih da podelim sa vama 12 ubedljivih razloga zašto Java ne samo da opstaje, već i napreduje ovih dana.

Ne zovi to povratkom; Java nije otišla nigdje, dominira ovdje i svuda.

Razlog br. 1: Nepotopiv u svijetu politike (često prljav)

Svijet tehnologije nikada nije dao Javi ni dana za odmor; njeni neprijatelji su bili brojni i dobro naoružani. Uprkos tome, jezik je cvetao. Mnogi njeni klevetnici su iznenađeni što je Java još uvijek dobrog zdravlja. Prečesto su slušali mišljenja mrzitelja Jave i nisu pokušavali da shvate razloge njenog uspeha.

Prvi veliki neprijatelj Jave bio je Microsoft. Ova kompanija je u Javi videla najdostojnijeg naslednika jedinstva koje je u to vreme nudio samo MS-DOS. Redmond je kritikovao i borio se protiv Jave od samog početka. Java nije bila uspješna u razvoju desktop aplikacija, dijelom zbog magične virtuelne java mašina pokrenuo presporo. Uprkos manjim usporavanjima, generalno, Java aplikacije na Windows-u su prilično upotrebljive.

Iz nekog neobjašnjivog razloga, Steve Jobs Nikad mi se nije sviđala Java. Čak i kada su Mac uglavnom ignorirali svi osim Adobe-a, Java nije imala priliku. Java kompatibilnost mogla bi potaknuti razvoj Maca, ali za Apple, Java je uvijek bila podrška. (Generalno, iOS telefoni rade glatko od mog Androida, pa je možda Steve bio u pravu)

Java je takođe patila od brojnih unutrašnjih sukoba. IBM je volio jezik, ali se uvijek borio sa Sunom. Odluku IBM-a da svoj divni IDE nazove "Eclipse" ljudi iz Sunca primili su prilično hladno (Momci iz Sunca nikada nisu razumjeli posao kao IBM).

Uprkos svim pogrešnim koracima svojih kreatora, Java je brzo ojačala svoju poziciju na serverima i postala pogodna za upotrebu u desktop segmentu. Svaka tehnologija mora plivati ​​protiv političke plime, a u slučaju Jave, ona je istrajala i pokazala se kao odlično sredstvo za rješavanje problema.

Razlog #2: Magija potoka

Jedan od snage Java virtuelna mašina je oduvek bila njena sposobnost da sa lakoćom žonglira više niti. JVM je optimizovan za velike mašine sa više jezgara i može da obrađuje stotine niti bez ikakvih problema. Zahvaljujući ovoj mogućnosti, na JVM-u su se pojavili i drugi jezici - kreiraju se unakrsni kompajleri i emulatori koji rade na vrhu JVM-a.

Ove magične moći koriste mnoge web stranice s velikom posjećenošću. Programeri pišu kod na svom laptopu, a zatim postavljaju aplikaciju na moćan server, gdje iskorištava višejezgarnu snagu do svog punog potencijala.

Ruby je jedan od modernih konkurenata Javi. Ima čistiji, životniji engleski jezik, sintaksa. Ali ipak, kada ljubiteljima Rubyja trebaju visoke performanse, oni se okreću JRubyju. Ovo je verzija Rubyja koja radi na vrhu JVM-a, pružajući mnogo više Visoke performanse pod velikim opterećenjima sa više navoja. Nakon što su uložili mnogo truda u pouzdan rad sa nitima, Sun inženjeri su donijeli ispravnu odluku.

Razlog #3: Java kao prvi programski jezik

Java je primarni jezik za napredne računarske nauke (AP) - program obuke i ispiti za studente srednja škola u SAD). To znači da je Java često prvi programski jezik učenika. Stoga, Java nastavlja biti s njima „kroz debelo i tanko“. Kada učenici kasnije nauče nove programske jezike, oni ih upoređuju sa onim što je dostupno u Javi. Čak i ako promijene Javu u nešto drugo, njihovo mišljenje je i dalje zasnovano na onome što su naučili „u prvom razredu“.

Java ima mnogo prednosti za učenje informatike. Neki programeri mrze specificiranje tipova podataka, često ih nazivajući "sigurnosnom mrežom" u programiranju. Ovo možda zvuči čudno, ali jeste odličan način za početnike da shvate kako računar radi. Zahtjev da se specificiraju tipovi podataka tjera ih na razmišljanje unutrašnja struktura sistemima.

Neki od najnovijih jezika ne koriste vitičaste zagrade jer je neugodno programerima da ih pravilno formatiraju. Ovo može biti istina u nekim slučajevima, ali ove iste vitičaste zagrade mogu biti korisne za nove programere da razumiju ugniježđenje blokova koda.

Neko pokušava da promoviše svoj jezik i u većini slučajeva kreira jezik sa manje strogom sintaksom od Java. Ovo je sjajno, ali jednostavnija, čišća sintaksa dolazi sa svojim opasnostima koje se pojavljuju kasnije. Neki ljudi smatraju da vazdušni jastuci ograničavaju njihovu slobodu programiranja, ali Java usađuje dobre navike od samog početka. U budućnosti, stečenim iskustvom, bivši "novaci" moći će ukrotiti elegantnije i opasnije dizajne.

Razlog #4: (skoro) kompatibilnost na više platformi

Java nije bio prvi jezik za pisanje aplikacija za više platformi, ali je postao najpopularniji. To ne znači potpunu kompatibilnost različite platforme- nedostajuće biblioteke ili nekompatibilne verzije biblioteke će lako zakopati vaš kod. Ne možete uzeti kod desktop aplikacije kompajliran pod JRE 1.7 i pokrenuti ga na telefonu u Java ME. Čudo se neće dogoditi.

Sun, a sada i Oracle, maksimalno koriste više platforme. Kada kod ne radi, obično je jasno u čemu je problem. Ako koristite ispravne verzije Java i imate dovoljno memorije, vaš kod će raditi. Java programeri mogu razviti aplikaciju na svom računaru, a zatim je postaviti na ciljnu platformu, bilo da je to telefon ili server. Ako je dostupno za kompajler potrebne biblioteke, kod će raditi. To je neprocjenjivo.

Razlog #5: Kontinuirani uspjeh Jave na čipovima

Java nikada nije bila popularan alat za razvoj desktop aplikacija, ali je procvjetala u mobilnom segmentu tržišta, koji je nedavno eksplodirao. Android platforma izgrađen u Javi do kraja Android uređaji prodaje se bolje od iPhonea.

Ova dominacija nije ništa novo. Skraćena verzija jezika i virtuelne mašine poznata kao Java ME naširoko se koristila u mnogim takozvanim telefonima sa funkcijama, kojih ima milionima širom sveta.

Kada sve to spojite, dominacija Jave je zapanjujuća.

Razlog #6: Blu-Ray

Jezik Java, nekada nazvan "Hrast", bio je namenjen TV prijemnicima, gde je Sun želeo da dominira. Nije bilo moguće tačno se pridržavati plana, ali Java je ipak uspjela pronaći ugodno mjesto u dnevnoj sobi. Blu-Ray standard je izgrađen oko Jave i svako ko želi da doda dodatni sadržaj na Blu-Ray-u ćete morati da koristite Javac kompajler.

Blu-ray diskovi– ovo nije samo sirovi video. Koristeći Java kod možete promijeniti/dodati dodatne funkcije i interaktivnost. Blu-Ray diskovi su mješavina kompresovanog videa i Java bajtkoda.

Razlog #7: Kovrčave zagrade jednostavno rade

Ljubitelji otmjenih jezika kao što su Ruby, Python ili CoffeeScript snishodljivo gledaju kako Java (i C) tjeraju programere da umetnu vitičaste zagrade kako bi eksplicitno označili početak i kraj svakog bloka koda. Okrugla, kovrčava i ujednačena uglaste zagrade- sve ovo je prokletstvo za ove progresivne programere. (Ni ja ne volim zagrade, i još uvijek sam nostalgičan kako u nekim verzijama Lisp-a možete zatvoriti sve otvorene zagrade jednom uglastom zagradom)

Ali promjena interpunkcije ne eliminira složenost, ona je skriva. Korištenje razmaka za označavanje priloga prisiljava vas da intuitivno vidite ono što ne možete vidjeti. Označavanje ugniježđenja s razmacima odlično funkcionira ako vaš izraz stane u jednu liniju, ali postaje užasno ako imate više razina ugniježđenja. Kada pišem u Pythonu, primjećujem da brojim i preračunavam udubljenja. Samo zato što kod izgleda kao engleski ne znači da ga je lako razumjeti kao englesku rečenicu.

Razlog #8: Groovy

Ako Java programerima treba čistija i jednostavnija sintaksa, dinamičko kucanje, to nije razlog za prelazak na novonastale jezike. Oni mogu koristiti Groovy, uredan Java hak sa predprocesorom koji proizvodi JVM bajt kod. Jezik je u potpunosti integrisan sa Javom - možete bezbedno da pozivate Java biblioteke iz Groovy koda. To je kao Java sa nekim zvonima i zviždaljkama.

Ova fleksibilnost omogućava programerima da samostalno dizajniraju rješenja za svoje probleme. Kada je Groovy sporiji (ovo se često dešava kada se koriste dinamički pozivi metoda), programer uvek može prepisati delove koda koji su kritični za performanse u jezgru Jave.

Razlog #9: JVM

JVM je izgrađen i optimiziran za ukucani kod sa statičkim kontekstom koji je generirao javac kompajler, ali su s vremenom programeri jezika shvatili da JVM može pokrenuti kod napisan na jezicima koji nisu Java. Ako kompajler proizvede ispravan Java bajt kod, JVM-u nije važno na kojem jeziku je napisan. Programeri Haskell-a, Scale, Clojure-a i skočili su na vagon “moćne Java električne lokomotive” kreiranjem vlastitih kompajlera.

Žalba je očigledna. Sun/Oracle čini svoj dio u stvaranju višeplatformskog okruženja, a svi ostali to koriste. Sun/Oracle inženjeri brišu platformu i brinu o kompatibilnosti, a mi pišemo kod na jeziku koji nam se sviđa.

Microsoft je posudio ovu ideju (i mnogo više) kada je kreirao C# i njegov pristup kreiranju kompajlera za jezike koji se pokreću na C# VM (CLR). C# programeri kažu da mogu pisati različitim jezicima– međutim, samo na VM-u pod Windowsom. Nevjerovatna fleksibilnost!

Razlog #10: NoSQL revolucija, izgrađena uglavnom na Javi

Nekada je baza podataka bila nedokučiva crna kutija koja je čuvala informacije i brzo i efikasno odgovarala na upite. Zatim je došla NoSQL revolucija – programeri su shvatili da mogu pisati vlastite baze podataka i prilagoditi kod svojim potrebama. Većina glavnih igrača na NoSQL tržištu napisana je na Javi. Cassandra, Lucene, ElasticSearch, HBase i neo4j su samo neki od primjera. Pored toga, postoje neke ACID-kompatibilne baze podataka napisane u Haskell-u koje se pokreću na JVM-u.

Ove baze podataka su obično otvorenog koda i lako se ugrađuju. Neki ljudi ih pokreću kao nezavisne usluge, drugi ugrađuju svoj kod (u obliku biblioteka) u svoj vlastiti stog. U svakom slučaju, status Jave kao radnog jezika na nivou baze podataka osigurava da će Java programeri lakše razumjeti i raditi sa ovim bazama podataka. Kodiranja ili separatori redova neće smetati Java programerima.

Razlog #11: Minecraft vlada ovim vekom

Dok Ruby nastavlja da dobija svoj deo obožavatelja, sledeća generacija se zaljubljuje u Javu. Zašto? Jedna riječ: Minecraft. Napisan je na Javi. Mladi igrači koji žele proširiti Minecraft moraju poznavati Javu kako bi pisali dodatke za Minecraft. Ovo garantuje da će odrasla "deca" sigurno pisati na Javi.

Razlog #12: Otvoreni kod

Sun je oduvijek bio jedan od vodećih Open Source zajednice, ali nikada nije uspjela u potpunosti osloboditi Javu. To nije spriječilo Java programere da napišu gomilu odličnih biblioteka i besplatnih projekata. otvorene licence. Apache projekat nastavlja da pruža mnoge Java projekte pod licencom koja ne zahteva mnogo zauzvrat.

Sun je prestao da izdaje većinu koda pod GPL-om 2007. Od tada, Sun i njegov novi vlasnik, Oracle, pokušavaju da budu dobri menadžeri Java jezik. Naravno, Oracle je narušio svoju reputaciju tužbama protiv Googlea, ali osim toga, platforma se uglavnom može smatrati otvorenom i besplatnom.

Mrzitelja ima na pretek, ali Java ide naprijed

Java svakako ima svoje probleme. Mrzitelji Java nastavit će balaviti i lupati po tastaturi, postavljajući zlonamjerne komentare na Internetu. Sakupljač smeća može izazvati štucanje i drhtanje. Unos podataka je naporan i ne može eliminisati zaista loš kod. Napomene su previše složene. Nove funkcije u Javi se ne razvijaju tako brzo kao u prošlosti. Kovrčave zagrade dodaju malo nereda. Ova lista se nastavlja i nastavlja.

Međutim, nijedna od konkurentskih tehnologija nije uspjela tako široko i duboko sletjeti na obale IT industrije. Dok je neke od Javinih problema prilično lako popraviti, popravci obično sami po sebi donose probleme.

Na kraju krajeva, to je jedna od prednosti Jave. Može se mijenjati i koristiti za gotovo svaki zadatak. Većinu biblioteka možete zamijeniti vlastitim kodom ako su vam potrebne posebne funkcionalnost. Java je vrlo fleksibilan jezik otvorenog koda. Bez obzira na jezična i platformska ograničenja, gotovo svaki problem se može riješiti relativno lako. To znači da su Java programeri i dalje među najproduktivnijima. Iako Java knjige više ne dominiraju na listi bestselera i Oracle ne objavljuje ažuriranja onoliko često koliko bi želio, Java nastavlja ne samo da živi, ​​već i napreduje.

Možda najčešće pitanje među ljudima koji se žele baviti programiranjem, ali nisu odlučili na kojem jeziku će to raditi. Borbe na forumima i dalje traju. Java ili C++? Ili možda Python? Recimo odmah da su ova poređenja poput poređenja zelene i okrugle. Da, neke savremenim jezicima programi su slični jedno drugom. Da, neki su bolji u upravljanju memorijom od drugih. Ali na nekima je bolje implementirati serverske aplikacije. Ali to nije zato što su neki bolji od drugih.

Ali zato što je svaki jezik namijenjen za svoje svrhe! I općenito: “Mržnja prema programskom jeziku obrnuto je proporcionalna poznavanju ovog jezika, poznavanju i razumijevanju problema zbog kojih je stvoren i sposobnosti da se to primjenjuje u praksi.” ©

No, vratimo se na naše ovce. Zašto biste trebali započeti svoju karijeru sa Javom i koje prednosti ona ima u odnosu na druge objektno orijentisane jezike? Nećemo ulaziti u teoriju i pojmove nepoznate početnicima, već ćemo jednostavno iznijeti nekoliko argumenata koje svi mogu razumjeti.

1. Nizak ulazni prag.

Zahvaljujući jednostavnosti sintakse i brojnim odličnim knjigama i forumima, možete početi učiti Javu od nule bez ikakvog znanja programiranja. Započnite svoje putovanje najjednostavnijim “Hello, World!”, a završite s bogatim znanjem dovoljnim za poziciju pripravnika u nekoj od brojnih IT kompanija.

2.Dostupnost.

…svuda, bilo kada, za bilo koju platformu. Osim toga, alati za programiranje u Javi su apsolutno besplatni, ima ih puno (kao i informacija o njima). Pored JDK-a, možemo istaći i Eclipse – slobodno distribuirano razvojno okruženje koje ima široku funkcionalnost i pristojan nivo kvaliteta (iako je, prema Lurkmoreu, Eclipse i dalje isti uređivač teksta, ali sa preferencijama i mademoiselles. također cross-platform, ali o tome kasnije).

3. Skup standardnih biblioteka klasa.

Mnogo dokumentacije i standardnih časova koji će vam olakšati život tokom procesa učenja i spasiti vas od dosade pisanja jednostavnih, ali široko korištenih metoda. Niste zadovoljni standardnim časovima? Uzmite sve u svoje ruke i kreirajte (prepišite) svoju verziju klase ili metode koja vam je potrebna u datoj situaciji.

4.Full cross-platform.

Pravilno dizajnirana aplikacija će jednako dobro raditi na Windows, MacOS, Linux i mnogim drugim operativnim sistemima. Napišite kod jednom, za jedan sistem. I onda ga lako pokrenite na bilo kojem drugom.

5. Posljednja na listi, ali možda najvažnija je potreba na berzi rada.

Potreba za Java programerima ne jenjava već nekoliko godina. Štaviše, samo raste. Zbog Najbolja odluka Za korporativni serveri baze podataka - Java, rado ćete biti primljeni kao pripravnik čak i sa osnovno znanje OOP (za dalje obrazovanje i usavršavanje Vas kao IT specijaliste) iz mnogih kompanija u Ukrajini i inostranstvu.

U ovom članku napravit ću malu usporedbu Jave s drugim programskim jezicima i opisati najvažnije, po mom mišljenju, prednosti ovog jezika.

1.Java je najpopularniji/traženiji programski jezik.

I u bliskoj budućnosti, mislim da se to neće promeniti jer...

2.pisati u Javi mobilne aplikacije (Za Android operativni sistem, čija je publika u proljeće 2013. bila više od 162 miliona korisnika), web i desktop rješenja. Mogao bih jako dugo da pišem o svakoj kategoriji posebno, ograničiću se na mali broj brojeva i svojih razmišljanja.
Ako se ne varam, Android platforma se pojavila 2005. godine, tj. ima samo 8 godina (!) i za to vrijeme uspjela je da osvoji tako veliku korisničku publiku. Njegov rast za Prošle godine iznosi skoro 80 posto. Detaljniju statistiku možete pogledati
I čitajte o androidu
Desktop i web aplikacije su već kreirani u Javi veliki broj godine i mnogim projektima je potrebna podrška, klijenti žele da vide nove verzije, ažuriranja itd., što ukazuje na potrebu za programerima koji će pružiti podršku. Java se takođe redovno ažurira (još jedan plus :)) i pruža svetu nove tehnologije koje su veoma tražene! I naravno, potrebni su nam ljudi koji posjeduju ove „stvari“.

To takođe želim da primetim google naocale(proizvod kompanije za koju sam siguran da će u bliskoj budućnosti promovirati proizvod u masama) koristite Android OS! Mislim da će vremenom doći do vrhunca u ovoj stvari i da će mladi ljudi sigurno nastojati da je kupe, tj. publika će se značajno povećati.

3. Java - višeplatformski programski jezik(u daljem tekstu YAP). One. programi koji su napisani mogu se pokretati na različitim operativnim sistemima (windows, linux...).

4. Razvoj dalje Java rad Odvoz smeća se vrši automatski. Meni se lično to nije svidjelo i zaboravio sam očistiti memoriju prilikom programiranja u C-u (da budem iskren, ne možete to ni nazvati programiranjem). Uopšte nema rada na pamćenju! (Ni ja nisam baš dobar sa pokazivačima). Da to kažem jednostavnim jezikom, Lakše je raditi sa Javom, nema potrebe da brinete i brinete o nekim stvarima (jezik višeg nivoa od C\C++).

5. Jedan od glavnih faktora za mene je bila plata. Plata Java programera je obično veća nego programer drugog jezika, u to vrijeme je to bio maksimalni brojevi, a sada je, ako se ne varam, ista situacija.
Veze sa više Detaljan opis situacije:

6. Javu je lako naučiti. Moj prvi student, za nešto više od pola godine, praktično je naučio Javu od nule do tog nivoa da je primljen na plaćenu obuku u IT kompaniji, učeći uglavnom jednom sedmično. Takođe, u skoroj budućnosti, bio sam saučesnik u tome kako su momci za 2 meseca na mojim kursevima naučili da programiraju od nule i takođe dobili posao. Java je posebno laka za one koji znaju engleski. A za one koji ne znaju, preporučujem da hitno počnu proučavati jer... nakon java ovo je prvi potreban jezik za većinu programera =).

7. JAVA je besplatna platforma otvorenog koda.
(Ovdje moramo malo objasniti da je Java jezik, ali istovremeno i čitava platforma - mnoge klase koje su kreirali programeri jezika sa ciljem da ga razviju i pojednostave njegov rad).

Lista se nastavlja. Fokusirao sam se na one stvari koje su za mene bile ključne, u budućnosti ću možda detaljnije pisati svoja razmišljanja, iako su se i sada ispostavila duže nego što sam očekivao.

U članku nisam spomenuo sve popularniji rubin na šinama. Nažalost, nisam radio sa njim i ne mogu ništa reći, znam da potražnja i plate rastu veoma brzo.

I još nekoliko malih dodataka: naravno, java nije jedini programski jezik s kojim automatska montaža smeće i aplikacije za Android mogu se pisati, na primjer, u C++-u, a ima i drugih slobodni jezici itd. i tako dalje. ALI java istovremeno spada u sve ove kategorije, za razliku od drugih jezika.

VOLIM JAVU! =)


Ovaj članak će pokriti osam najčešćih mitova i zabluda o Javi.

Java je spora

Lepo je stari mit, ali nekada davno to je bila istina. U početku su virtuelne mašine koje su pokretale Java bajt kod bile nesavršene, a osim toga, Java jezik i virtuelna mašina nisu razvijeni za računare u uobičajenom smislu, već kao svojevrsno univerzalno okruženje za razni uređaji, gdje brzina programa nije bila kritična, a obim podataka beznačajan. Razlika u brzini obavljanja istih zadataka između redovnog kompajliranog koda i interpretiranog Java koda mogla bi biti stotine puta.

Ali uprkos tome, trenutno je brzina bajtkoda na modernim virtuelnim mašinama inferiorna u odnosu na najbolje kompajlere mašinskog koda za samo nekoliko desetina procenata, au nekim slučajevima ih čak i premašuje! Može li interpretacija zaista nadmašiti kompajlirani program? Naravno da ne.

Činjenica je da Java bajt kod više ne interpretira virtuelna mašina, već se kompajlira, pa čak i optimizuje, dinamički, na osnovu prikupljenih podataka. virtuelne mašine podatke o napretku programa.

Prema testovima „brzine vatre“, Java je prilično dobra, ali šta je sa tim stvarne aplikacije? Nažalost, stvari ne idu tako dobro za prilagođene aplikacije. Razlog za to je spor rad grafičke komponente sistemima.

Java programeri znaju da jezik ima dva standardne karakteristike raditi sa korisnički interfejs- AWT i Swing. AWT je GUI implementacija specifična za platformu. Radna brzina većine njegovih implementacija je sasvim zadovoljavajuća, ali je broj funkcija vrlo ograničen. Swing biblioteka je razvijena kao alternativa AWT-u. U potpunosti je zasnovan na jezičkim mogućnostima, ima mnogo funkcija i nezavisan je od platforme, ali je njegova brzina niska.

Javu je teško programirati

Mit o teškoćama programiranja u Javi uglavnom se zasniva na činjenici da standardna biblioteka classes ima strukturu stabla na više nivoa i uključuje ogroman broj različitih objekata i primijenjenih algoritama. Ali zahvaljujući standardnim klasama kreiranje i održavanje aplikacija je pojednostavljeno.

Programski jezik Java je potpuno objektno orijentisan. Njegova sintaksa je slična C++. U isto vrijeme, redundantna funkcionalnost C++-a koja stvara greške (kao što je preopterećenje operatora ili višestruko nasljeđivanje) se odbacuje.

Umjesto višestrukog nasljeđivanja, Java koristi mnogo jednostavniji koncept “interfejsa”, odnosno imenovanu konvenciju za pozivanje skupa funkcija. Java koristi strogo kucanje i neće dozvoliti pogrešno prosleđivanje parametara; štaviše, mnogo je strožija od C++ u pogledu nepažnje u izvornom kodu i, na primer, neće vam dozvoliti da kreirate metodu sa delom koda koji se očigledno ne koristi. Takođe, Java neće kompajlirati program sa neinicijalizovanom promenljivom.

Jedan od glavnih izvora problema pri razvoju programa je nepravilna upotreba dinamičke memorije, tačnije, pogrešno oslobađanje prethodno zauzetih blokova. Java koristi koncept “sakupljača smeća”. To znači da programer uopće ne mora brinuti o oslobađanju zauzete memorijske površine. Sam sistem će ga dodati slobodna memorija, kada otkrije da se povezuje sa programom na ovaj objekat ne više.

Java koristi moderan koncept „izuzeća“ da signalizira greške. Izuzetak je poseban događaj koji signalizira grešku u programu. Većina programskih jezika (i API-ja) prosljeđuje rezultat poziva funkcije ("loš" ili "dobar") pozivaocu da signalizira grešku. Kod analize povratne vrijednosti se na kraju pomiješa s normalnim kodom za izvršavanje programa, što programe čini teškim za čitanje i modificiranje.

Međutim, što je još važnije, izuzeci ne samo da poboljšavaju čitljivost izvorni tekstovi, ali i spriječiti funkciju koja poziva da ignorira grešku. Od programera se traži da ili "uhvati" izuzetak ili delegira ovu odgovornost funkciji koja poziva.

Gore navedenom možemo dodati da je podrška za multitasking „ugrađena“ u Javu. Prilikom kreiranja višenitnih aplikacija, programer, po pravilu, mora da koristi alate operativnog sistema (semafore, mutekse) za sinhronizaciju zadataka. Java ponude univerzalno rješenje na osnovu konstrukcija samog jezika.

Da rezimiramo, možemo reći da se Java po složenosti programiranja ne može porediti sa C++ ili Pascalom. Razvijene jezičke mogućnosti, podrška za sakupljanje smeća, jedna standardna biblioteka klasa, kontrola od strane kompajlera - sve to značajno pojednostavljuje kreiranje aplikacija i ubrzava njihovo otklanjanje grešaka.

Java svuda radi isto

„Napiši jednom – trči bilo gdje.” Drugi dio ovog slogana kreatora Jave sadrži izjavu da Java program svuda radi isto. Nažalost, u stvarnosti nije sve tako jednostavno. Java mašine raznih kompanija razne platforme NISU 100% kompatibilni jedno s drugim.

Razlike u radu Java mašina na različitim platformama postoje i u implementaciji multitaskinga i u radu biblioteke prozora (AWT). Složeni Java programi moraju biti pokrenuti na različitim platformama kako bi bili sigurni da je sve u redu. Uopšteno govoreći, čak i na istoj platformi, ali na različiti automobili, slični programi se mogu izvršavati na različite načine.

Na primjer, programer može naići na situaciju u kojoj se njegov kod ponaša drugačije na višeprocesorskoj mašini nego na mašini sa jednim procesorom. Posebno treba spomenuti Java mašinu koju je kreirao od strane Microsofta(u daljem tekstu MS JVM). Nosi naziv Java ne sasvim legalno (što je potvrđeno nedavnom sudskom odlukom).

U MS JVM nećete vidjeti podršku za RMI ili CORBA tehnologije, ali ovdje možete koristiti ActiveX objekte - tehnologiju koja je specifična samo za Windows platformu i ne postoji nigdje drugdje. Microsoft je proširio standardnu ​​biblioteku Java klasa sa tipovima koji odražavaju neke od karakteristika Windows platforme.

Također ne smijemo zaboraviti na različite brzine rada Java mašina. Ova razlika može uzrokovati neprihvatljiva kašnjenja programa ili druge probleme. Zaključak iz navedenog je jednostavan: kada kreirate Java programe, trebali biste ih testirati na širokom spektru platformi i ne koristiti nestandardne jezičke ekstenzije.

Java je programski jezik

Postoji mišljenje da je Java samo programski jezik. Ali ovo je samo zabluda. Da, Java je takođe programski jezik. Ovo uključuje čitav niz drugih tehnologija.

Java je platforma, moderna softverska platforma, koji uglavnom nastoji zamijeniti sve funkcije operativnog sistema. Možda će se to dogoditi u bliskoj budućnosti (iako su slični pokušaji već napravljeni, ali nisu uspjeli). Glavna snaga Jave je nezavisnost od platforme, tj. nezavisnost softver radi na virtuelnoj mašini, od hardver i operativni sistem.

Treba napomenuti da za Java platforme ima nekoliko desetina različitim jezicima programiranje. Neke od njih može kompajlirati sam Java kompajler, dok drugi mogu raditi direktno sa virtuelnom mašinom.

Java je C++-ova mlađa sestra

Da li programski jezik Java zaista ima svoje porijeklo u C++? Vjerovatnije ne nego da. Sunova ideja je bila da učini Javu lakšom za učenje tako što će njenu sintaksu učiniti sličnom onoj u najčešćem programskom jeziku. Ovo je na kraju trebalo da stimuliše i pojednostavi prelazak na Javu za C programere.

Istovremeno, Java sadrži ideje i mehanizme izvučene iz brojnih drugih sistema i programskih jezika. Uzmimo, na primjer, kontrolu nad prelivanjem niza (Pascal). Ili činjenica da je kompilacija Java programa odvojena, klase su podijeljene u pakete. Ovo je jedna od varijanti modularnog programiranja (kao, recimo, u Modulu-2), koja se razlikuje od koncepta neovisne kompilacije C++ datoteka.

Neke inovacije su preuzete iz jezika i sistema nepoznatih široj javnosti.

Na primer, princip interfejsa klase je prenet iz jezika Objective C koji je razvio NeXT. Mehanizam obrade izuzetne situacije gotovo u potpunosti posuđen iz Module-3. Principi interne implementacije tako važne komponente Java jezika kao što je „prikupljanje smeća“ su prvenstveno izvučeni iz Lisp-a. Neki „normalni“ jezici, kao što su Eiffel, Modula-3, Oberon, takođe su u početku imali ovaj mehanizam.

Sumirajući gore navedeno, možemo zaključiti da je Java apsorbovala veliki broj ideja i pristupa iz različitih programskih sistema, uključujući sintaksu jezika C++.

Java je dobra samo za aplete i web

Java je neraskidivo povezana sa apletima. Zaista, apleti su sastavni dio jezika i Java platforme u cjelini. Osim toga, njihovo stvaranje je uspješan marketinški korak kompanije Sun. Bez apleta, svijet ne bi tako brzo naučio o Javi.

Ideja ugrađivanja aplikacija u hipertekstualne dokumente (HTML) nije tako nova. Mnoge kompanije su pokušale da unaprede svoje tehnologije u ovom tržišnom sektoru, ali trenutno Java ovde ima malo konkurenata. Danas je to, možda, JavaScript, ActiveX i Flash tehnologija. Posljednja dva, međutim, rade samo pod Windowsom.

Šta programere privlači u Javu? Moćan sigurnosni model jedan kod za sve platforme, široke mogućnosti za korištenje gotovih biblioteka, jednostavnost programiranja. U stvarnosti, nije sve tako ružičasto kako bismo željeli. Sigurnosni model svakako nije loš, ali njegova implementacija kod različitih proizvođača varira. Kao rezultat toga, kod koji dobro radi u jednom pretraživaču možda neće raditi u drugom.

Pa, ako je unutra Java pretraživači Da, šta je onda sa aplikacijama koje rade bez pretraživača, ali pod kontrolom virtuelne mašine direktno u njoj operativni sistem? Ovdje je situacija slična; svaki moderni OS već ima instaliranu neku verziju JVM-a. I korisnici ga mogu koristiti za pokretanje svojih postojećih JVM aplikacija, iako većina nije ni svjesna ove mogućnosti.

Ne treba zaboraviti na serverske aplikacije, uključujući pristup bazama podataka i mrežne aplikacije. A ovo je glavno područje primjene Java tehnologija u dato vrijeme. Ova klasifikacija uključuje ne samo međuverske aplikacije, već i same serverske aplikacije.

A ako dodamo i ovdje klijentske aplikacije ili čak apleta, onda se ispostavilo full set za automatizaciju.

Java platforma je više od apleta. Koristi se svuda, od klijenta do servera. A ako se setite da se Java koristi ne samo na računarima, već i na mobilnim telefonima, kućanskih aparata i pametnih kartica, čini se da je već prodrla u sve sektore tržišta gdje je korištenje programiranja barem nekako moguće.

Java je idealna, ne treba je poboljšati

Java je nastala 1994-1995. Do tog vremena, informaciona tehnologija je doživjela intenzivan razvoj, kako zbog “personalizacije” računara, tako i dijelom zbog širenja interneta. Autori Jave pokušali su u njoj utjeloviti sva dostignuća informatičke industrije, ali je ideal, kao što znamo, nedostižan. Neke stvari su ipak izostavljene, uključujući provjeru uslova za ispravno izvođenje programa, „programiranje po ugovoru“, šablone itd.

C++ ima provjeru stanja koja se zove asset. Ova funkcija provjerava neki uslov koji je programer odredio za "tačno". Ako je uslov netačan, asset zaustavlja program i pokazuje da su prihvatljivi uslovi rada prekršeni, a kompajler odbacuje pozive na asset prilikom kreiranja konačne verzije programa. Ne postoji takva funkcija u Javi. Naravno, možete provjeriti uvjete i generirati izuzetke na osnovu njih, ali kao rezultat toga, sve ove provjere će završiti u izvršnom kodu programa.

Postoji moćnija tehnologija od imovine. Ovo je Design By Contract, "programiranje pod ugovorom", što vam omogućava da pojednostavite kreiranje velike aplikacije, koji koriste prethodno kreirani kod. Java ne podržava ni ugovorno programiranje.

Predlošci klasa u C++ su mogućnost generiranja koda "za" naveden korisnik klase (u stvari, Java programeri su sasvim namjerno napustili šablone, vjerujući da oni više problema onda dobro. - Pribl. ed.). Kolekcija objekata implementiranih pomoću šablona će se kompajlirati svaki put za svaki tip objekta pohranjenog u toj kolekciji. Tipična kolekcija objekata u Javi pohranjuje instance klase Object, pretka svih Java klasa.

Programer je, kada dohvaća objekte iz kolekcije, primoran da koristi cast tipa kako bi koristio svoju "radnu" klasu. Ova aplikacija radi dobro sve dok drugi programer slučajno ne doda instancu potpuno druge klase u kolekciju. Tada se greška ne javlja u fazi kompilacije, već se javlja kasnije, kada se instanca dohvati i pokuša se prebaciti na pogrešan tip.

Trenutno, Java nastavlja da se razvija. Moguće je da ćemo u bliskoj budućnosti vidjeti neke od gore navedenih mogućnosti.

Java košta mnogo novca

Da li je Java tehnologija zaista skupa? Sve ovisi o složenosti softvera koji se razvija. Na primjer, za malu aplikaciju (jedan do tri čovjekomjeseca), Java možda neće koštati ništa. Naravno, ova tehnologija nije potpuno besplatna. Kvalifikovani Java programer košta.

Također postoji potreba za alatima za dizajn aplikacija, profiliranjem Java programa i drugim alatima koji se koriste za kreiranje velikih projekata. Ali, općenito govoreći, konkurencija na tržištu za takav softver je prilično velika, pa stoga cijene padaju. Izbor je raznolik, a programer nije vezan za određenu kompaniju.

Java je programski jezik i računarska platforma koju je prvi put objavio Sun Microsystems 1995. Postoje mnoge aplikacije i web stranice koje ne rade bez instalirane Jave, a broj takvih web stranica i aplikacija se svakim danom povećava. Java je brza visoki nivo zaštitu i pouzdanost. Od laptop računari do podatkovnih centara, od igraće konzole do superkompjutera koji se koriste za naučna istraživanja, od mobiteli na Internet - Java svuda!

Da li je moguće besplatno preuzeti Java?

Da, Java je besplatna za preuzimanje. Skinuti najnoviju verziju na web stranici.

Ako razvijate ugrađeni ili uređaj za domaćinstvo i želite da koristite Java tehnologije u njemu, kontaktirajte Oracle stručnjake i nabavite detaljne informacije o Java integraciji u Razne vrste uređaja.

Zašto je potrebno izvršiti nadogradnju na najnoviju verziju Jave?

Najnovija verzija Jave sadrži važna poboljšanja koja poboljšavaju performanse, stabilnost i sigurnost Java aplikacija koje rade na vašem računaru. Instaliranje ovoga besplatni paket ažuriranja će osigurati da Java aplikacije instalirane na vašem računaru rade bezbedno i efikasno.

TEHNIČKI DETALJI
Čuo sam termine Java virtuelna mašina i JVM. To je ono što je softver Java?

Java virtuelna mašina je samo jedan aspekt Java softvera koji se koristi prilikom komunikacije preko Interneta. Java virtuelna mašina je ugrađena direktno u Java softver za preuzimanje i koristi se za podršku pokretanju Java aplikacija.

Najbolji članci na ovu temu