Začít s Javou je podle mne chyba, pokud bude někdy chtít přejít na jiný (-> efektivnější) jazyk (ať už z důvodu zájmu a nebo práce), bude to mít zbytečně těžké. Průměrný Javista je zlenivělí (takto to stačí říci abych nikoho neurazil) a má tendenci nezvládnout management paměti bez GC ...
Kdyby jenom management paměti bez GC. Dokonce ani neumí používat pro ukládání dat páskovou mechaniku, a dokonce ani neumí pracovat s děrovačkou štítků!
Efektivnost jazyka jako jednorozměrná univerzální veličina je nesmysl. Věděl by to i pan RAII, který o tom diskutoval ve
vedlejším vlákně, jenže se mu nějakým nedopatřením nedaří z té diskuse přečíst stránky 5 až 6.
Jinak pro úplné začátky je to jedno, to se člověk naučí, jak vypadá program v nějakém imperativním jazyce, jak se používají proměnné, podprogramy, jak se používá větvení a cykly. To se může každý naučit v Javě, C, C++, Pascalu, Pythonu, PHP, JavaScriptu, Perlu, Ruby nebo v čemkoli jiném, a rozhodně si žádnou z těch voleb neuzavírá budoucí možnosti s jiným jazykem. Akorát se pak naučí, jak se v tom kterém jazyce zrovna píše daný příkaz. Pak je také dobré naučit se, jak se pracuje s objekty, tam bych akorát pro začátek vynechal JavaScript, protože se od těch ostatních vyjmenovaných jazyků dost liší. No a teprve pak nastává ta fáze, kde začne záležet na výběru jazyka, ale to by si měl člověk vybrat podle toho, že těch jazyků pár aspoň trochu zná a má představu, jaké jsou jejich silné a slabé stránky. A pak si vybrat podle toho, co chce dělat. Pokud chci programovat mikrokontroléry, nebudu volit PHP nebo JavaScript. Pokud chci programovat webové aplikace, zvolím Javu, PHP, Python, Ruby nebo JavaScript. Pokud enterprise aplikace, vyhraje asi Java. Pokud chci přispívat do linuxového jádra, nemám jinou volbu, než C. Pokud chci programovat systémové skripty, je dobré se podívat na Python a Perl. A ve všech případech je pak programovací jazyk jenom střípek mozaiky, důležitá je celá infrastruktura kolem, knihovny, nástroje, standardy. Pokud někdo programuje bankovní systém a někdo jiný hru pro Android, sice oba píší v Javě, ale ta syntaxe jazyka je skoro to jediné, co mají oba dva společné, jinak jsou to dva hodně odlišné světy.
No a pak vedle imperativního programování existují také funkcionální jazyky nebo deklarativní programování, v různých jazycích se to různě mísí... Takže na začátku si rozhodně člověk nevybírá jeden programovací jazyk na celý život.