Presne tak jak pisete jsem to ale pochopil. Ja jen toho studenta upozornuju, ze to, ze je Java zdarma je mytus a at na to mysli, pokud by chtěl v Jave rozjizdet vlastní komercni projekty. Mimochodem, soucasti balicku stazeneho zdarma jsou i komercni nastroje, takze kdyz je student omylem pouzije, tak se mu muze stat, ze dostane fakturu od Oraclu.
Druhy mytus je, ze C# predstavuje vendor lock. Frameworky .NET core i Mono jsou multiplatformni, open source a vsechny .NET frameworky maji a vzdy meli updaty zdarma a jejich pouziti bylo take vzdy zdarma. Take si muzete vybrat z nekolika multiplatformnich vývojových prostředí (Visual Studio Code, JetBrains Rider, Visual Studio for Mac a MonoDevelop).
Java zdarma není mýtus. Java je zdarma úplně stejně jako třeba .NET Core. Akorát u té Javy máte víc než jen dvě implementace a oficiální verze od Oraclu je založená na opensource OpenJDK, takže OpenJDK je mnohem bližší OracleJDK než Mono .NET Core. Placená je u Javy rozšířená podpora, stejně jako to funguje u Microsoftu.
Z vašeho srovnání by to vypadalo, že .NET je otevřenější než Java, přitom je to přesně naopak. Primární vývoj Javy je otevřené OpenJDK a existuje více implementací Javy, v případě .NET jsou pokud vím jenom dvě implementace, a to navíc Mono implementuje jenom část.
.NET má tři implementace, kdy všechny jsou zdarma i pro komerční použití a zdarma jsou všechny updaty:
- Opensource .NET core především pro server side což je teď primárně vyvíjený framework
- Opensource Mono které se teď používá hlavně pro mobilní aplikace
- Proprietarní .NET framework jako komponenta windows
Tyto frameworky nejsou vzájemně nahraditelné, ale díky .NET Standardu je jednoduché sdilet kód mezi nimi.
Nejvýznamnější IDE jsou:
- Properietarní Visual Studio pro Windows
- Proprietarní Visual Studio for Mac založené na opensource MonoDevelop
- Opensource multiplatformní Visual Studio Code
- Multiplatformní JetBrains Rider založený na stejné technologii jako IntelliJ IDEA
Co se týká client side, tak vše se v bysnysu přesouvá na web. Otázka je, co s tím udělá webassebmly, kde pro .NET se vyvíjí
Blazor.
Microsoft potom chce peníze za velké Visual Studio a na tom potom vydělává. A samozřejmě i ve Visual Studio Code, ktéré je opensource a zdarma, tak se postará aby tam šel jednoduše používat Azure, ale nijak nebrání tomu aby se tam používalo něco jiného.
Oracle naproti tomu zkouší různé podpásové triky, jako zpoplatněné updaty frameworku, hijack webového prohlížeče v rámci updatu pro windows (ask toolbar), nejasné podmínky kdy zdarma je "general purpose computing”, distribuce komerčních nástrojů v rámci verze zdarma atd. Opravdu bych byl opatrný s tím používat něco jiného než OpenJDK a studenti by to měli vědět.
Co se týká pracovních příležitostí, ano spousta starší systémů jsou historicky vytvořené v Javě, protože je to starší technologie a byla tu první, ale otázka je jak je to u nových projektů. Tím nemyslím .NET ale obecně dynamický vývoj v současné době.
Na studiu Javy ale z principu není nic špatného, principy jsou prakticky stejné ve všech jazycích, jen funkcionální programování je podle mně lépe implementované v C#. Ale pokud se někdo rozhodne pro Javu, tak důrazně doporučuju používat jen OpenJDK a držet se co nejdál od Oraclu.