Dalībnieks:VueJsKnight/Smilšu kaste

Vikipēdijas lapa
Šis raksts ir par programmēšanas valodu. Par citām jēdziena Java nozīmēm skatīt nozīmju atdalīšanas lapu.
Java
Paradigma Objektorientēta, strukturēta, imperatīva
Izveidota 1995
Autors Sun Microsystems
Pašreizējā versija

Java SE 21 (LTS)

(2023-09-19; 7 mēneši)
Galvenās implementācijas Vairākas
Dialekti Generic Java, Pizza
Ietekmējusies no Ada 83, C++, C#,[1] Delphi Object Pascal,[2] Eiffel,[3] Generic Java, Mesa,[4] Modula-3,[5] Objective-C,[6] UCSD Pascal,[7][8] Smalltalk
Ietekmējusi Ada 2005, C#, Clojure, D, ECMAScript, Groovy, J#, PHP, Scala, JavaScript, Python, BeanShell
OS Vairākplatformu
Licence GNU Vispārējā publiskā licence / Java kopienas process
Tīmekļa vietne www.oracle.com/java/

Java ir augsta līmeņa(high level), uz klasēm balstīta, objektorientēta programmēšanas valoda, kas izstrādāta tā, lai tai būtu pēc iespējas mazāk atkarību no tas ieviešanas.

Tā ir vispārēja lietojuma programmēšanas valoda, kas paredzēta, lai ļautu programmētājiem rakstīt vienreiz, palaist jebkur (write once, run anywhere WORA)[9], tas nozīmē, ka kompilētais Java kods var darboties visās platformās, kas atbalsta Java, bez nepieciešamības veikt atkārtotu kompilāciju.[10] Java lietojumprogrammas tiek kompilētas baitu kodā(byte code), izmantojot JDK, kas var darboties jebkurā Java virtuālajā mašīnā (JVM) neatkarīgi no esošās datora arhitektūras. Java sintakse ir līdzīga C un C++ valodām, taču tai ir mazāk zema līmeņa iespēju nekā jebkurai no tām. Piem, radītājiem(pointers).  

Java ieguva popularitāti neilgi pēc iznākšanas, un kopš tā laika tā ir ļoti populāra programmēšanas valoda[11]. Java bija trešā populārākā programmēšanas valoda 2022. gadā saskaņā ar GitHub datiem, un 2024. gada janvārī tā ir ceturtajā vietā TIOBE indeksā[12]. Lai gan Java joprojām ir plaši populāra, pēdējos gados ir vērojama pakāpeniska Java izmantošanas samazināšanās, un arvien populārākas ir citas valodas, kurās izmanto JVM[13]

Java sākotnēji izstrādāja Džeimss Goslings (James Gosling) uzņēmumā Sun Microsystems. Ta tika izlaista 1995. gada maijā kā Sun Java platformas galvenā sastāvdaļa. Sākotnējos un atsauces ieviešanas Java kompilatorus, virtuālās mašīnas un klašu bibliotēkas šo programmatūru Sun Microsystems sākotnēji izlaida saskaņā ar patentētām licencēm, bet no 2007.gada maijā saskaņa ar Java Community Proccess, Sun Microsystems kompānija izlaida zem GPL-2.0 tehnoloģijas, kas saistītas ar Java valodu.

Oracle kompānijā 2010.gada 27.javarī nopirka(acquired) Sun Microsystems kompāniju[14], tādējādi kopā ar Sun Microsystems aktīviem, Oracle pārņēma un tiesības uz Java programmēšanas valodu un saistītas ar to tehnoloģijas.

Oracle piedāvā savu HotSpot Java virtuālo mašīnu, tomēr oficiālā atsauces ieviešana ir OpenJDK JVM, kas ir bezmaksas atvērtā pirmkoda programmatūra, ko izmanto lielākā daļa izstrādātāju un ir noklusējuma JVM gandrīz visiem Linux distributīviem.

2023.gada 19.septembrī tika izlaista visjaunākā versija Java programmēšanas valodas versija - Java 21[15], kas ir arī ilgtermiņa atbalsta (LTS) versija. Java 8, 11 un 17 ir iepriekšējās LTS versijas, kas joprojām tiek oficiāli atbalstītas.  

Vēsture[labot šo sadaļu | labot pirmkodu]

Valodu 1991. gadā izstrādāja Džeimss Goslings (James Gosling), Patriks Noutons (Patrick Naughton), Kriss Varts (Chris Warth), Eds Franks (Ed Frank) un Maiks Šeridans (Mike Sheridan) no kompānijas Sun Microsystems, kā daļu no Zaļā projekta (Green project). Bija nepieciešami 18 mēneši, lai radītu strādājošu versiju. Toties atklātībā primo reizi tā tika laista 1994. gadā, bet 1995. gadā kļuva plašāk pazīstama pēc tam, kad Netscape paziņoja par nodomiem iekļaut tās atbalstu savā Navigator pārlūkprogrammā.

Valodu 1991. gadā izstrādāja Džeimss Goslings (James Gosling), Patriks Noutons (Patrick Naughton), Kriss Varts (Chris Warth), Eds Franks (Ed Frank) un Maiks Šeridans (Mike Sheridan) no kompānijas Sun Microsystems. Šī valoda vispirms tika saukta par “Oak”, bet tika pārdēvētā par Java 1995. gadā. Galvenais iemesls šīs programmēšanas valodas izvadei bija vajadzība pēc platformas neatkarīgas programmēšanas valodas, kas tiktu pielietota programmatūras izvadei plaša patēriņa elekto ierīcēm: tosteriem, mikroviļņu krāsnīm, tālvadības pultīm u.c.

Daudzi procesoru(Central Processor Unit) veidi tika un tiek izmantoti par kontrolieriem, tas nozīme, ka tiek palaista tikai viena programmā, un viss. Problēma ar tik daudzu kontrolieru veidiem bija tāda, ka praktiski visas programmēšanas valodas bija kompilējamas programmēšanas valodas, uz to laika bridi bija izstrādātas, lai kompilētu specifiskajā kompilatora priekš specifiska kontroliera arhitektūras, piemēram, programmai, kas ir uzrakstīta izmantojot C++ valodu ir iespējā darboties jebkura procesora, bet, lai to veiktu ir nepieciešams specifisks C++ kompilators tieši šīm procesoram.

Otra problēma izrītēja no tā, ka kompilatori ir dārgi un ļoti laikietilpīgi izstrāde. Mēģinot atrast labāku risinājumu Goslings un citi strādāja pie - pārnēsājamas, starp platformu valodas, kas varētu “radīt” kodu, kas varētu darboties dažādos kontrolieros un operētājsistēmas. Šie centieni galu gala noveda pie programešanas valodas JAVA izveides. Javas izstrādāšanas laika otrais un vissvarīgākais faktors tas eksistencei paradījās, kam bija izšķiroša nozīme JAVAs nākotnē bija globālais tīmeklis.

Uz 1993. gada kļuva acīmredzams priekš Javas valodas izstrādātājiem, ka programmatūras pārnesamības problēma, kas bija dažādiem kontrolieru arhitektūram, operētājsistēmām, paradījās arī globāla tīmekļa lietotnēm, kas reiz bija zemas prioritātes problēma kļuvusi par nepieciešamību.

Saprotot to JAVAs izstrādātāji nolēma pielikt visas pūles uz programmatūru prieks globāla tīmekļa izveidi nevis uz programmatūru, kas ir orientēta uz patēriņā elektroniskam ierīcēm. Ja tieksme uz arhitektūras neitrālas programmēšanas valodas izvedi bija dzirkstele tad globālais tīmeklis bija tas, kas noveda pie JAVAs liela mēroga popularitāti un panākumu pasaulē.

1995. gadā kļuva plašāk pazīstama pēc tam, kad Netscape paziņoja par nodomiem iekļaut tās atbalstu savā Navigator pārlūkprogrammā, kas 1990. gados bija vispopulārākā pārlūkprogrammā pasaule.

Izstrādes Mērķi[labot šo sadaļu | labot pirmkodu]

Valodas Java izstrādes galvenie mērķi bija šādi:

  • tai jābūt objektorientētai valodai
  • tai jābūt vairāk vai mazāk neatkarīgai no datora platformas
  • tai jāatbalsta tīkli
  • tai jāvar droši izpildīt kodu no attālinātiem avotiem

Nosaukuma izcelsme[labot šo sadaļu | labot pirmkodu]

Džeims Goslings, Patriks Netons, strādāja pie projekta "Green"(zaļš). Projekta mērķis bija izstrādāt programmēšanas valodu plaša patēriņa elektronisko ierīču programmēšanai. Plaša patēriņa elektriskas ierīces patērē maz enerģijas (No šī fakta projekts ieguva koda nosaukumu – “ Green”) . Šo mazu inženieru komandu, kas darbojas Sun kompānijā sauca par “Green Team”(Zaļa komanda).

Jaunu valodu Džeims Goslings sauca par “Greentalk” jo tas koda failiem bija “.gt” palašinnājums, bet oficiālais nosaukums kļuva par “Oak”(ozols), ka daļa no “Green” projekta. Viena no versijām kāpēc šīs nosaukums ir tas, ka blakus Džeimsa Goslinga ofisam auga liels ozols, kura vārda un nosauca programmēšanas valodu, otra versija, ka ozols ASV, Francijā, Vācijā nozīme spēku.

Izstrādes laikā Sun paziņoja Zaļai komandai, ka Oak nosaukumu nevar izmantot priekš valodas nosaukuma, jo “Oak” jau bija Oak Technologies kompānijas preču zīmols un ka аrī jau eksistēja programmēšanas valoda ar nosaukumu “Oak”

Zaļa komanda sapulcējas, lai izvēlētos jaunu nosaukumu. Pēc Džeimsa Goslinga teiktā, "Java nosaukums bija viena no galvenajām izvēlēm kopā ar nosaukumu Silk(zīds)". Tā kā Java valoda bija tik unikāla, lielākā daļa komandas locekļu deva priekšroku Java nosaukumam nekā citiem nosaukumiem.

1995. gadā Sun kompānija izmainīja valodas nosaukumu no “Oak” uz "Java" .

Java nosaukuma radīšanas versijas:[labot šo sadaļu | labot pirmkodu]

  1. Java nosaukumu izvēlējās Džeimss Goslings, dzerot tasi kafijas netālu no sava biroja, jo Java ir sala Indonēzija , kur tika saražota pirmā pasaule kafija saukta par Java kafiju.
  2. Tika izdzerts Java valodas izstrādes laika daudz kafijas, tāpēc izstrādātāji gribēja nosaukt valodu kafijas šķirnes vārda.
  3. Tā kā jaunā valoda tika izstrādāta plaša patēriņa elektronisko ierīču programmēšanai, tā dažkārt tiek saistīta ar mājienu uz kafijas automātu kā sadzīves ierīces piemēru.

Filozofijā[labot šo sadaļu | labot pirmkodu]

Objektu orientēta, vienkāršā, atpazīstamā[labot šo sadaļu | labot pirmkodu]

JAVAs sintakse ir lielā mēra aizgūta no C/C++ programmēšanas valodas . Tas padarīja programmēšanas valodu atpazīstamu plašam programmistu lokam. Tajā paša laika tika "dzēstas" daudzas īpašības, kas dara C++ pārāk sarežģītu priekš lietošanas.

Tomēr atšķirībā no C++ programmēšanas valodas, kas apvieno strukturētu, vispārīgu un uz objektu orientētu programmēšanu. JAVA no pašiem tas pirmsākumiem tika veidota, lai būtu pilnīgi objektu orientēta programmēšanas valoda. JAVA viss ir objekts, izņemot pamat datu tipus(bool, int, char un float), viss, kas rakstīts JAVA, ir rakstīts klases ietvaros.

Arhitektūras neitrāla[labot šo sadaļu | labot pirmkodu]

“Write once, run anywhere” slogans, ko pielietoja “Sun Microsystems”, kad tika izstrādāta JAVA. Tas nozīmē, kā JAVA ir platformas neatkarīga programmēšanas valoda.

Platformas neatkarība nozīme, ka programmas rakstītas uz JAVA var palaists jebkurā datoraparatūrā. Pirmā valodas iestenošā pielietota virtuālas mašīnas izvadei (JVM), ļāva programmām darboties jebkura CPU, operētājsistēmas, vides u.c. Šīs ir sasniegts dēļ tā, ka JAVA kompilators, kompile JAVA programmēšanas kodu "pusceļa" pārvērš par baitkodu, speciāls baitkods(bytecode) priekš JAVA. Pēc tam baitkods tiek palaists uz java virtuālas mašīna(Java Virtual Machine), kas jau savukārt palaiž programmu sevī.

Kaut gan bija diezgan lēnākā veiktspēja JAVA programmām salīdzinot ar programmām, kas tika rakstītas uz C vai C++ valodām, tāpēc JAVA valodai bija sliktas veiktspējas reputācija ilgu laiku. Jaunākas JVM īstenojumi radīja iebūvētus darbarīkus, kas paātrina programmas īstenošanu nekā iepriekš. Viens no tādiem īstenošanas veidiem bija tieša koda kompilācija, atmetot pašu JVM, bet tādejādi tiek zaudēta programmas pārnesamība. Tomēr vel joprojām ir iespējams uzrakstīt programmu uz JAVA, kas var darboties uz vienas platformas bez problēmām, bet programmas kļūdas paradīties cita platforma.

Uzticama un droša[labot šo sadaļu | labot pirmkodu]

Java atvieglo programmatūras izvedi, kur pārbaude notiek ne tikai kompilācijas posma, bet arī pati sistēma(JVM) analīze izpildes posma laikā kodu. JAVA izveidota tā, lai pašu lietotāju pieradinātu pie “pareiza” programmēšanas koda, bibliotēku, iebūvētu klašu un funkciju dēļ. Lai JAVA būtu droša daudzas C/C++ priekšrocības tika atmestas. Piemēram, nevar pielietot radītājus(pointer), kas ļāva izvairīties no veselas kaudzes kļūdu, saistība ar atmiņas pārslodzi.

Interpretējama, vairākpavedienošana, un dinamiska[labot šo sadaļu | labot pirmkodu]

Interpretējama valoda ļāva linkošanu fāzi padarīt daudz vieglāku priekš programmētāja .Tas ļāva samazināt izstrādes procesu un programmas testēšanu laiku.

Vairākpavedienošana(Multi-thread), kas ļauj vienas programmas ietvaros veikts vairākus uzdevumus vienlaicīgi, tiek atbalstīta uz programmēšanas valodas līmeņa, dēļ jau iebūvētam iekšējam bibliotēkām(thread-safe), kas var tikt lietotas vairākpavedienošu programmu izvēdī.

Sistēma atbalsta dinamisku programmas montāžu. Programmas klases lejuplādējas programmas darbošanas laika pēc programmas vai programmētāja vajadzības, pašas klases var būt lejuplādētas no jebkuras tīmekļa vietas un veikt izmaiņas pēc programmētāja vai programmas vajadzības.

Valodas īpatnības[labot šo sadaļu | labot pirmkodu]

WIP

Izstrādes vides[labot šo sadaļu | labot pirmkodu]

Eclipse - izstrādāja IBM kompānijā 2001.gada, kuras izstrādāšanas mērķis bija izveidot programmētāju vidi, kas spētu konkurēt ar Microsoft Visual Studio popularitāte. Šī IDE ir bezmaksas un atvērtā avota (open source) programmatūrā , kas pati ir rakstīta uz Java un priekš JAVA, tomēr spraudņu(plugin) arhitektūras dēļ ir iespēja Eclipses vidē strādāt arī ar citam programmēšanas valodām, piemēram, C++, Ruby, Python u.c.

NetBeans - dzima, ka Prāgas studentu projekts 1996.gada, vēlāk par komerciālu produktu pārtapa 1997.gada, bet 1999 gada tika pārdots kompānijai Sun Microsystems un 2000 kļuva par atvērtā avota programmatūru.

IntelliJ IDEA - ir IDE, kura ir uzrakstīta Java programmēšanas valoda, lai izstrādātu datoru programmatūru, kuras izmanto Java, Kotlin, Groovy un citās JVM valodās. To izstrādāja JetBrains (agrāk pazīstama kā IntelliJ) kompānijā, un šī IDE ir pieejams kā Apache 2 licencēts kopienas izdevums un patentēts komerciāls izdevums[16]. Abus izlaidumus var izmantot komerciālas programmatūras izstrādei. Pēc 2023 Java Developer Productivity Report datiem uz 2023.gadu. ta ir vispopulārākā IDE jeb 42%[17], no respondentiem noradīja, ka izmanto šo IDE..

Programmatūrā izstrādāta izmantojot Java[labot šo sadaļu | labot pirmkodu]

WIP

Versijas un izlaidumi[labot šo sadaļu | labot pirmkodu]

No 2023. gada septembra Java 8, 11, 17 un 21 tiek atbalstītas kā ilgtermiņa atbalsta versijas (LTS)[18]. Oracle kompānijā 2019. gada janvārī izlaida pēdējo bez maksas publisko atjauninājumu mantotajai (legacy) versijai Java 8 LTS komerciālai lietošanai, lai gan Oracle joprojām atbalstīs Java 8 versiju ar publiskiem atjauninājumiem priekš personiskai lietošanai.

Galvenās Java izlaišanas versijas, kā arī to izlaišanas datumi:

Versija Izlaiduma datums
JDK Beta 1995
JDK 1.0 1996. gada 23.janvaris[19]
JDK 1.1 1997.gada 19. februāris
J2SE 1.2 1998.gada 8. decembris
J2SE 1.3 2000.gada 8. maijs
J2SE 1.4 2002.gada 6. februāris
J2SE 5.0 2004.gada 30. septembris
Java SE 6 2006.gada 11. decembris
Java SE 7 2021.gada 28. julījs
Java SE 8 (LTS) 2014.gada 18. marts
Java SE 9 2017.gada 21. septembris
Java SE 10 2018.gada 20. marts
Java SE 11 (LTS) 2018.gada 25. septembris[20]
Java SE 12 2019.gada 19. marts
Java SE 13 2019.gada 17. semptembris
Java SE 14 2020.gada 17. marts
Java SE 15 2020.gada 15. semptembris[21]
Java SE 16 2021.gada 16. marts
Java SE 17 (LTS) 2021.gada 14. septembris
Java SE 18 2022.gada 22. marts
Java SE 19 2022.gada 20. septembris
Java SE 20 2023.gada 21. marts
Java SE 21 (LTS) 2023.gada 19. septembris[15]

Sveika, pasaule![labot šo sadaļu | labot pirmkodu]

public class HelloWorld 
{
    public static void main(String[] args) 
    {
        System.out.println("Sveika, pasaule!");
    }
}

Atsauces[labot šo sadaļu | labot pirmkodu]

  1. Java 5.0 added several new language features (the enhanced for loop, autoboxing, varargs and annotations), after they were introduced in the similar (and competing) C# language [1][2]
  2. «About Microsoft's "Delegates"». Skatīts: 2010-01-11. We looked very carefully at Delphi Object Pascal and built a working prototype of bound method references in order to understand their interaction with the Java programming language and its APIs. [...] Our conclusion was that bound method references are unnecessary and detrimental to the language. This decision was made in consultation with Borland International, who had previous experience with bound method references in Delphi Object Pascal.
  3. Gosling and McGilton. «The Java Language Environment», May 1996.
  4. J. Gosling, B. Joy, G. Steele, G. Brachda. «The Java Language Specification, 2nd Edition».
  5. «The A-Z of Programming Languages: Modula-3 - a-z of programming languages - Computerworld». Arhivēts no oriģināla, laiks: 2009. gada 5. janvārī. Skatīts: 2010. gada 9. jūnijā.
  6. Patrick Naughton cites Objective-C as a strong influence on the design of the Java programming language, stating that notable direct derivatives include Java interfaces (derived from Objective-C's protocol) and primitive wrapper classes. [3]
  7. TechMetrix Research. «History of Java». Java Application Servers Report, 1999. Arhivēts no oriģināla, laiks: 2010. gada 29. decembrī. Skatīts: 2009. gada 16. oktobrī. The project went ahead under the name "green" and the language was based on an old model of UCSD Pascal, which makes it possible to generate interpretive code
  8. A Conversation with James Gosling - ACM Queue
  9. «Features - IT and Computing - ComputerWeekly.com». www.computerweekly.com. Skatīts: 2024-03-16.
  10. Taiichi Sakaiya. «1.2 Design Goals of the Java Programming Language» (angliski). Skatīts: 2024-03-16.
  11. «Don’t call it a comeback: Why Java is still champ». GitHub (angļu). Skatīts: 2024-03-16.
  12. «TIOBE Index for January 2024». TIOBE (en-US). Skatīts: 2024-03-16.
  13. Robert McMillan. «Is Java Losing Its Mojo?». Wired (en-US). ISSN 1059-1028. Skatīts: 2024-03-16.
  14. Stephen Shankland. «Oracle buys Sun, becomes hardware company | Deep Tech - CNET News». web.archive.org (angliski), 2010-08-21. Skatīts: 2024-03-16.
  15. 15,0 15,1 «JDK 21» (angliski). 2024-03-10. Skatīts: 2024-03-10.
  16. «JetBrains/intellij-community» (angliski). Skatīts: 2024.gada 9. martā.
  17. Curtis Johnson. «Most Popular Java IDEs in 2023 | JRebel by Perforce». www.jrebel.com (angļu). Skatīts: 2024-03-09.
  18. «Oracle Java SE Support Roadmap» (angliski).
  19. «JAVASOFT SHIPS JAVA 1.0» (angliski).
  20. Sharat Chander. «Introducing Java SE 11» (angliski), 2018-09-25. Skatīts: 2024-03-10.
  21. Sharat Chander. «The Arrival of Java 15!» (angliski), 2020-10-18. Skatīts: 2024-03-10.

Ārējās saites[labot šo sadaļu | labot pirmkodu]