67
HUJAK Hrvatska udruga Java korisnika Croatian Java User Association www.hujak.hr dr. sc. Branko Mihaljević O programskom jeziku Java © Branko Mihaljević - HUJAK, 2019 1

O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

  • Upload
    others

  • View
    6

  • Download
    1

Embed Size (px)

Citation preview

Page 1: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

HUJAKHrvatska udruga Java korisnikaCroatian Java User Association

www.hujak.hr

dr. sc. Branko Mihaljević

O

programskom

jeziku

Java

© Branko Mihaljević - HUJAK, 2019 1

Page 2: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

O predavaču

• Dr. sc. (i mr. sc.), DSM, dipl. ing. računarstva• Edukator, tehnički savjetnik, softverski arhitekt,

developer, poduzetnik…• Predsjednik HUJAK-a i jedan od osnivača• Iskustvo:

• Programiranje u Javi (22 g.) - za razvoj softvera i u obrazovanju• 18+ godina iskustva u obrazovanju

• Predavao 19 visokoškolskih predmeta iz računarstva i informatike• RIT Croatia (5 g.), Algebra (2 g.), VERN‘ (2 g.), FER (12 g.)

• 18+ godina iskustva u poslovanju• CEO/vlasnik software consulting tvrtke (5 g.),

CTO/suvlasnik razvojne tvrtke s 15-ak developera (7 g.), freelancer…• Vodio veće timove developera, radio na 20-ak velikih projekata,

održao više od 20 radionica i tečajeva

www.hujak.hr© Branko Mihaljević - HUJAK, 20192

Page 3: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Ukratko o Javi

• Jedan od najpopularnijih objektno-orijentiranih programskih jezika opće namjene

• Osnovni ciljevi (isti već 23+ godine): • Jednostavnost, objektna orijentiranost i poznatost

• Robusnost i sigurnost

• Arhitekturna neutralnost i prenosivost

• Visoke performanse

• Višenitnost i dinamičnost

• Važne značajke:• Prenosivost: Write Once Run Anywhere, prevođenje u

Bytecode i izvođenje na Java Virtual Machine (JVM)www.hujak.hr3 © Branko Mihaljević - HUJAK, 2019

Page 4: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Zanimljivosti o jeziku Java

• Jezik koji je stvoren "slučajno"• Novi jezik za STP (set-top box) kao "čišća" verzija jezika C

• Inicijalno osmišljen za interaktivnu televiziju i ručne bežične multimedijalne uređaje• "Pametni" daljinski "*7" iz 1992. g.• 5" color touchscreen, Spark, Unix, • No, bilo je to malo ispred svog vremena…

• Na početku se zvao Oak• Promijenjen u Java zbog autorskih prava

• "Java" je sleng za šalicu kave• Jedan od najvećih izvoznika kave je

indonezijski otok Java (Jawa)www.hujak.hr© Branko Mihaljević - HUJAK, 20194

Page 5: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Što je (Cro)Duke?

• Duke – poznata maskota Jave, animirani lik na prvom Java uređaju "*7"

• CroDuke – hrvatska verzija maskote Dukea i logo HUJAK-a

• CroDuke Indy – verzija CroDukeaizrađena za konferenciju Javantura

www.hujak.hr5 © Branko Mihaljević - HUJAK, 2019

Page 6: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Postoji li CroDuke? ☺

www.hujak.hr© Branko Mihaljević - HUJAK, 20196

Page 7: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Zanimljivosti o jeziku Java

• Projekt Stealth počeo je davne 1991. godine• Službeni početak Green Teama na brainstormingu u Aspenu

• James Gosling, "otac Jave", sada radi u Amazonu (AWS)• Nakon Sun Microsystems (Oracle), Google i Liquid Robotics

• Joe Parlang, dizajner maskote Duke, radio je na crtićima• Simpsons, Shrek, Antz, Flushed Away, Over the Hedge…

• Niz 0xCAFEBABE postoji u svakoj prevedenoj datoteci• Posveta kafiću u kojem su se članovi projekta nalazili

• JavaScript je dobio ime po Javi• Ali samo kao marketinški trik jer zapravo nemaju izravne veze

www.hujak.hr© Branko Mihaljević - HUJAK, 20197

Page 8: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Koliko je Java rasprostranjena?

• Kontinuirani rast i razvoj Jave već 23 godine

• #1 razvojna platforma na svijetu

• 10 milijuna Java developera

• Mnogi su certificirani

• 15 milijardi uređaja koji sadrže Javu

• 1 milijarda Java preuzimanja

• 5 milijuna studenata uči Javu

www.hujak.hr8

Izvor: Oracle prezentacija, 2018

© Branko Mihaljević - HUJAK, 2019

Page 9: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Zašto baš Java?

• Od najvećih poslužiteljskih enterprise aplikacija do najmanjih "pametnih" uređaja (Internet of Things)• Ugradbeno, prožimajuće i sveprisutno računarstvo

• Iznimno velik ekosustav kôda, biblioteka i alata• Otvoreni kod i prenosivost• Podrška najvećih IT korporacija• Android! ☺

Java is not just a language, Java is a platform!James Gosling

• Više od 50 drugih jezika na Java Virtual Machine• Clojure, Groovy, Scala, JRuby, Jython, Fantom, Kotlin, Ceylon, Xtend,

X10, LuaJ, Golo, Frege, Mirah, Eta, JavaScript…www.hujak.hr9 © Branko Mihaljević - HUJAK, 2019

Page 10: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Popularnost jezika Java

• Indeks TIOBE za siječanj 2019.

www.hujak.hr10

Izvor: indeks Tiobe, www.tiobe.com, siječanj 2019.

Rang Jezik Udio

1. Java 16,904%

2. C 13,337%

3. Python 8,294%

4. C++ 8,158%

5. VB .NET 6,459%

6. JavaScript 3,302%

7. C# 3,284%

© Branko Mihaljević - HUJAK, 2019

Page 11: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Popularnost jezika Java

• Google Trends

• Java vs Python vs C vs C++ vs JavaScript

www.hujak.hr© Branko Mihaljević - HUJAK, 201911

Izvor: Google Trends, trends.google.com, siječanj 2019.

Posljednjih 14 godina

Posljednja godina (2018.)

Prosjek

Page 12: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Jezici na GitHubu

• GitHub – najveći svjetski repozitorij programskog koda i projekata

1. JavaScript

2. Java

3. Python

4. PHP

5. C++

6. C#

www.hujak.hr© Branko Mihaljević - HUJAK, 201912

Izvor: Octoverse, octoverse.github.com/projects#languages, GitHub, siječanj 2019.

Page 13: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Istraživanje Stack Overflow

0% 10% 20% 30% 40% 50% 60% 70%

C++

PHP

C#

Python

Bash/Shell

Java

SQL

CSS

HTML

JavaScript

25,4%

30,7%

34,4%

38,8%

39,8%

45,3%

57,0%

65,1%

68,5%

69,8%

www.hujak.hr13

Izvor: Developer Survey Results 2018, stackoverflow, 2018, insights.stackoverflow.com/survey/2018#technology

© Branko Mihaljević - HUJAK, 2019

Page 14: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

GitHub & Stack Overflow

www.hujak.hr14

Izvor: The RedMonk Programming Language Rankings, RedMonk, 2018., redmonk.com/sogrady/2018/08/10/language-rankings-6-18/

1. JavaScript

2. Java

3. Python

4. PHP

5. C#

6. C++

7. CSS

8. Ruby

9. C

10. Objective-C

& Swift

© Branko Mihaljević - HUJAK, 2019

Page 15: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Java i online tečajevi

• Vrlo popularan jezik/platforma ☺

• Praktički na svim svjetski poznatim online learning i MOOC platformama

• Ustaljena praksa uvodnih predmeta programiranja

• x000+ tečajeva različitih razina

www.hujak.hr© Branko Mihaljević - HUJAK, 201915

&

Page 16: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Java u visokom obrazovanju

• Vrlo popularan jezik/platforma ☺• Praktički na svim svjetski poznatim studijskim

programima računarstva i informatike sveučilišta i visokih škola• Ustaljena praksa uvodnih predmeta programiranja

studija računarstva najpoznatijih sveučilišta u SAD i EU• MIT, Stanford, CalTech, Harvard, ETH Zurich…

• Neki pokušaji zamjene?• 2014: Python is now the most popular introductory teaching

language at top U.S. universities• 2016: Stanford introduced JavaScript as an alternative to Java in

introductory programming course in 2016• 2018: Java je i dalje najpopularniji uvodni programski jezik na

svim svjetskim sveučilištima ☺ (neformalno istraživanje) www.hujak.hr© Branko Mihaljević - HUJAK, 201916

Page 17: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Java u Hrvatskoj?

• Vrlo popularan jezik/platforma ☺

• Praktički na svim studijskim programima računarstva i informatike sveučilišta, veleučilišta i visokih škola u Hrvatskoj• U skladu s praksom uvodnih predmeta programiranja studija

računarstva najpoznatijih sveučilišta na svijetu

• Srednje škole?• Nešto kompleksnija i zahtjevnija provedba, ali moguća

• Primjer: Eksperimentalni strukovni kurikulum za kvalifikaciju Tehničar za računalstvo

• Osnovne škole?• Potencijalno krenuti s (vizualnim) osnovama programiranja

www.hujak.hr17 © Branko Mihaljević - HUJAK, 2019

Page 18: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Računarstvo i informatika u RH

• Studiji računarstva i informatike u Hrvatskoj• 18 gradova: Bjelovar, Čakovec, Dubrovnik, Krapina, Križevci,

Osijek, Pula, Rijeka, Sisak, Split, Šibenik, Varaždin, Velika Gorica, Virovitica, Zabok, Zadar, Zagreb, Zaprešić

• 37+ obrazovnih institucija, uključivo:• 7 javnih sveučilišta• 15 privatnih veleučilišta, učilišta,

instituta i visokih škola

• 80+ obrazovnih programa• Preddiplomskih (3-4 godine)• Diplomskih (1-2 godine)• Specijalističkih• Poslijediplomskih

www.hujak.hr18 © Branko Mihaljević - HUJAK, 2019

Izvor: Gdje studirati računarstvo i informatiku u Hrvatskoj?, www.bug.hr/obrazovanje/gdje-studirati-informatiku-u-hrvatskoj-2018-4185, Bug, 2018.

Page 19: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Zapošljavanje u Hrvatskoj

• Broj oglasa u kategoriji IT i telekomunikacije jednog poznatijeg portala za zapošljavanje

www.hujak.hr© Branko Mihaljević - HUJAK, 201919

Izvor: Radna mjesta i plaće IT profesionalaca, HUP, Algebra i MojPosao, 2.10.2018.

Page 20: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Najtraženiji u Hrvatskoj

• Najtraženije skupine IT profesionalaca

www.hujak.hr© Branko Mihaljević - HUJAK, 201920

Izvor: Radna mjesta i plaće IT profesionalaca, HUP, Algebra i MojPosao, 2.10.2018.

Page 21: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

STEM revolucija u Hrvatskoj

• Liga Croatian Makers (IRIM)• Micro:bit, Logo, mBot, Scratch, Arduino,

Little Bits…

• Program Digitalna akademija (Algebra)• ScratchJr, RunMarco, Studio Code, Play Lab,

Scratch i App studio, micro:bit, Arduino…

• Code Club Croatia (udruga Programerko i STEMI)• Scratch, HTML, CSS, Python…

• Udruga za darovitu djecu "Dar"

• Mnogi drugi…

www.hujak.hr© Branko Mihaljević - HUJAK, 201921

Page 22: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

A najzanimljiviji su … roboti!

www.hujak.hr© Branko Mihaljević - HUJAK, 201922

Fotografija s konferencije Javantura v3 - autor Johan Janssen

Page 23: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Kako započeti?

• Scratch (7-16 g.) i ScratchJr (5-7 g.)• scratch.mit.edu, MIT Media Lab

• Alice (11-18 g.)• www.alice.org, Carnegie Mellon University

• Greenfoot (13-20+ g.)• www.greenfoot.org, University of Kent

• BlueJ (15-20+ g.) i jGRASP

• Eclipse, IntelliJ IDEA, NetBeans …

• Ostalo: robotika, Minecraft, Raspberry Pi…

www.hujak.hr23

Izvor: Alice, Greenfoot, and Scratch – A Discussion, Utting et al., ACM Trans. Comp. Edu. 10, 4, Article 17, studeni 2010.

© Branko Mihaljević - HUJAK, 2019

Page 24: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

ScratchJr

www.hujak.hr© Branko Mihaljević - HUJAK, 201924

Page 25: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Scratch

www.hujak.hr© Branko Mihaljević - HUJAK, 201925

Page 26: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Alice

• Alice – početno obrazovno razvojno okruženje• Razvijeno na Sveučilištu Carnegie Mellon

• Prilagođeno učenicima bez iskustva u programiranju

• Inovativno programsko okruženje• Inicijalno zasnovano na blokovskom programiranju

• Omogućava jednostavno stvaranje animacija, interaktivnih priča i igara

• Oblikovano za usvajanje računalnog razmišljanja te osnovnih principa programiranja, a kasnije i objektne orijentacije

www.hujak.hr© Branko Mihaljević - HUJAK, 201926

Page 27: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Alice

www.hujak.hr© Branko Mihaljević - HUJAK, 201927

Page 28: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Alice

• Alice 2.x – jednostavnija i češće korištena kod mlađih učenika zbog jednostavnosti i zanimljivih animiranih likova• može se izvoditi na slabijim računalima

• Alice 3.x – novija i složenija, zastupljenija je kod starijih učenika• Instalira se kao dodatak postojećeg razvojnog okruženja

NetBeans nad platformom Java SE (8)• Pruža mogućnost izravnog uređivanja izvornog koda te time

značajno olakšava prijelaz na naprednije programiranje u Javi

• Besplatno za nekomercijalnu upotrebu• Na svim operacijskim sustavima za koje postoji JVM• Brojni materijali za instruktore i učenike

www.hujak.hr© Branko Mihaljević - HUJAK, 201928

Page 29: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Greenfoot

• Greenfoot – interaktivno razvojno okruženje za Javu

• Prvenstveno razvijeno za primjenu u srednjim školama te uvodnim predmetima programiranja visokih škola i fakulteta

• Razvija i održava Computing Education Group sa Sveučilišta u Kentu uz podršku kompanije Oracle

• Objavljen pod licencijom GPL i dostupan je za sve operacijske sustave koji podržavaju JVM

www.hujak.hr© Branko Mihaljević - HUJAK, 201929

Page 30: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Greenfoot

www.hujak.hr© Branko Mihaljević - HUJAK, 201930

Page 31: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Finch Robot

• Finch Robot – mali školski robot s motorom, akcelerometrom, zujalicom, LED svjetlima te senzorima osvjetljenja, temperature i prepreka • podržava različite programske jezike, pa su tako za mlađe

učenike prikladni Snap! i Scratch, za nešto starije Python, Jython i Greenfoot, a za najstarije Java, JavaScript, C, C++, C#, i Scala

www.hujak.hr© Branko Mihaljević - HUJAK, 201931

Page 32: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

BlueJ

• BlueJ – početničko razvojno okruženje za Javu

• Prvenstveno razvijeno za primjenu u višim razredima srednjih škola te uvodnim predmetima programiranja visokih škola i fakulteta

• Razvija i održava Computing Education Group sa Sveučilišta u Kentu (Michael Kölling) uz podršku kompanije Oracle

• Objavljeno pod licencijom GPLv2 i dostupno za sve operacijske sustave koji podržavaju JVM

www.hujak.hr© Branko Mihaljević - HUJAK, 201932

Page 33: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

BlueJ

www.hujak.hr© Branko Mihaljević - HUJAK, 201933

Page 34: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Primjerenost programa

• Preporučena dob učenika za određena razvojna okruženja i programske jezike

www.hujak.hr© Branko Mihaljević - HUJAK, 201934

4 6 8 10 12 14 16 18 20

ScratchJrScratch

AliceGreenfoot

BlueJjGRASPEclipse

IntelliJ IDEANetBeans

Page 35: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Zaključak: Java Rules

One Language to Rule Them All☺

www.hujak.hr© Branko Mihaljević - HUJAK, 201935

JVM

Page 36: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Kako je sve počelo?

www.hujak.hr36 © Branko Mihaljević - HUJAK, 2019

• HUJAK – osnovan u prosincu 2011.

• Od tada organizirano 19 konferencija: 7x JavaCro, 5x Javantura, 5x Java@HrOUG, 2x WebCamp

Page 37: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Verzije Jave?

• Java 8 – (još uvijek) najrasprostranjenija verzija• Iako iz 2014., još uvijek se (relativno) dobro drži

• Java 9 – izašla u rujnu 2017.• Projekt Jigsaw (moduli) i još 150 drugih poboljšanja

• Java 10 – izašla u ožujku 2018. • 10-ak važnijih novosti poput varova

• Java 11 – izašla u rujnu 2018., aktualna verzija• Projekti Amber, Loom, Panama, Valhalla…

• Java 12 – izlazi u ožujku 2019.

www.hujak.hr© Branko Mihaljević - HUJAK, 201937

Page 38: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Malo terminologije

• Java Platform, Standard Edition (Java SE)

• Specifikacija jezika, virtualnog stroja i ključnih biblioteka

• Java Development Kit (JDK)

• Testirana (binarna) implementacija Java SE

• OpenJDK

• Referentna implementacija Java SE otvorenog koda

• OpenJDK binary – JDK izrađen iz izvornog koda projekta OpenJDK

www.hujak.hr© Branko Mihaljević - HUJAK, 201938

Page 39: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Što je besplatno?

• Razlikovati termine besplatno i slobodno

• Free beer vs free speech

• Potpuno besplatna je uporaba OpenJDK-a

• OpenJDK će biti uvijek besplatan

• Besplatna je uporaba Oracle JDK-a (osim u komercijalnoj produkciji)

• Vrijedi za Oracle JDK 11 i kasnije

• Oracle JDK 8 će biti zauvijek besplatan

• Podrška nikad nije bila besplatna (Oracle i drugi)www.hujak.hr© Branko Mihaljević - HUJAK, 201939

Page 40: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Kako doći do Jave (JDK)?

• Gdje downloadati Javu?• Ovisi o verziji JDK-a

• OpenJDK (bilo koji)• Oracle JDK (samo 8 i 11)• Neki treći OpenJDK (npr. Zulu ili AdoptOpenJDK)

• Trenutno dostupni• OpenJDK sve verzije https://jdk.java.net/

• Aktualni JDK 11.0.2 u ZIP obliku https://jdk.java.net/11/

• Oracle JDK8u201 https://www.java.com/en/download/ ili https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

• Oracle JDK 11.0.2https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

www.hujak.hr© Branko Mihaljević - HUJAK, 201940

Page 41: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

• OpenJDK 11.0.2

• Ili neki drugi

• jdk.java.net

www.hujak.hr© Branko Mihaljević - HUJAK, 201941

Page 42: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

• OracleJDK 8u201

• www.java.com

• Najčešće prvou tražilici

www.hujak.hr© Branko Mihaljević - HUJAK, 201942

Page 43: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

• Oracle JDK 11.0.2

• oracle.com

www.hujak.hr© Branko Mihaljević - HUJAK, 201943

Page 44: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Učestalost izdanja i što je LTS?

• Novi JDK svakih 6 mjeseci (od verzije 9)• Svakog ožujka i rujna

• Stari "vrijedi" do sljedećeg izdanja• Dakle, JDK 11 "vrijedi" do izdanja JDK 12, ali…

• LTS (Long Term Support) znači dugotrajnu komercijalnu podršku (barem 3 godine)• Dugotrajnu podršku imaju verzije JDK 8 (ožujak 2014.) i

JDK 11 (rujan 2018.), a sljedeća će biti JDK 17 (rujan 2021.)

• Što napraviti?• Odlučiti se za jednu stabilnu verziju – JDK 8 ili (bolje) JDK 11

• Osvježavati JDK svakih 6 mjeseci (ili češće zbog podverzija) –ili ne (sigurnosni rizik)

www.hujak.hr© Branko Mihaljević - HUJAK, 201944

Page 45: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Razlike JDK 8, 9, 10, 11, 12…?

• Velike… ali ne i prevelike ako niste developer• Svaki put 100-njak novih značajki

• Mnogo "čišćenja" starog koda

• A što to znači nastavnicima i profesorima?• Ako ne koristite naprednije značajke – vrlo malo ili

ništa• Ipak paziti na kompatibilnost sa starijim verzijama – uvijek

provjeriti!

• Uvođenje nekih zgodnih alata i značajki (npr. jshell ili izvođenje primjera koda bez prevođenja)

• Ako podučavate studente viših godina – mnogowww.hujak.hr© Branko Mihaljević - HUJAK, 201945

Page 46: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

A što se stvarno koristi?

• Koju verziju Jave koristite u produkciji (listopad 2018., 10200 ispunjenih upitnika)?

www.hujak.hr© Branko Mihaljević - HUJAK, 201946

Izvor: JVM Ecosystem Report, Snyk, 2018, https://snyk.io/blog/jvm-ecosystem-report-2018/

Page 47: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Koji (čiji) JDK se koristi?

• Čiji JDK koristite u produkciji (listopad 2018.)?

www.hujak.hr© Branko Mihaljević - HUJAK, 201947

Izvor: JVM Ecosystem Report, Snyk, 2018, https://snyk.io/blog/jvm-ecosystem-report-2018/

Page 48: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Koju ćete verziju koristiti?

• Koju ćete verziju Jave koristiti u budućnosti?

www.hujak.hr© Branko Mihaljević - HUJAK, 201948

Izvor: JVM Ecosystem Report, Snyk, 2018, https://snyk.io/blog/jvm-ecosystem-report-2018/

Page 49: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Java zajednica

• Java User Group (JUG)• 350+ formalnih i neformalnih Java zajednica

s više od 460000 članova

• Organizacija skupova, radionica i konferencija, evaluacija tehnologija, recenzija publikacija …

• Java Community Process (JCP)• Mehanizam razvoja standarda

tehničkih specifikacija JSR (Java Specification Request)

• Java Champions• Počasna titula

www.hujak.hr49 © Branko Mihaljević - HUJAK, 2019

Page 50: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

350+ JUG-ova na svijetu

www.hujak.hr50 © Branko Mihaljević - HUJAK, 2019

Page 51: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

100+ JUG-ova u Europi

www.hujak.hr51

Hrvatska udruga Java korisnika – HUJAK

neprofitna udruga građana koji su tijekom svog profesionalnog, znanstvenog ili

stručnog rada bili uključeni u razvoj ili korištenje neke od tehnologija vezanih uz

jezik i platformu Java.

© Branko Mihaljević - HUJAK, 2019

Page 52: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Što je HUJAK?

• Neprofitna udruga osnovana u prosincu 2011.• Članstvo: x000+ članova – 45 pravnih osoba• Cilj: promicanje znanja, značaja i prisutnosti

tehnologija vezanih uz jezik i platformu Java te drugih srodnih tehnologija, kroz:• informiranje, razmjenu znanja i iskustava o primjeni, • razvitak i unaprjeđenje suradnje, • unaprjeđenje odnosa partnera i krajnjih korisnika, • istraživanje, sudjelovanje u razvoju i vrednovanju

tehnologija, • unaprjeđenje struke te odnosa sudionika informatičke i

računarske djelatnosti

www.hujak.hr52 © Branko Mihaljević - HUJAK, 2019

Page 53: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Što je hujak.hr ?

• Službeni portal HUJAK-a

• Postova: 779 Stranica: 55

• Pregleda: 141.000+

• Mjesečni maksimum: 6663

• Dnevni maksimum: 1664

www.hujak.hr53 © Branko Mihaljević - HUJAK, 2019

Page 54: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Tko nas "čita"?

• 141.000+ pregleda

www.hujak.hr© Branko Mihaljević - HUJAK, 201954

Page 55: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Naša druženja

• Konferencija JavaCro (2012 – 2019)

• Konferencija Javantura (2014 – 2019)

• Meetup grupa HUJAK

• Podrška meetup grupi Java Zagreb i drugima

• Dio drugih konferencija (npr. HrOUG, MakeIT…)

• Mnoga druga neformalna druženja i meetupi

• …

www.hujak.hr© Branko Mihaljević - HUJAK, 201955

Page 56: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Java konferencije u Hrvatskoj

www.hujak.hr56 © Branko Mihaljević - HUJAK, 2019

Conference Location Date Sessions Tracks Attendees CountriesHrOUG 2018 Rovinj 18.-22.10.2011. - 1 (od 9) 460 15JavaCro'18 Rovinj 7.-9.5.2018. 47 5 300 15

Javantura v5 Zagreb 17.2.2018. 26 3 300 -JavaCro'17 Rovinj 10.-12.5.2017. 50 5 280 15

Javantura v4 Zagreb 11.2.2017. 27 3 300 -HrOUG 2016 Rovinj 18.-22.10.2016. 7 (od 96) 1 (od 9) 450 11JavaCro'16 Rovinj 18.-20.5.2016. 56 5 260 15

Javantura v3 Zagreb 20.2.2016. 23 - 300 -JavaCro'15 Rovinj 10.-12.5.2015. 46 5 200 11

Javantura v2 Zagreb 15.11.2014. 16 - 160 -JavaCro'14 Poreč 11.-13.5.2014. 50 5 220 11

Javantura v1 Zagreb 22.2.2014. 12 - 150 -WebCamp 2013 Zagreb 26.10.2013. 24 - 600 -

HrOUG 2013 Rovinj 15.-19.10.2013. 11 (od 90) 1 (od 7) 370 12JavaCro'13 Tuhelj 3.-5.6.2013. 50 5 200 -

HrOUG 2012 Rovinj 16.-20.10.2012. 11 (od 114) 1 (od 7) 370 13WebCamp 2012 Zagreb 24.11.2012. 24 - -

Java 2012 Tuhelj 29.-30.5.2012. 34 7 170 -HrOUG 2011 Rovinj 18.-22.10.2011. 12 (od 96) 1 (od 9) 460 11

19 konferencija ☺#Javantura #JavaCro #HrOUG #proud

Page 57: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Još rastemo i družimo se ☺

www.hujak.hr© Branko Mihaljević - HUJAK, 201957

170

200

150

220

160

220

280260

300280

300 300

34

50

12

50

16

46

23

56

27

50

26

47

0

20

40

60

80

100

120

140

0

50

100

150

200

250

300

350

Akt

ivn

ost

i

Sud

ion

ici

Page 58: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Javantura v6

• Subota, 23. veljače u Hotelu Panorama u Zagrebu

• 300 sudionika

• 20+ predavanja

• Popust za:

• Studente

• Učenike

• Nastavnike ☺

• Dobrodošli!www.hujak.hr© Branko Mihaljević - HUJAK, 201958

Page 59: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

JavaCro'19

• 12. – 14. svibnja u Umagu

• 300 sudionika, 50-ak predavanja

• Svjetski poznati Java predavači, puno višepredavanja, puno više stranaca, more i sunce ☺

www.hujak.hr© Branko Mihaljević - HUJAK, 201959

Page 60: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Kako to izgleda?

www.hujak.hr© Branko Mihaljević - HUJAK, 201960

Page 61: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Partnerske konferencije

• Konferencije koje podržavamo i potpomažemo

www.hujak.hr© Branko Mihaljević - HUJAK, 201961

Page 62: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Partneri i prijatelji

www.hujak.hr62 © Branko Mihaljević - HUJAK, 2019

Page 63: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Članovi HUJAK-a

www.hujak.hr63 © Branko Mihaljević - HUJAK, 2019

Page 64: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Suradnja s Oracle Academy

• OA prisutan u 120+ zemalja s 15.000 obrazovnih institucija i 6+ milijuna studenata• 100+ obrazovnih institucija u Hrvatskoj

• Niz zajedničkih aktivnosti ☺☺☺• Besplatni tečajevi programiranja

• Kvalitetni materijali za učenje• Za početnike: Alice i Greenfoot kao "Workshop in a Box"• Za učenike: Java Fundamentals i Java Foundations• Za starije učenike i studente: Java Programming • Osim toga: baze podataka, SQL, PL/SQL, AI & ML• U skladu s obrazovnim standardima

• Pomoć u certifikaciji i popusti• Junior Associate Certificate (1Z1-811)

www.hujak.hr64 © Branko Mihaljević - HUJAK, 2019

Page 65: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Workshop in a Box

Naziv radionice Polaznici Gradivo Softver Sati

Getting Started with Java Using

Alice

Bez iskustva u programiranju, učenici viših razreda osnovne i

nižih razreda srednjih škola

Osnove programiranja razvojem animiranih 3D priča i igara

korištenjem objekata iz galerijeAlice 8 h

Creating Java Programs with

Greenfoot

Razumiju osnovne koncepte programiranja – služi kao prijelaz

prema programiranju u Javi, učenici srednje škole

Koncepti i principi objektno-orijentiranog programiranja kroz

stvaranje 2D igaraGreenfoot 16 h

Programming the Finch Robot

in Greenfoot

Znaju osnovne koncepte programiranja – služi kao prijelaz

prema programiranju u Javi, učenici srednje škole

Koncepti i principi objektno-orijentiranog programiranja

upravljanjem robotom

GreenfootFinch Robot

16 h

Programming the Finch Robot

in Java

Znaju osnovne koncepte programiranja – služi kao prijelaz

prema programiranju u Javi, učenici srednje škole

Koncepti i principi objektno-orijentiranog programiranja

upravljanjem robotom

JavaFinch Robot

16 h

www.hujak.hr© Branko Mihaljević - HUJAK, 201965

Page 66: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

• Semestralni oblik

Oracle Academy – Java tečajevi

www.hujak.hr© Branko Mihaljević - HUJAK, 201966

Naziv tečaja Polaznici Gradivo Softver Sati

Java Fundamentals

Bez ili s malo iskustva u programiranju,

najčešće stariji učenici srednjih škola

Osnovni koncepti objektne orijentacije, termini i sintaksa te

koraci za stvaranje osnovnih programa razvojem 3D animacija, 2D

igara i Java aplikacija

AliceGreenfoot

EclipseJDK

90 h

Java Foundations

S malo iskustva u programiranju,

najčešće stariji učenici srednjih škola i mlađi

studenti

Osnovni koncepti objektne orijentacije, termini i sintaksa te

stvaranje osnovnih programa kroz razvoj i oblikovanje Java aplikacija u

okruženju NetBeans

NetBeans JDK

90 h

Java Programming

S osnovnim iskustvom u programiranju,

najčešće mlađi studenti

Napredniji koncepti OO programiranja, uključivo pakete,

razrede, generike, iznimke i ulazno-izlazne tokove u okruženju Eclipse

EclipseJDK

90 h

Page 67: O jeziku Java - mzo.gov.hr fileZanimljivosti o jeziku Java •Jezik koji je stvoren "slučajno" •Novi jezik za STP (set-top box) kao "čišća" verzija jezika C •Inicijalno osmišljen

Umjesto zaključka

Hvala MZO i Oracle Academyna pozivu i na prilici da se

popularizira programiranje u Javi!

Veliki pozdrav od HUJAK-a!!!

www.hujak.hr© Branko Mihaljević - HUJAK, 201967