Rychlost Javy

01 java is slow

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, 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 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