Úvod do jazyka a prostředí Java Tomáš Pitner, Radek Ošlejšek, Marek Šabo Rychlost Javy Java jako programovací jazyk • Dle indexu TIOBE stále nejpopulárnější jazyk na světě s podílem 15 %, další jsou jazyk C a Python. • Je jazykem 3. generace (3GL) — imperativním jazykem vysoké úrovně. • Je jazykem univerzálním — není určen výhradně pro specifickou aplikační oblast. • Je jazykem objektově-orientovaným — program používá volání metod objektů (zasílání zpráv objektům). • Je OO jazykem disponujícím objektovými třídami, což automaticky neplatí pro všechny jazyky s objekty. • Ideovým předchůdcem Javy je C++. • Svým způsobem je Java obdobou C++, ale zbaveným zbytečností a nepříjemností. Java v budoucnu • Pro tradiční typy serverových podnikových aplikací a systémů zůstává Java (Enterprise Edition) klíčovou platformou spolu s .NET • Perspektivním směrem vývoje je zachování Java platformy (JVM, stávající knihovny, aplikace, 1 aplikační prostředí) • Rychle se vyvíjejí skriptovací jazyky na této platformě: Groovy, JRuby, Jython, a zejména v poslední době Kotlin…)  Mnoho jazyků bylo inspirovaných javou: C#, Groovy, Ruby, Scala, Kotlin… Proč Java • Java je jazyk pro vývoj a běh jednoduchých i rozsáhlých aplikací. • Vývoj je efektivnější než na jejich předchůdcích (C++) a výsledné aplikace "běží všude". • Silnou typovaností, běhovou bezpečnostní kontrolou, efektivní automatickou alokací a dealokací paměti (garbage collection), stabilními knihovnami vč. open-source a rozsáhlým souborem dobrých praktik nabízí aplikacím velmi vysokou robustnost. • Nezavádí zbytečnosti a vede ke správným a dále uplatnitelným návykům. • Je velmi perspektivní platformou pro vývoj open-source i komerčního SW, mj. pro extrémně velké množství volně dostupných knihoven. Další charakteristiky • Java podporuje vytváření správných návyků v objektovém programování a naopak systematicky brání přenosu některých špatných návyků z jiných jazyků. • Program v Javě je přenositelný na úrovni zdrojového i přeloženého kódu. • Přeložený javový program běží v tzv. Java Virtual Machine (JVM). • Zdrojový i přeložený kód je tedy přenositelný mezi všemi obvyklými platformami (UNIX, Windows, Mac OS X). Java pro programátora Konkrétní možnosti: • V Javě se dobře píší vícevláknové aplikace (multithreaded applications). • Java má automatické odklizení nepoužitelných objektů (automatic garbage collection). • Java je jednodušší než C++ (méně syntaktických konstrukcí, méně nejednoznačností v návrhu), což zlepšuje čitelnost a redukuje riziko chyb. Platformy (specifikace) Java • Java SE (Standard Edition) - pro běžná i serverová použití na běžných "plných" platformách (Linux, Mac OS, Win) • Java EE (Enterprise Edition) - kromě samotného běhového prostředí (JVM) zahrnuje také množství dalších API. Existuje 20 implementací (aplikačních serverů) Java EE, jako je GlassFish 2 Server, IBM WebSphere Application Server, Red Hat JBoss Enterprise Application Platform a další. • Java ME (Micro Edition) - do přenosných, vestavěných a malých zařízení (mobily, televizory) • Java Card - platforma pro bezpečné chytré karty Aktuální verze Stav k září 2019: • Java Standard Edition 12, 11 a 8 (u zákazníků s Long Term Support pokračují i SE 6 a 7 a LTS 11) • je stabilní verzí pro všechny platformy. • U Java 7 běžná podpora skončila dubnem 2015. • Aktuální informace najdete vždy na webu Oracle Oracle Technetwork/Java. • K předpokládanému vývoji existuje Oracle roadmap Licence Javy • Na stránkách https://www.java.com/download/ je java dostupná Oracle Java SE pro všechny platformy. • Pro testovací, vývojové, demonstrační nekomerční využití je Java SE zdarma. • Pro komerční provoz je Oracle Java placená. Licenční poplatky se liší dle způsobu nasazení (desktop až cloud) od cca $2.5 do $25 měsíčně na jeden procesor a zahrnuje podporu - podobně jako např. RHEL. Stažení Javy • samotné vývojové prostředí (JDK), např. Java SE 8 JDK • jen běhové prostředí (JRE), např. Java SE 8 JRE: to nám tady nestačí, chceme vyvíjet • JDK v balíčku s grafickým (okénkovým) integrovaným vývojovým prostředím (IDE, Integrated Development Environment) NetBeans.  Připravili jsme pro vás tutoriál, jak Javu nainstalovat. Budoucnost Javy • Na závěr optimistického úvodu si pročtěte zajímavý článek analytika od Forrester: Java Is A Dead-End For Enterprise App Development 3