Problém je, že třeba ten návod s F12 na spoustě prohlížečů nefunguje (na linuxovské verzi Mozilly taky ne).
Javascript je určený pro web, jako doplněk HTML (umí např. vygenerovat novou webovou stránku na základě dat, zadaných uživatelem). Má zablokováno cokoli ukládat na místní disk, což je z důvodů bezpečnostních (aby se v něm nedalo napsat malware, které po otevření html stránky začne přepisovat disk), což se dá obejít (taková malware v reálu existují), ale ne běžným uživatelem.
V současné době už umí např. i vygenerovat nad zadanými daty obrázek, buď ve svých grafických knihovnách (zdaleka je ovšem neumějí všechny prohlížeče) nebo vygenerováním kódu SVG (i jeho zobrazení je v různých prohlížečích různé, pokud daný prohlížeč vůbec umí svg zobrazit).
Absence možnosti zápisu výsledků nějakých výpočtů na místní disk by se asi dala obejít jejich zobrazením ve víceřádkovém okně (jeden z prvků JS) a copy paste přenesením do normálního textového editoru.
Nevýhodou JS pro začátečnické programování je naprosto šílená syntaxe a existence velkého množství "dialektů", kdy řada kódů (hlavně složitějších) bude vyžadovat konkrétní prohlížeč konkrétní verze a v jiných se bude chovat buď "divně", nebo se vygeneruje chybové hlášení. Některé prohlížeče např. nepodporují všechny prvky JS ale jen některé, jak jsem zmínil výše.
Scratch funguje taky v prohlížeči ;-). A má-li být jedinou výhodou to, že funguje v prohlížeči, tak to je kapku málo. A pokud někdo není ani schopen nainstalovat nějaké IDE, tak ať se raději na nějaké programování vykašle.
Jinak muj nazor už zde padl. Skriptování v Excelu je dobrý nápad, Python, ačkoliv já sám ho moc nemusím, tak bych jej zacatecnikovi asi taky doporučil.
A nakonec proč by ne i tu Javu? Neni nutné v ni programovat objektově stejně jako v tom Pythonu. Alespoň ze začátku.
Tohle nejsou žádné argumenty:
https://github.com/nicolaspanel/numjs
https://github.com/node-tensorflow/node-tensorflow (tensorflow je c++ s bindingy do mnoha jazyků)
https://github.com/mateogianolio/matplotnode (matplotlib je taky c++ s bindingy do mnoha jazyků)
https://www.npmjs.com/package/scipy
Aha, děkuji za rozšíření obzorů. Bohužel to ve vztahu k onomu začátečníkovi znamená, že zatímco dosud pravděpodobně (skoro) všude, když potřeboval odřádkovat, stiskl prostě Enter, tak nyní si bude muset zvyknout, že k tomu je třeba dvojkombinace. A že když se náhodou splete, tak šipkou nahoru získá kód zpět a může pokračovat.
Ale jak mi tu už někdo poradil, mám zkusit jiný prohlížeč. To opravdu pomůže, Internet Explorer mi dovolí Enter, Firefox (s Firebugem) taky, oba mají i o fous lepší chybové hlášky (v tom mém příkladu aspoň zahlásí neukončený řetězec, i když mi neřeknou kde). Jen přes tu práci se soubory (včetně samotného ukládání kódu) nejede vlak.
> Ani v jednom se ten jazyk neprosadil.
Zajímavé, já viděl weby v Pythonu (Bottle, Django, …) a na mobilu mi také funguje Python.
> To logicky vede k tomu, že jazykem pro začátečníky musí být Javascript!
Podivný historický balast, datové typy, obtížná interakce s okolím pokud nejde jenom o web (interaktivní konzolový program, soubory, sqlite, sockety, …), nedostatek knihoven jako NumPy, SciPy, Matplotlib, Tensorflow, což je to, co vědecký pracovník a lékař využijí.
Ty asi netušíš co všechno běží na Pythonu viď, půlka Google, Dropbox....alespoň kritizuj objektivně a neshazuj všechny jazyky, kromě toho, který jsi se naučil.. Jinak na JS je dobrá https://addons.mozilla.org/cs/firefox/addon/toggle-js/ tahle appka :)
OK, jsem začátečník, otevřu si konzoli prohlížeče, zaraduju se z Hello world, co dál? Chtěl bych vyzkoušet víceřádkový kód, ale ouha, mám Chrome a ten neumožňuje si v konzoli víceřádkový kód napsat a pak ho spustit. No, nevadí, holt si otevřu Notepad a v něm si to napíšu, konkrétně třeba
function test(){alert('Hello world".);}
test();
Copypastnu to do konzole, spustím a konzole mi řekne "Uncaught SyntaxError: Invalid or unexpected token". V pohodě, vezmu svou křišťálovou kouli a vyvěštím, že to v tomto případě znamená, že jsem řetězec začal apostrofem, ale ukončil uvozovkami. Takhle si vyzkouším přiřazení, podmínky, cykly, pole, funkce... A teď bych si to chtěl uložit. Aha, to nejde, ale však už si to stejně píšu v texťáku bokem, takže si uložím ten.
Další den bych už chtěl napsat něco, co pracuje s nějakou množinou dat, vytvořím si další texťák, do něj naházím sadu čísel, uložím... A teď bych chtěl ten soubor načíst. Cože? To nejde?
Tak dík, jsem v prohlížeči, takže otevřu Google, zadám do něj "nejlepší programovací jazyk pro začátečníka" a budu doufat, že tentokrát narazím na něco, co mi umožní si kód ukládat, načíst texťák a bude mít chybové hlášky, z nichž je možno poznat, co je špatně.
Buď si bude jen hrát a občas tím něco pořeší, pak se mu mnohem víc hodí něco, co má napojení na desktop a FS, anebo se z něj stane opravdový programátor (TM) a pak je jedno čím začíná - správně by měl umět zvolit správný nástroj dle toho co řeší, že? :-)
> Nejlepší běhové prostředí je dnes prohlížeč
je tak snadné najít protipříklad k tomuto tvrzení, že to ani nebudu dělat
V době Internetu a mobilů se učit Python? Ani v jednom se ten jazyk neprosadil. Když začátečník vytvoří program, jak ho bude někomu prezentovat?
Nejlepší běhové prostředí je dnes prohlížeč. To logicky vede k tomu, že jazykem pro začátečníky musí být Javascript!
Zmáčni teď hned ve svém prohlížeči F12 a pak Esc. Napiš alert("Hello world") a zmáčkni Enter. Právě jsi se stal programátorem! Tenhle jazyk ti bude fungovat všude - na mobilu, na serveru, na tom slavném ESP8266, všude.
Já osobně mám třeba radši Ruby. Ale realita je neúprosná a proto Javascript musím doporučit.