Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson,...

22
1 Programmēšanas valoda Java "Write once, run anywhere" Java ir firmas Sun Microsystems izstrādāta objektorientēta programmēšanas valoda. Valoda, kuras sākotnējais nosaukums bija Oak, tika veidota kā C++ aizstājēja, lai gan tās funkcionalitāte ir tuvāka Objective C. C C++ Jav

Transcript of Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson,...

Page 1: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

1

Programmēšanas valoda Java

"Write once, run anywhere"

Java ir firmas Sun Microsystems izstrādāta objektorientēta

programmēšanas valoda. Valoda, kuras sākotnējais nosaukums bija

Oak, tika veidota kā C++ aizstājēja, lai gan tās funkcionalitāte ir

tuvāka Objective C.

CC++ Java

Page 2: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

2

Javas valodas un tās pamattehnoloģiju izstrādātāji

1. Java programmēšanas valodas tēvs James Gosling, generally credited as the inventor of the Java programming language in 1994. He created the original design of Java and implemented its original compiler and virtual machine. For this achievement he was elected to the United States National Academy of Engineering. On April 2, 2010, he left Sun Microsystems which had recently been acquired by the Oracle Corporation. Regarding why he left, Gosling wrote on his blog that “Just about anything I could say that would be accurate and honest would do more harm than good.”

2. Hibernate (object-relation mapping) izstrādātājs Gavin King, is the founder of the Hibernate project, a popular object/relational persistence solution for Java, and the creator of Seam, an application framework for Java EE 5. Furthermore, he contributed heavily to the design of EJB 3.0 and JPA.

3. Spring paketes izstrādātājsRod Johnson, is the founder of the Spring Framework, an open source application framework for Java, Creator of Spring, CEO at SpringSource. Furthermore, Rod’s best-selling Expert One-on-One J2EE Design and Development (2002) was one of the most influential books ever published on J2EE.

4. Struts paketes izstrādātājsCraig Mcclanahan, creator of Struts, a popular open source MVC framework for building Java-based web applications, which is arguably that every Java developer know how to code Struts. With the huge success of Struts in early day, it’s widely implemented in every single of the old Java web application project.

5. JBoss paketes izstrādātājsMarc Fleury, who founded JBoss in 2001, an open-source Java application server, arguably the de facto standard for deploying Java-based Web applications. Later he sold the JBoss to RedHat, and joined RedHat to continue support on the JBoss development. On 9 February 2007, he decided to leave Red Hat to pursue other personal interests, such as teaching, research in biology, music and his family.

Page 3: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

3

6. Java Collections Framework izstrādātājsJoshua Bloch, led the design and implementation of numerous Java platform features, including JDK 5.0 language enhancements and the award-winning Java Collections Framework. In June 2004 he left Sun and became Chief Java Architect at Google. Furthermore, he won the prestigious Jolt Award from Software Development Magazine for his book, “Effective Java”, which is arguably a must read Java’s book.

7. Test Driven Development un JUnit izstrādātājsKent Beck, creator of the Extreme Programming and Test Driven Development software development methodologies. Furthermore, he and Erich Gamma created JUnit, a simple testing framework, which turn into the de facto standard for testing Java-based Web applications. The combine of JUnit and Test Driven Development makes a big changed on the way of coding Java, which causes many Java developers are not willing to follow it.

8. Tomcat un Ant izstrādātājsJames Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), created Tomcat Java-based web server, still widely use in most of the Java web projects, and also Ant build tool, which uses XML to describe the build process and its dependencies, which is still the de facto standard for building Java-based Web applications.

Page 4: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

4

Programmēšanas valodu popularitāte pasaulē

Kompānija TIOBE Software jau vairākus gadus veic pētījumus par

programmēšanas valodu izmantošanu.

TIOBE analīze balstās uz programmētāju meklēto informāciju vietnēs Google,

Google Blogs, Yahoo!, Wikipedia, MSN un YouTube.

Page 5: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

5

Programmēšanas valodu popularitātes izmaiņas pēdējos gados

2011 2010 valoda izmaiņas

Page 6: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

6

Page 7: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

7

Java valodas struktūra

Javas tehnoloģiju izstrādes un pētniecības centri

Page 8: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

8

Page 9: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

9

Java statistika (2010. gads)

1. Lieto 6.5 miljoni programmatūras izstrādātāji.

2. 1.1 biljoni (miljardi) lietojumprogrammu izmanto Java tehnoloģijas.

3. Katru gadu tiek nokopētas 930 miljoni Java Runtime Environment vides.

4. 3 biljoni mobīlo telefonu lieto Javas programmas.

5. 100% Blu-ray atskaņotāji izmanto Javu.

Page 10: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

10

Jaunumi!

1. Projektu Hibernate un Seam dibinātājs Gavin King,

konferences QCon laikā atklājis dažas lietas saistībā ar projektu

Ceylon, kura ietvaros tiek veidota jauna programmēšanas valoda

un programmēšanas rīku komplekts (SDK), kas pretendē uz Java

aizvietotāja statusu.

2. Projekts jau divus gadus tiek attīstīts kompānijas RedHat dzīlēs

dziļā slepenībā.

Page 11: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

11

Java platforma

Java platforma

Lietojuma programma

Interfeiss (Aplication Programming Interfeiss)

Java virtuālā mašīna (Java Virtual Machine)

Operētājsistēma

Tehniskais nodrošinājums (hardware)

Page 12: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

12

Java platformas neatkarība

Page 13: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

13

Java – pilnvērtīga platforma

Page 14: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

14

Programmēšanas valody Java un Python izmantošanas shēma

Page 15: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

15

Tradicionālais programmu kompilēšanas process

Java programmu kompilēšanas process

Page 16: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

16

Java Run-Time Environment programmēšanas vide

Java Just In Time (JIT) kompilēšanas process

Page 17: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

Java pirmkods (source code)

Java baitkods (bytecode)Operētājsistēma

Tehniskais nodrošinājums (hardware)Tīkla nodrošinājums vai failu vadības sistēma

Klases ielādētājs un baitkoda pārbaudītājs

Kompilators javac Java virtuālā mašīna (JVM) Kompilators

Just in Time (JIIT)

17

Java programmas kompilācijas un izpildes process

Page 18: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

18

Klašu ielādētājs (class loader)

Nodrošina programmu koda drošu izpildi. Klašu ielādētājs un baitkoda pārbaudītājs noskaidro, vai baitkods ir pareizi izveidots. Tālāk to izpilda vienā no 2 veidiem:

1. Ar interpretatoru jeb JVM, kas baitkodu pārvērš platformatkarīgās instrukcijās rindiņu pa rindiņai.

2. Efektīvāka ir koda ģenerācija "pēc pieprasījuma" (JIT, just-in-time) - t.i. JIT kompilators "atceras", kuri Javas baitkoda gabali jau ir iztulkoti platformas atkarīgās instrukcijās un netulko tos vēlreiz.

3. Trešā iespēja būtu Javas kodu uzreiz kompilēt par platformas atkarīgām instrukcijām - tāpat kā C vai C++. Tas strādātu ātrāk gan par JVM, gan par JIT. Bet šajā gadījumā zustu vairākas Javas platformas priekšrocības, t.sk. koda izpildes lielāka drošība.

Lai gan JIT kompilatoru lietošana var paātrināt koda izpildi līdz pat 10 reizēm, bieži lieto interpretāciju ar JVM, jo programmas gan tiek pildītas lēni, bet JVM parasti ir mazākas prasības pret dzelžiem un tas ātrāk ielādējas. Sun Microsystems piedāvā populāru kombinētu risinājumu HotSpot, kam ir gan JVM, gan JIT iespējas.

Page 19: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

19

Baitkoda pārbaudītāja (bytcode verifier) funkcijas

1. Vai CLASS failu kods atbilst JVM specifikācijai.

2. Vai kods nepārkāpj Javas izejas kodā noteiktos ierobežojumus (piekļuves pārkāpumi: piemēram, mēģinājumi no ārpuses izsaukt funkciju, kas deklarēta kā "private" - var būt bīstami, it īpaši ja ļaunprātīgs kods neparedzētā veidā izsauc metodes citu autoru programmētām klasēm).

3. Vai kods pareizi izmanto izteiksmju operandu steku (t.i. nenotiek steka pārpildīšanās vai iztukšošanās).

4. Vai metožu izsaukumiem nododamo aktuālo parametru tipi ir pareizi.

5. Nenotiek neatļauti datu pārveidojumi (veselo skaitļu tipi uz referenču tipiem, un tml.).

Page 20: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

20

Javas Virtuālā Mašīna (JVM)1 "Aparatūras" specifikācija CLASS failu izpildei. To emulē ar programmu nodrošinājumu. Nav vajadzīgs, lai mašīnas "dzelži" saprastu Javas CLASS failus.

2. JVM lasa kompilēto baitkodu (.CLASS failus), kas ir platformneatkarīgs.

3. JVM var būt Javas izstrādes vides (piem. JDK1.4) sastāvdaļa, Javas izpildes vides (JRE) sastāvdaļa, vai pārlūkprogrammas spraudnis jeb plugins.

4. No tipu pārbaudēm lielākā daļa veikta kompilācijas laikā (stipri tipizēta valoda - mainīgo tipi ir zināmi kompilācijas laikā; ir tomēr iespējams polimorfisms).

5. Jebkurai Sun Microsystems apstiprinātai JVM jāvar darbināt jebkurš standartam atbilstošs .class fails.

Page 21: Top 8 Java People You Should Know Web viewRod Johnson, is the founder of ... James Duncan Davidson, while he was software engineer at Sun Microsystems (1997–2001), ... Java p latformas

21

Just in time kompilators

1. Ielādē, pārbauda, izpilda baitkodu.

2. Rekursīvi sekojot koda atkarībām, ielādē visas klases, kuras nepieciešamas programmas izpildei.

3. Klases, kuras nāk no vietējās failu sistēmas (local file system) glabājas atsevišķos vārda apgabalos (namespace).

4. Nepieļauj viltošanas (spoofing) uzbrukumus. Viltošanas uzbrukumi ir mēģinājums iesūtīt ļaunprātīgi modificētus datus tādā vietā, kurai saņēmējs uzticas un šādi izprovocēt saņēmēju veikt uzbrucējam vēlamās darbības. Javas apletu gadījumā - no Interneta atnākušais kods varētu vēlēties nonākt "uzticamā" JVM apgabalā un izpildīties kā droša programma ("Trojas zirgs" utml.). Javas platforma šādus uzbrukumus novērš. (Ir arī "spoofing"-am līdzīgs termins - sniffing, t.i. tīkla saziņas noklausīšanās, to nemodificējot.)