Go
Z Denik
(→Ta Java!?) |
(→Ta Java!?) |
||
Řádka 23: | Řádka 23: | ||
* [[wikipedia:en:compiled language|překládá]] se | * [[wikipedia:en:compiled language|překládá]] se | ||
** do [[apidesign:bytecode|bajtkódu]] | ** do [[apidesign:bytecode|bajtkódu]] | ||
- | ** a nebo s pomocí [[apidesign:NativeImage]] | + | ** a nebo s pomocí [[apidesign:NativeImage|native-image]] do strojáku, tak jako [[apidesign:C|Céčko]] |
* s bezpečným přístupem ke [[wikipedia:en:memory safety|správě paměti]] hlavně díky [[wikipedia:en:garbage collection (computer science)|garbage kolektoru]] | * s bezpečným přístupem ke [[wikipedia:en:memory safety|správě paměti]] hlavně díky [[wikipedia:en:garbage collection (computer science)|garbage kolektoru]] | ||
* s [[apidesing:OOP|objektově orientovaným typy]] | * s [[apidesing:OOP|objektově orientovaným typy]] |
Verze z 29. 11. 2018, 10:51
Go je programovací jazyk, který pochází z kuchyně Googlu. Když byl v roce 2009 poprvé představen veřejnosti, tak se hlavně zmiňovalo, že:
- je to staticky typovaný jazyk
- se překládá, tak jako se překládá jazyk C
- přichází s bezpečnou správou paměti pomocí garbage kolektoru
- používá strukturované typy
- má zabudované jazykové konstrukce pro sekvenční komunikaci s ostatními paralelními procesy
Po těch téměř deseti letech od svého uvedení již vyprchalo prvotní nadšení, ale jazyk Go si stále drží dost ze své popularity. Především je podporován a používán velkou firmou. Díky tomu funguje, to co dělá, dělá dobře a zřejmě to tak bude ještě hodně dlouho. Navíc se objevily nové projekty, které na Go staví: Docker je napsán v Go a protože je to nejpopulárnější kontajner, podporuje svým úspěchem i popularitu Go.
Obsah |
Nechte Go plavat!
Go se používá hlavně v systémech, kde je potřeba rychlý start, malé nároky na paměť, snadná komunikace mezi více vlákny a kde se použití klasického Céčka jeví příliš nebezpečné. Go skvěle splňuje funkci systémového jazyka, ale navíc, díky automatické správě paměti, eliminuje již od základu chyby, které se v jiných systémových jazycích dají tak snadno napáchat. Pokud potřebujete jazyk s podobnými vlastnostmi, tak se můžete domnívat, že Go je ta pravá volba. Může být, ale určitě to není jediné možné řešení. Pojďme prozkoumat jednu možnou alternativu: Zkusme použít Javu!
Ta Java!?
Cože? Javu? Toho pomalého, interpretovaného bumbrlíčka, který žere všechnu dostupnou paměť, aby ukojil nároky toho svého nenažraného virtualního stroje? Toho stroje, který se chová téměř jak samostatný operační systém? Tu Javu, kterou každý správný systémák nenávidí? No tak tu zrovna ne. Trochu jinou Javu, ale nejprve se pojďme podívat na vlastnosti Javy jako jazyka:
- je staticky typovaná
- překládá se
- do bajtkódu
- a nebo s pomocí native-image do strojáku, tak jako Céčko
- s bezpečným přístupem ke správě paměti hlavně díky garbage kolektoru
- s objektově orientovaným typy
- s primitivy pro práci s vlákny přímo zabudovanými do jazyka od samého začátku
Zní to povědomě? Ano, jazyk Java nabízí ty samé výhody, které jsou připisovány jazyku Go. Když k tomu připočítáme dvacet let soutěžení o nejlepší vývojové prostředí, knihovnu či framework, tak dostaneme výsledek: refaktorování, automatické nápovědy při psaní kódu, podpora rozličných knihoven vytváří systém, který je vpravdě robustní.
Efektivní spouštění s native-image
Klasický interpret Javy je společně s JIT překladačem zatíženy výrazným množstvím meta dat.