Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • OS
  • Zašto vam je potrebna Java na računalu ili prijenosnom računalu? Čuo sam izraze "Java Virtual Machine" i JVM

Zašto vam je potrebna Java na računalu ili prijenosnom računalu? Čuo sam izraze "Java Virtual Machine" i JVM

  • Prijevod

Lako je zaboraviti važnost tehnologije nakon što poput kometa prostruji kroz kolektivnu svijest i umre vatrenom smrću iza horizonta. Na primjer, Cobol - nekada je ovaj jezik bio ikoničan cijelo jedno doba, ali sada se može usporediti samo s pokvarenom ribom. Ovih će vam dana svaki hipster programer reći da Cobol jest sranje je, star i beskoristan jezik. Java bi mogla biti sljedeća žrtva "aktualnih" prosudbi.

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

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

Možda je to zato što Java nudi bolji poslovni plan od predaje 30 posto Appleovih prihoda i držanja palčeva nadanja da će vaša aplikacija dospjeti 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 niza platformi za razvoj softvera koje pružaju učinkovit rad na sustavima s različitim arhitekturama čipova. Java pomaže u rješavanju problema programerima poslužitelja, klijenata i ugrađenih sustava.

Prije nego što zaboravimo golemi doprinos Jave IT industriji i njenu ulogu danas, želio bih podijeliti 12 uvjerljivih razloga zašto Java ne samo da preživljava, već i napreduje ovih dana.

Ne zovite to povratkom; Java nije nigdje nestala, ona dominira ovdje i svugdje.

Razlog br. 1: Nepotopivost u svijetu politike (često prljave)

Svijet tehnologije Javi nije dao ni dana odmora; njeni su neprijatelji bili brojni i dobro naoružani. Unatoč tome, jezik je cvjetao. Mnogi od njegovih klevetnika iznenađeni su što je Java još uvijek dobrog zdravlja. Prečesto su slušali mišljenja mrzitelja Jave i nisu pokušavali razumjeti razloge njezina uspjeha.

Prvi veliki neprijatelj Jave bio je Microsoft. Ova tvrtka je u Javi vidjela najdostojnijeg nasljednika jedinstva koje je tada nudio samo MS-DOS. Redmond je kritizirao i borio se protiv Jave od samog početka. Java nije bila uspješna za razvoj aplikacija za stolna računala, dijelom i zbog magične virtualne java stroj krenuo presporo. Unatoč manjim usporavanjima, općenito su Java aplikacije na Windowsima prilično upotrebljive.

Iz nekog neobjašnjivog razloga, Steve Jobs Javu nikad nisam volio. Čak i kada su Mac uglavnom ignorirali svi osim Adobea, Java nije dobila priliku. Kompatibilnost s Javom mogla bi potaknuti razvoj Maca, ali za Apple je Java uvijek bila podrška. (Općenito, iOS telefoni rade lakše od mog Androida, pa je možda Steve bio u pravu)

Java je također patila od brojnih unutarnjih sukoba. IBM je volio jezik, ali se uvijek borio sa Sunom. IBM-ova odluka da svoj divni IDE nazove "Eclipse" bila je prilično hladno primljena od strane ljudi iz Sunca (ljudi iz Sunca nikad nisu razumjeli posao tako dobro kao IBM).

Unatoč svim zabludama svojih tvoraca, Java je brzo ojačala svoju poziciju na poslužiteljima i postala prikladna za korištenje u segmentu stolnih računala. Svaka tehnologija mora plivati ​​protiv političke plime, au slučaju Jave, ona je ustrajala, dokazavši se kao odličan alat za rješavanje problema.

Razlog #2: Magija potoka

Jedan od snage Java Virtual Machine oduvijek je bila njegova sposobnost da s lakoćom žonglira s više niti. JVM je optimiziran za velike strojeve s više jezgri i može bez problema obraditi stotine niti. Zahvaljujući ovoj mogućnosti, drugi jezici su se pojavili na JVM-u - stvaraju se unakrsni kompajleri i emulatori koji se pokreću na vrhu JVM-a.

Ove magične moći koriste mnoge web stranice s velikim prometom. Programeri pišu kod na svom prijenosnom računalu i zatim implementiraju aplikaciju na moćan poslužitelj, gdje iskorištava višejezgrenu snagu do svog punog potencijala.

Ruby je jedan od modernih konkurenata Javi. On je čišći, životniji Engleski jezik, sintaksa. Ipak, kada ljubitelji Rubyja trebaju visoke performanse, okreću se JRubyju. Ovo je verzija Rubyja koja radi povrh JVM-a, pružajući puno više visoke performanse pod velikim opterećenjem s više niti. Nakon što su uložili mnogo truda u pouzdan rad s nitima, Sunovi inženjeri donijeli su pravu odluku.

Razlog #3: Java kao prvi programski jezik

Java je primarni jezik za Advanced Placement Computer Science (AP) - program treninga i ispiti za studente Srednja škola u SAD-u). To znači da je Java često prvi programski jezik učenika. Stoga je Java i dalje s njima "i u dobru i u nevolji". Kada učenici kasnije uče nove programske jezike, uspoređuju ih s onim što je dostupno u Javi. Čak i ako zamijene Javu nečim drugim, njihovo se mišljenje i dalje temelji na onome što su naučili "u prvom razredu".

Java ima mnogo prednosti za učenje informatike. Neki programeri mrze specificiranje tipova podataka, često to nazivajući "sigurnosnom mrežom" u programiranju. Ovo možda zvuči čudno, ali je odličan način za početnike da razumiju kako računalo radi. Zahtjev za specificiranjem tipova podataka tjera ih na razmišljanje unutarnja struktura sustava.

Neki od najnovijih jezika ne koriste vitičaste zagrade jer programerima smeta da ih ispravno formatiraju. To može biti točno u nekim slučajevima, ali te iste vitičaste zagrade mogu biti korisne novim programerima za razumijevanje ugniježđivanja blokova koda.

Netko pokušava promovirati vlastiti jezik i u većini slučajeva stvara jezik s manje strogom sintaksom od Jave. Ovo je sjajno, ali jednostavnija, čišća sintaksa dolazi sa svojim opasnostima koje se pojavljuju kasnije. Neki ljudi smatraju da im zračni jastuci ograničavaju slobodu programiranja, ali Java usađuje dobre navike od samog početka. U budućnosti, nakon što steknu iskustvo, bivši "novorođenci" moći će ukrotiti elegantnije i opasnije dizajne.

Razlog #4: (Gotovo) kompatibilnost s više platformi

Java nije bila prvi jezik za pisanje višeplatformskih aplikacija, ali je postala najpopularnija. To ne znači uključenu punu kompatibilnost različite platforme- nedostaju knjižnice ili nekompatibilne verzije knjižnice će lako zakopati vaš kod. Ne možete uzeti kod aplikacije za stolno računalo kompiliran 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 platformi. Kada kôd 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čunalu i zatim je implementirati na ciljnu platformu, bilo da je to telefon ili poslužitelj. Ako je dostupno prevodiocu potrebne knjižnice, kod će raditi. Neprocjenjivo je.

Razlog #5: Kontinuirani uspjeh Jave na čipovima

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

Ova dominacija nije ništa novo. Skraćena verzija jezika i virtualnog stroja poznata kao Java ME naširoko se koristi u mnogim takozvanim telefonima s značajkama, kojih ima u milijunima diljem svijeta.

Kad se sve to sabere, Javina dominacija je nevjerojatna.

Razlog #6: Blu-Ray

Jezik Java, nekoć nazvan "Oak", bio je namijenjen TV prijemnicima, gdje je Sun želio dominirati. Nije se bilo moguće točno pridržavati plana, ali Java je ipak uspio pronaći ugodno mjesto u dnevnoj sobi. Blu-Ray standard izgrađen je oko Jave i svatko tko želi dodati dodatni sadržaj na Blu-Rayu ćete morati koristiti Javac kompajler.

Blu-ray diskovi– ovo nije samo neobrađeni video. Korištenjem Java koda možete mijenjati/dodavati dodatne funkcije i interaktivnost. Blu-Ray diskovi su mješavina komprimiranog videa i Java bajtkoda.

Razlog #7: vitičaste zagrade jednostavno funkcioniraju

Ljubitelji otmjenih jezika kao što su Ruby, Python ili CoffeeScript snishodljivo gledaju kako Java (i C) tjera programere da umetnu vitičaste zagrade kako bi eksplicitno označili početak i kraj svakog bloka koda. Okrugle, kovrčave i ravne uglate zagrade- sve je to prokletstvo za ove napredne programere. (Ja osobno ne volim zagrade i još uvijek sam nostalgičan kako u nekim verzijama Lispa možete zatvoriti sve otvorene zagrade jednom uglatom zagradom)

Ali promjena interpunkcije ne uklanja složenost, ona je skriva. Korištenje bijelog prostora za označavanje privitaka tjera vas da intuitivno vidite ono što ne vidite. Označavanje ugniježđenja razmacima odlično funkcionira ako vaš izraz stane u jedan redak, ali postaje užasno ako imate više razina ugniježđenja. Kad pišem u Pythonu, primjećujem da brojim i preračunavam udubljenja. Samo zato što kôd izgleda kao engleski ne znači da ga je lako razumjeti kao englesku rečenicu.

Razlog #8: Groovy

Ako Java programeri trebaju čišću i jednostavniju sintaksu, dinamičko tipkanje, to nije razlog za trčanje na novonastale jezike. Mogu koristiti Groovy, zgodan Java hack s predprocesorom koji proizvodi JVM bajt kod. Jezik je u potpunosti integriran s Javom - možete sigurno pozivati ​​Java biblioteke iz Groovy koda. To je kao Java s nekim zvončićima i zviždaljkama.

Ova fleksibilnost omogućuje programerima da samostalno dizajniraju rješenja za svoje probleme. Kad je Groovy sporiji (to se često događa pri korištenju dinamičkih poziva metoda), programer uvijek može ponovno napisati dijelove koda kritične za performanse u jezgri Jave.

Razlog #9: JVM

JVM je izgrađen i optimiziran za upisani kod sa statičkim kontekstom koji je generirao javac kompajler, ali s vremenom su programeri jezika shvatili da JVM može izvoditi kod napisan na jezicima koji nisu Java. Ako kompajler proizvodi ispravan Java bajt kod, JVM nije briga na kojem je jeziku napisan. Programeri Haskell-a, Scale, Clojure-a i Clojure-a uskočili su u "jakovu električnu lokomotivu" stvarajući vlastite kompajlere.

Privlačnost je očita. Sun/Oracle čine svoj dio u stvaranju međuplatformskog okruženja, a svi ostali to iskorištavaju. Sun/Oracle inženjeri dotjeruju 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 stvorio C# i njegov pristup stvaranju kompajlera za jezike koji rade na C# VM (CLR). C# programeri kažu da mogu pisati različiti jezici– međutim, samo na VM pod Windowsima. Nevjerojatna fleksibilnost!

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

Nekoć je baza podataka bila nedokučiva crna kutija koja je pohranjivala informacije i brzo i učinkovito 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 bili su napisani u Javi. Cassandra, Lucene, ElasticSearch, HBase i neo4j samo su neki od primjera. Osim toga, postoje neke baze podataka usklađene s ACID-om napisane u Haskell-u koje rade na JVM-u.

Ove su baze podataka obično otvorenog koda i lako ih je ugraditi. Neki ih ljudi pokreću kao neovisne usluge, drugi ugrađuju svoj kod (u obliku knjižnica) u vlastiti stog. U svakom slučaju, status Jave kao radnog jezika na razini baze podataka jamči da će Java programeri imati lakše razumijevanje i rad s ovim bazama podataka. Kodiranja ili razdjelnici redaka neće smetati Java programerima.

Razlog #11: Minecraft vlada ovim stoljećem

Dok Ruby nastavlja dobivati ​​svoj dio obožavatelja, sljedeća generacija zaljubljuje se u Javu. Zašto? Jedna riječ: Minecraft. Napisano je u Javi. Mladi igrači koji žele proširiti Minecraft moraju znati Javu kako bi pisali dodatke za Minecraft. To jamči da će odrasla “djeca” sigurno pisati na Javi.

Razlog #12: Otvoreni kod

Sun je uvijek bio jedan od lidera u Otvoreni izvor zajednicu, ali nikada nije uspjela u potpunosti osloboditi Javu. To nije spriječilo Java programere da napišu hrpu izvrsnih biblioteka i besplatnih projekata. otvorene licence. Projekt Apache nastavlja pružati mnoge Java projekte pod licencom koja ne zahtijeva mnogo zauzvrat.

Sun je prestao izdavati većinu koda pod GPL-om 2007. Od tada, Sun i njegov novi vlasnik, Oracle, pokušavaju biti dobri menadžeri jezik Java. Naravno, Oracle je ukaljao svoj ugled tužbama protiv Googlea, ali osim toga, platforma se uglavnom može smatrati otvorenom i besplatnom.

Hejtera ima puno, ali Java ide naprijed

Java svakako ima svoj dio problema. Mrzitelji Jave nastavit će sliniti i lupati po tipkovnici, objavljujući zlobne komentare na internetu. Skupljač smeća može uzrokovati štucanje i drhtanje. Upisivanje podataka je dosadan posao i ne može eliminirati doista loš kod. Bilješke su previše složene. Nove značajke u Javi ne razvijaju se tako brzo kao u prošlosti. Vitičaste zagrade dodaju malo nereda. Ovaj popis ide u nedogled.

Međutim, nijedna od konkurentskih tehnologija nije uspjela tako široko i duboko pristati na obale IT industrije. Iako je neke od Javinih problema prilično lako popraviti, popravci obično uvode probleme sami za sebe.

Uostalom, to je jedna od prednosti Jave. Može se mijenjati i koristiti za gotovo sve zadatke. Većinu biblioteka možete zamijeniti vlastitim kodom ako trebate posebne funkcionalnost. Java je vrlo fleksibilan jezik otvorenog koda. Bez obzira na jezična i platformska ograničenja, gotovo svaki problem može se riješiti s relativnom lakoćom. To znači da su Java programeri i dalje među najproduktivnijima. Iako knjige o Javi više ne dominiraju popisom bestselera i Oracle ne objavljuje ažuriranja onoliko često koliko bi želio, Java nastavlja ne samo živjeti, nego i napredovati.

Možda najčešće pitanje među ljudima koji se žele baviti programiranjem, ali se nisu odlučili na kojem jeziku to raditi. Borbe na forumima i dalje traju. Java ili C++? Ili možda Python? Recimo odmah da su ove usporedbe poput usporedbe zelene s okruglom. Da, neke moderni jezici programiranja su slična jedna drugoj. Da, neki su bolji u upravljanju memorijom od drugih. Ali na nekima je bolje implementirati poslužiteljske 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 tog jezika, poznavanju i razumijevanju problema za koje je stvoren i sposobnosti njegove primjene u praksi.” ©

No, vratimo se našim ovcama. Zašto biste svoju karijeru trebali započeti s Javom i koje prednosti ona ima u odnosu na druge objektno orijentirane jezike? Nećemo se upuštati u teoriju i pojmove nepoznate početnicima, već ćemo jednostavno iznijeti nekoliko argumenata koje svatko može razumjeti.

1. Nizak ulazni prag.

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

2.Dostupnost.

...svugdje, bilo kada, za bilo koju platformu. Osim toga, alati za programiranje u Javi su potpuno besplatni, ima ih puno (kao i informacija o njima). Osim JDK-a, možemo istaknuti i Eclipse - slobodno distribuirano razvojno okruženje koje ima široku funkcionalnost i pristojnu razinu kvalitete (iako je, prema Lurkmoreu, Eclipse još uvijek isti uređivač teksta, ali s preferencijama i mademoiselles. To je također više platformi, ali više o tome kasnije).

3. Skup standardnih biblioteka klasa.

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

4. Puna više platformi.

Pravilno dizajnirana aplikacija jednako će dobro raditi na Windowsima, MacOS-u, Linuxu i mnogim drugim operativnim sustavima. Napišite kod jednom, za jedan sustav. A zatim ga jednostavno pokrenite na bilo kojem drugom.

5. Zadnja na listi, ali možda i najvažnija je potreba na burzi rada.

Potreba za Java programerima ne jenjava već nekoliko godina. Štoviše, samo raste. Jer Najbolja odluka Za korporativni poslužitelji baze podataka - Java, rado ćete se zaposliti kao pripravnik čak i sa osnovno znanje OOP (za daljnje obrazovanje i obuku vas kao IT stručnjaka) od mnogih tvrtki u Ukrajini i inozemstvu.

U ovom članku ću napraviti malu usporedbu Jave s drugim programskim jezicima i opisati najznačajnije, po mom mišljenju, prednosti ovog jezika.

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

A u skoroj budućnosti, mislim da se to neće promijeniti jer...

2.pisati u Javi mobilne aplikacije (Za operativni sustav Android, čija je publika u proljeće 2013. bila više od 162 milijuna korisnika), web i desktop rješenja. Mogao bih jako dugo pisati zasebno o svakoj kategoriji, ograničit ću se na mali broj brojeva i svoja razmišljanja.
Ako se ne varam, Android platforma se pojavila 2005. godine, tj. ima samo 8 godina (!) i za to vrijeme uspjela je osvojiti tako veliku publiku korisnika. Njegov rast za Prošle godine iznosi gotovo 80 posto. Detaljnije statistike možete pogledati
I čitaj o androidu
Desktop i web aplikacije već su stvoreni u Javi veliki broj godina i mnogi projekti trebaju podršku, klijenti žele vidjeti nove verzije, ažuriranja itd., što ukazuje na potrebu za programerima koji će pružiti podršku. Java se također redovito ažurira (još jedan plus :)) i pruža svijetu nove tehnologije koje su u velikoj potražnji! I prirodno su nam potrebni ljudi koji posjeduju te "stvari".

Također želim napomenuti da Google staklo(proizvod tvrtke za koju sam siguran da će promovirati proizvod u masama u bliskoj budućnosti) koristite Android OS! Mislim da će u dogledno vrijeme doći do vrhunca te stvari i mladi će sigurno nastojati to kupiti, tj. publika će se znatno povećati.

3. Java - višeplatformski programski jezik(u daljnjem tekstu YAP). Oni. programi koji su napisani mogu se izvoditi na različitim operativnim sustavima (windows, linux...).

4. Razvijanje na Java posao Odvoz smeća se vrši automatski. Meni se osobno to nije svidjelo i zaboravio sam očistiti memoriju prilikom programiranja u C-u (da budem iskren, to se čak i ne može nazvati programiranjem). Uopće nema rada s pamćenjem! (Ni ja nisam dobar s pokazivačima). Da to kažem jednostavnim jezikom, Lakše je raditi s Javom, nema potrebe brinuti se i gnjaviti oko nekih stvari (jezik više razine od C\C++).

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

6. Javu je lako naučiti. Moj prvi student je u nešto više od pola godine praktički naučio Javu od nule do te razine da je primljen na plaćenu obuku u IT tvrtku, učeći uglavnom jednom tjedno. Također, u nedavnoj budućnosti, bio sam suučesnik u tome kako su dečki u 2 mjeseca na mojim tečajevima naučili programirati od nule i također dobili posao. Java je posebno laka za one koji znaju engleski. A za one koji ne znaju, preporučam da hitno počnu proučavati jer... nakon jave 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 u isto vrijeme je i cijela platforma - mnoge klase koje su kreirali programeri jezika s ciljem da ga razviju i pojednostave njegov rad).

Popis se nastavlja. Fokusirao sam se na one stvari koje su mi bile ključne, u budućnosti ću možda detaljnije napisati svoja razmišljanja, iako su i sada ispala duža nego što sam očekivao.

U članku nisam spomenuo sve popularniji rubin na tračnicama. Nažalost, nisam radio s njim i ne mogu ništa reći, znam da potražnja i plaće jako brzo rastu.

I još neki sitni dodaci: naravno, java nije jedini programski jezik koji ima automatska montaža smeće i aplikacije za Android se mogu napisati npr. u C++ a ima i drugih slobodni jezici itd. i tako dalje. ALI java istovremeno spada u sve te kategorije, za razliku od drugih jezika.

VOLIM JAVU! =)


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

Java je spora

Lijepo je stari mit, ali jednom davno to je zapravo bila istina. U početku su virtualni strojevi koji su pokretali Java bajt kod bili nesavršeni, a osim toga, Java jezik i virtualni stroj nisu razvijeni za računala u uobičajenom smislu, već kao neka vrsta univerzalnog okruženja za razne uređaje, gdje brzina programa nije bila kritična, a količina podataka beznačajna. Razlika u brzini izvođenja istih zadataka između uobičajenog kompiliranog koda i interpretiranog Java koda može biti stotine puta.

Ali unatoč tome, trenutno je brzina bajt-koda na modernim virtualnim strojevima inferiorna u odnosu na najbolje prevoditelje strojnog koda za samo nekoliko desetaka posto, au nekim ih slučajevima čak i premašuje! Može li interpretacija stvarno nadmašiti sastavljeni program? Naravno da ne.

Činjenica je da Java bajt kod više ne tumači virtualni stroj, već se kompilira i čak optimizira, dinamički, na temelju prikupljenih virtualni strojevi podatke o napredovanju programa.

Prema “rate of fire” testovima, Java je sasvim dobra, ali što s tim stvarne primjene? Nažalost, stvari ne idu tako dobro za prilagođene aplikacije. Razlog tome je spor rad grafičke komponente sustava.

Java programeri znaju da jezik ima dva standardne karakteristike raditi s korisničko sučelje- AWT i Swing. AWT je GUI implementacija specifična za platformu. Brzina rada većine njegovih implementacija je sasvim zadovoljavajuća, ali je broj funkcija vrlo ograničen. Swing biblioteka razvijena je kao alternativa AWT-u. U potpunosti se temelji na jezičnim mogućnostima, ima mnogo funkcija i neovisan je o platformi, ali mu je mala brzina.

Javu je teško programirati

Mit o poteškoćama programiranja u Javi uglavnom se temelji na činjenici da standardna knjižnica klase ima strukturu stabla na više razina i uključuje ogroman broj različitih objekata i primijenjenih algoritama. No zahvaljujući standardnim klasama izrada i održavanje aplikacija je pojednostavljeno.

Programski jezik Java potpuno je objektno orijentiran. Sintaksa mu je slična C++. U isto vrijeme, odbacuje se suvišna C++ funkcionalnost koja stvara pogreške (kao što je preopterećenje operatora ili višestruko nasljeđivanje).

Umjesto višestrukog nasljeđivanja, Java koristi mnogo jednostavniji koncept "sučelja", to jest, imenovanu konvenciju za pozivanje skupa funkcija. Java koristi striktno tipkanje i neće dopustiti neispravno prosljeđivanje parametara; štoviše, mnogo je stroži od C++ u pogledu nepažnje u izvornom kodu i, na primjer, neće vam dopustiti da stvorite metodu s dijelom koda koji je očito neiskorišten. Također, Java neće kompilirati program s neinicijaliziranom varijablom.

Jedan od glavnih izvora problema pri razvoju programa je nepravilno korištenje dinamičke memorije, točnije nepravilno otpuštanje prethodno zauzetih blokova. Java koristi koncept "sakupljača smeća". To znači da se programer uopće ne treba brinuti o oslobađanju zauzetog memorijskog područja. Sustav će to sam dodati slobodna memorija, kada otkrije da je veza iz programa na ovaj objekt ne više.

Java koristi moderan koncept "iznimki" za signaliziranje pogrešaka. 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") pozivatelju kako bi signalizirao pogrešku. Kod analize povratne vrijednosti završava pomiješan s kodom za normalno izvršavanje programa, što čini programe teškima za čitanje i modificiranje.

Međutim, što je još važnije, iznimke ne samo da poboljšavaju čitljivost izvorni tekstovi, ali i spriječiti funkciju pozivanja da zanemari pogrešku. Od programera se traži ili "uhvatiti" iznimku ili delegirati ovu odgovornost pozivnoj funkciji.

Gore navedenom možemo dodati da je podrška za multitasking “ugrađena” u Javi. Prilikom izrade višenitnih aplikacija, programer u pravilu mora koristiti alate operacijskog sustava (semafore, mutekse) za sinkronizaciju zadataka. Java nudi univerzalno rješenje na temelju konstrukcija samog jezika.

Ukratko, možemo reći da se po složenosti programiranja Java ne može usporediti s C++ ili Pascalom. Razvijene jezične mogućnosti, podrška za sakupljanje smeća, jedinstvena standardna biblioteka klasa, kontrola od strane prevoditelja - sve to značajno pojednostavljuje stvaranje aplikacija i ubrzava njihovo uklanjanje pogrešaka.

Java svugdje radi isto

"Piši jednom - trči bilo gdje." Drugi dio ovog slogana tvoraca Jave sadrži izjavu da Java program svugdje radi jednako. Nažalost, u stvarnosti sve nije tako jednostavno. Java strojevi raznih tvrtki razne platforme NISU 100% međusobno kompatibilni.

Razlike u radu Java strojeva na različitim platformama postoje kako u implementaciji multitaskinga tako i u radu knjižnice prozora (AWT). Složeni Java programi moraju se izvoditi na različitim platformama kako bi bili sigurni da je sve u redu. Općenito govoreći, čak i na istoj platformi, ali na različiti automobili, slični programi mogu se izvoditi na različite načine.

Na primjer, programer se može susresti sa situacijom u kojoj se njegov kod ponaša drugačije na višeprocesorskom nego na jednoprocesorskom stroju. Posebno treba spomenuti Java stroj koji je stvorio od strane Microsofta(u daljnjem tekstu MS JVM). Ime Java nosi ne posve legalno (što je potvrđeno nedavnom sudskom odlukom).

U MS JVM-u 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 tipovima koji odražavaju neke značajke Windows platforme.

Ne smijemo zaboraviti ni različite brzine rada Java strojeva. Ova razlika može uzrokovati neprihvatljiva kašnjenja programa ili druge probleme. Zaključak iz gore navedenog je jednostavan: kada stvarate Java programe, trebali biste ih testirati na širokom rasponu platformi i ne koristiti nestandardna jezična proširenja.

Java je programski jezik

Postoji mišljenje da je Java samo programski jezik. Ali ovo je samo pogrešno mišljenje. Da, Java je također programski jezik. To uključuje cijeli niz drugih tehnologija.

Java je platforma, moderna softverska platforma, koji uglavnom nastoji zamijeniti sve funkcije operativnog sustava. Možda će se to dogoditi u bliskoj budućnosti (iako je već bilo sličnih pokušaja, ali nisu uspjeli). Glavna snaga Jave je neovisnost o platformi, tj. neovisnost softver radi na virtualnom stroju, od hardver i operativni sustav.

Treba napomenuti da za Java platforme postoji nekoliko desetaka različiti jezici programiranje. Neke od njih može kompajlirati sam Java kompilator, dok druge mogu raditi izravno s virtualnim strojem.

Java je mlađa sestra C++-a

Ima li programski jezik Java doista svoje korijene u C++? Vjerojatnije ne nego da. Sunova ideja bila je olakšati učenje Jave tako što će njezina sintaksa biti slična sintaksi najčešćeg programskog jezika. Ovo je u konačnici trebalo potaknuti i pojednostaviti prijelaz na Javu za C programere.

U isto vrijeme, Java sadrži ideje i mehanizme izvučene iz niza drugih sustava i programskih jezika. Uzmimo, na primjer, kontrolu nad preljevom polja (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 su inovacije preuzete iz jezika i sustava nepoznatih široj javnosti.

Na primjer, princip sučelja klase prenesen je iz jezika Objective C koji je razvio NeXT. Mehanizam obrade iznimne situacije gotovo potpuno posuđen iz Module-3. Načela interne implementacije tako važne komponente Java jezika kao što je "sakupljanje smeća" izvučena su prvenstveno iz Lispa. Neki “normalni” jezici, kao što su Eiffel, Modula-3, Oberon, također su u početku imali ovaj mehanizam.

Rezimirajući gore navedeno, možemo zaključiti da je Java apsorbirala velik broj ideja i pristupa iz različitih programskih sustava, uključujući i sintaksu jezika C++.

Java je dobra samo za aplete i web

Java je neraskidivo povezana s appletima. Doista, apleti su sastavni dio i jezika i Java platforme u cjelini. Osim toga, njihova je izrada uspješan marketinški korak Sunca. Bez apleta svijet ne bi tako brzo saznao za Javu.

Ideja o ugrađivanju aplikacija u hipertekstualne dokumente (HTML) nije tako nova. Mnoge su tvrtke pokušale unaprijediti svoje tehnologije u ovaj tržišni sektor, ali trenutno Java ovdje ima malo konkurenata. Danas su to možda JavaScript, ActiveX i Flash tehnologija. Posljednja dva, međutim, rade samo pod Windowsima.

Što programere privlači Javi? Moćan sigurnosni model jedinstveni 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, kôd koji dobro radi u jednom pregledniku možda neće raditi u drugom.

Pa, ako u Java preglednici Da, što je onda s aplikacijama koje rade bez preglednika, ali pod kontrolom virtualnog stroja izravno u operacijski sustav? 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 te mogućnosti.

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

A ako i ovdje dodamo klijentske aplikacije ili čak applete, onda ispada cijeli set za automatizaciju.

Java platforma je više od apleta. Koristi se posvuda, od klijenta do poslužitelja. A ako se sjećate da se Java ne koristi samo na računalima, već i na mobitelima, Kućanski aparati 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šavati

Java je nastala 1994.-1995. Do tog vremena informacijska tehnologija je doživjela intenzivan razvoj, što zbog “personalizacije” računala, a dijelom i zbog širenja Interneta. Autori Jave pokušali su u njemu utjeloviti sva dostignuća informacijske industrije, ali ideal je, kao što znamo, nedostižan. Neke stvari su ipak izostavljene, uključujući provjeru uvjeta za ispravno izvođenje programa, “programiranje pod ugovorom”, šablone itd.

C++ ima alat za provjeru uvjeta koji se zove sredstvo. Ova funkcija provjerava uvjete koje je odredio programer za "točno". Ako je uvjet netočan, asset zaustavlja program i označava da su prihvatljivi radni uvjeti narušeni, a prevodilac odbacuje pozive assetu prilikom izrade konačne verzije programa. Ne postoji takva značajka u Javi. Naravno, možete provjeriti uvjete i na temelju njih generirati iznimke, ali kao rezultat, sve će te provjere završiti u izvršnom kodu programa.

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

Predlošci razreda u C++-u su mogućnost generiranja koda "za" korisnik specificirao klase (zapravo, Java programeri su sasvim namjerno napustili predloške, vjerujući da oni više problema onda dobro. - Cca. ur.). Kolekcija objekata implementirana pomoću predloška kompilirat će se svaki put za svaku vrstu objekta pohranjenu u toj kolekciji. Tipična zbirka objekata u Javi pohranjuje instance klase Object, pretka svih Java klasa.

Programer, kada dohvaća objekte iz kolekcije, prisiljen je koristiti pretvorbu tipa kako bi koristio svoju "radnu" klasu. Ova aplikacija radi dobro sve dok drugi programer slučajno ne doda instancu potpuno različite klase u kolekciju. Tada se pogreška ne pojavljuje u fazi kompilacije, ali se javlja kasnije, kada se instanca dohvati i pokuša se pretvoriti u pogrešan tip.

Trenutno se Java nastavlja razvijati. Moguće je da ćemo u bliskoj budućnosti u njemu vidjeti neke od gore spomenutih mogućnosti.

Java košta puno novca

Je li Java tehnologija stvarno skupa? Sve ovisi o složenosti softvera koji se razvija. Recimo, za malu aplikaciju (jedan do tri čovjek-mjeseca), Java možda neće koštati ništa. Naravno, ova tehnologija nije potpuno besplatna. Kvalificirani Java programer košta.

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

Java je programski jezik i računalna platforma koju je prvi put objavio Sun Microsystems 1995. godine. Mnogo je aplikacija i web stranica koje ne rade bez instalirane Jave, a broj takvih web stranica i aplikacija raste svakim danom. Java je brza visoka razina zaštita i pouzdanost. Iz prijenosna računala u podatkovne centre, od igraće konzole do superračunala koja se koriste za znanstvena istraživanja, od Mobiteli na Internet - Java posvuda!

Je li moguće besplatno preuzeti Javu?

Da, Java je besplatna za preuzimanje. preuzimanje datoteka Najnovija verzija na web stranici.

Ako razvijate ugrađene ili uređaj za kućanstvo i želite koristiti Java tehnologije u njemu, kontaktirajte Oracle stručnjake i nabavite detaljne informacije o integraciji Jave u Različite vrste uređaja.

Zašto je potrebno nadograditi Javu na najnoviju verziju?

Najnovija verzija Jave sadrži važna poboljšanja koja poboljšavaju performanse, stabilnost i sigurnost Java aplikacija koje se izvode na vašem računalu. Instalacija ovoga besplatan paket ažuriranja će osigurati da Java aplikacije instalirane na vašem računalu rade sigurno i učinkovito.

TEHNIČKI DETALJI
Čuo sam izraze Java Virtual Machine i JVM. To je ono što je softver Java?

Java Virtual Machine samo je jedan aspekt Java softvera koji se koristi pri komunikaciji putem Interneta. Java Virtual Machine ugrađen je izravno u preuzimanje Java softvera i koristi se za podršku pokretanju Java aplikacija.

Najbolji članci na temu