To vám autor (tedy má maličkost) nepoví nemaje křišťálovou kouli :-) ukáže čas.
Na poli "náhradníků céčka" jsou minimálně tři čtyři jazyky: D, Go, Rust, možná částečně i Nimrod. Z této suity má podle mě největší šanci právě Rust, protože Go je přece jen určen hlavně pro "běžné" aplikace a GC ten jazyk dost zabíjí pro MCU, RT systémy, jádra atd. Navíc Rust má dobrou přátelskou komunitu.
Ale...uvidíme...řekneme si za pár let.
Go jde opravdu jiným směrem a podle mého je to opravdu velmi dobře navržený jazyk (však jej navrhli zatraceně zkušení pardi). Trochu mi nahrazuje Python, ekosféra knihoven vyrostla úplně nádherně. Go je solidně rychlé a navržené pro vícevlánkový provoz „by default“. Chce si to přečíst trochu víc, ale ve zkratce: přišel jazyk, který byl navržen tak, aby vyhověl tomu co Google potřebuje.
Když nechci, aby se vrtal v produkčním programu nějaký zvědavec, sestavím binárku (statické linkování, takže je trochu větší) a ta se používá; zdrojáky leží jinde. Další plus.
Go jde opravdu jiným směrem a podle mého je to opravdu velmi dobře navržený jazyk (však jej navrhli zatraceně zkušení pardi).
Svým návrhem připomíná jazyk z roku 1970 (např. kvůli tomu, že uživatel nemůže vytvářet vlastní generické typy). Osobně preferuji modernější jazyky.
Ale GO není navržené aby fungovalo jako technologický demonstrátor. Je to jazyk, ve kterém se jednoduše programují implementace interních služeb - což jsou většinou jednoduché transformace typu vezmi z fronty X první dokument, z nej vezmi položku Y, tu zapiš do fronty Z, a pokud možno tuto operaci prováděj paralelně. Na nic jiného to není dělané.
Určitě existuje hromada skvělých programovacích jazyků, skvělých prostředí - trpí ale jedním drobným problémem - existuje minimum lidí, kteří by ten jazyk dokázali uchopit. To, co se rozšířilo bylo vždy jednoduché, názorné, snadno uchopitelné a to pro téměř všechny vývojáře.
Myslím si, že tak to chápe většina lidí, kteří se kolem GOčka motají. Na GOčku, na tutoriálech a prezentacích je vidět, že je to jazyk (+ knihovny) pro psaní backendových služeb. Samozřejmě, že Google určuje směr - je to firma, které má nejvíc GO vývojářů, a nejvíc sw napsaného v GO. Profitují ale z toho i další - Google vzhledem k zátěži musí myslet na efektivitu provozu, takže nevýmýšlejí nic, co by bylo potenciálně pomalé - a relativně rychle reagují na zkušenosti z provozu.
Zcela pragamticky nezáleží na kvalitě jazyka, jak ukazuje čas, ale na tom, do čeho budou nality prachy.
Z tohoto hlediska D umře, protože ho nikdo a nic masivně nepodporuje - a v zásadě visí a padá na aktivitě několika málo osob. Bez finančního zázemí.
Rust umře. Mozilla jednoduše potřebuje proinvestovat větší peníze, které dostává na svůj provoz, ale její hlanví zaměření je jinde. Nebude proto dostatek energie ani peněz na protlačování Rustu. Případně pokud nějaký nadšenec bude Rust v Mozille protlačovat - možná se znelíbí homosexualistickému lobby a ta ho vyžene, což už se jednomu v Moziile stalo, a taky vymyslel programovací jazyk.
Go by mohlo přežít, ale Google má tendenci každý svůh projekt po nějakém čase pokud možnost drsně pohřbít a skončit s ním.
Takže jediná náhrada Céčka, která bude fungovat, bude C++. Za takových 6 let nikdo nebude tušit, co je to D, Rust ani Go.
Do C lijí velké peníze a energii především lidé odkojení unixy. A pak embedded věci.
Do Ady lije velké peníze ministerstvo obrany USA. Takže sice nebude nikdy přehnaně rozšířeným jazykem, ale bude jazykem, který určité obory budou potřebovat - a tak ho budou vyvíjet, udržovat, vylepšovat.
Python a Perl - tyto dva jazyky udělaly velkou chybu, že bez vážných důvodů došlo ke zpětně nekompatibilní změně syntaxe. Oba jazyky to v rozšíření poslalo hodně dolů. Oba jazyky to udělaly v době, kdy jejich používání šlo strmě vzhůru - a tato akce zastavila jejich růst a strmě poslala v rozšíření dolů.
Python je ale příma jazyk, který udělal to, co málokterý jiný - umožňuje supersnadné nakládání s abstraktními datovými typy. Tak jednoduché, jaký má málokterý jiný jazyk. Pak nemá kryptickou syntaxi jako C/C++, jako D, jako Perl, jako řada jiných - a proto nejspíše přežije. Protože podobně jednoduchý a mocný skriptovací jazyk - těch moc není.
Ovšem možnost stát se významným a hodně rozšířeným jazykem si zničil přechodem z Pythonu 2 -> Python 3. Možná nejde ani o ten přechod, ale Python ho udělal v nejblbějším možném čase, který člo vymyslet. A navíc Rossum protahoval celou nejistotu kolem přechodu na velkou řadu let. Tím ho efektivně zrušil z mainstreamu.
Perl ovšem bude neustále klesat. Bude tu ještě dlouho, ale neustále sešupem pomalu dolů.
C, Python, Perl - jazyky, ktere zaznamenaly obrovske rozsireni i bez nejakych vetsich penez do zacatku.
Ada - protocila se do ni spousta penez... a skutek utek'
Pokousis se vysvetlit jednou veci strasne slozite procesy. To uz pomalu muzes vestit z kavove sedliny nebo podle data vzniku jazyka.
(btw - nerikam, ze penize nehraji roli. Jenom ze to zdaleka neni jediny a nejspis ani nejdulezitejsi faktor)
za C stoji penize vyrobcu procesoru. ciste s asemblerem jsou neprodejny.
ADA = Ada 83) by a team led by Dr. Jean Ichbiah at CII-Honeywell-Bull in France
Python i Perl
vezli se na dot.com buzzword vlne, kterou sponzoroval Sun, kdyz kopal za Javu. oba zalepily stejnou buzzword diru pro "lepidlo" a jak je v korporatu zvykem, z lepidla se stal bumbrlicek.
Tu korelaci tam někde vidět můžeme, někde ne, záleží na tom, jak je velká a kolik je výjimek.
Samozřejmě s jazykem souvisí i debuggery, IDE atd. a tam je asi lití prachů důležitější (viz investice do IDE), ale stejně najdeme i spoustu jazyků, do kterých se lily prachy horem spodem a nepomohlo to (pamatuje někdo na VBScript, který měl podle velkého vizionáře Billa nahradit JS?; kdoví kolik se narvalo prachů do RPG nebo COBOLu - ale tady to jsou prachy na vývoj a udržování).
Na druhou stranu jazyky, které vznikly jako one man show a prosadily se (Python, podle mě prvních deset let žádné velké investice nebyly a ty firmy co investovaly, tak jen do svých balíčků - ActiveState Python například).
Trošku OT: zatím jediné reklamy na programovací jazyk, které jsem viděl v reálném světě (a to ještě na letišti v odletové hale, tam je to IMHO drahé), byly Java za dob Sunu a .NET (s C#).
S prvnim odstavcem souhlasim, u druheho si dovolim podotknout ze je nove zalozena nadace jazyka D, ktera ma za cil zajistit financni zazemi (ale zda bude uspesna si zatim nedovolim tvrdit).
S tim ze rust umre moc nesouhlasim, sam jej moc nemusim (rozumnej zatim jsem se jej nenaucil a jsem fanda jazyka D). Ale verim ze si svoje uplatneni najde a preije.
Go jako nahradu Cecka moc nevidim a prezije urcite, prece jen uz je v nem docela dost projektu a to i vecich, takze i kdyby jej google prestal vyvijet tak vyvoj prevezme nekdo jinej.
Ad D: O jazyku D jsem se dozvěděl já osobně před více než 10 lety. Jazyk sám existuje 15 let.
Ad Rust: Proč by měl Rust přežít? Není splněna ani jedna ze dvou podmínek: Co má tak speciálního, že by stálo za to ho používat proti jiným konkurenčním jazykům? A nebo kdo bude tak velký tahoun, aby ho propagoval, cpal do něho peníze, atd.?
Ad Go: Projekty vznikají a zanikají. Go si myslím, že má nejhorší prognózu. Protože dokud se bude o Go starat Google, tak nemá smysl založit spolek/nadaci/cokoli, která ho bude propagovat a rozvíjet. A až Google Go odstaví, tak už bude pozdě. Pro jistotu: Je přirozeností Google, že projekty bez milosti ukončuje, a umrtvuje - stačí si projet seznam projektů, které Google ruší každý rok.
Celý problém je, že proti C++, do kterého lije velké prachy Microsoft, a proti řekněme Swiftu, kam bude lít Apple - nemá D, Rust ani Go žádnou podstatnou výhodu. Proti C++ jsou určitě lepší, ale zase ne PODSTADNĚ lepší, aby stálo investovat ekonomickou ztrátu za přechod projektů na jiný jazyk. A pochybuji, že někdo tu investici prachama, aby jiný jazyk protlačil udělá. To v případě D/Rustu/Go je velice nepravdědpobné.
@ Miloslav Ponkrác
Pravděpodobně máš pravdu. Jenže jednu důležitou proměnou z celé té rovnice jsi dosadil sám a podle toho pak odhadl výsledek. A to je - do čeho (ne)budou nality peníze. Ať už z jakého koliv důvodu. Pro cokoliv se může někdo zbláznit, třeba jako onen mecenáš do Ubuntu, nebo jak píšeš ta "homosexualistickému lobby" si může zítra usmyslet, že podpořit tento jazyk je IN a hotové. A jelikož to nevíš, tak stejně nevíš, který jazyk padne a nebo ne.
Teoreticky je to pravda. Ale praxe ukazuje, že humanitární a lidskoprávní aktivisté se orientují na boření a protesty, a jen mizivě na budování. Aktivisté obvykle potřebují nepřítele, který něco vybudoval, aby mu to mohli zbořit, prohlásit toho tvůrce za morální hovado, a rozmazat ho v médiích jako nejhoršího člověka pod sluncem.
Upřímněn řečeno nevím a nepamatuji si na žádný případ, kdy by homosexualistická ani jiná humanistická lobby významně podpořila vývoj nějakého programovacího jazyka. Zato si vzpomínám na bezpočet případů, kdy významného tvůrce napadali, ničili, zostuzovali.
Dokonce už i Lunus Torvalds se s nimi setkal, a výsledkem byl hnůj tady na rootu "Dopouští se Linus verbálního zneužívání?".
Pamatuji si, jak raketový technik, který úspěšně poslat družici do kosmu byla napaden feministkami za jakési tričko.
Pamatuji si na útoky homosexualistické lobby na CEO Mozilly.
Zkrátka, nevím, který programovací jazyk přežije, ale jedno jsem si téměř jistý - že podpory homosexualistické lobby, která by se začala starat o nějaký programovací jazyk a podporovat jej - to se spíš stanu čínským papežem a ředitelem vesmíru.
Také jste tvrdil, že PostgreSQL do 5 let umře - a ještě tu je.
Mám pocit, že programátoři se dopouští stejného omylu, jako lidé, kteří prohlašovali, že rádio způsobí konec knih, a pak že kino způsobí zánik rádia, a pak že díky televizi končí kina. Svět se mění, ale dobré věci zůstávají.
Dominující jazyky, které tu máme, dominují kvůli vazbě na určitou technologii - a většinou ve své době neměli konkurenci, nebo konkurence měla nějakou vážnou skvrnu na kráse. Každý jazyk, aby přežil si musel najít svojí niku, která také musela přežít. Pokud přežije nika, tak většinou přežije i s ní spojený programovací jazyk. Což je např. nevýhoda Dčka. Nevšiml jsem si, že by nějaký jazyk nahradil jiný - určitě se ale mění technologie - tak jak se mění hw, a mění se i úlohy, které se programují.
K tomu aby se programovací jazyk masivně rozšířil musí být uchopitelný pro každého programátora - nejen pro absolventy Matfyzu nebo JF - tudíž nemůže být příliš abstraktní. Je hromada vynikajících jazyků, jako je třeba Erlang, Scala - nicméně právě kvůli své originalitě budou vždy okrajové. C, C++, Java se ujalo právě proto, že na nich není nic zvláštního - v podstatě jsou to velice primitivní neabstraktní jazyky. Ale to odpovídá schopnostem většiny programátorů.
GOlang je neabstraktní snadno uchopitelný jazyk, který svou niku má - implementace služeb, kde Python je příliš pomalý a Java příliš těžkotonážní.
Se vším souhlasím, jen si myslím, že C++ primitivní přístup sice umožňuje, ale jdou v něm dělat dost šílené věci, když někdo má přehled např. o Haskellu ... https://bartoszmilewski.com/2009/10/21/what-does-haskell-have-to-do-with-c/
Co například se zjistilo konkrétně až za běhu, co nebylo u šablon jasné?
Že něco nějak jde ještě neznamená, že by se to tak mělo dělat. Když bylo vymýšleno XML, tak asi taky nikoho z autorů nenapadlo, že to někdo znásilní k vytvoření v podstatě turingovského jazyka (Apache Ant). Že to jde ale neznamená, že to není megaprasárna na kvadrát, fuj, e e.
"`JavaScript is Lisp in C's clothing` .)"
Není, ale "prej" bude . . .Co jsem tím chtěl říct bylo, že z jazyka, ve kterém se na client-side dají udělat super věcičky a hejblátka relativně jednoduše skriptíčkem začali "fanoušci" za každou cenu zkoušet udělat plnohodnotný všestraný jazyk - no a nakonec jsou z toho takové podivné úkazy, jako FW to sice funguje jako ostatní FW (ostatní jazyky), ale ne protože je to na to vhodný jazyk, ale protože se to v tom nakonec teda povedlo udělat . . . .
Tak JS má pár zajímavých fičurek (zrovna ty jsou ale dost nepochopené, viz snahy o ohýbání třídního OOP do JS), ale určitě neprorazil proto, že by byl nějak extra výhodný nebo snad jednoduchý, spíš relativně náhodou zrovna byl dostupný na browserech, tak se používal tak dlouho, až se dostal na mainstreamu. Kdyby nebyly první browsery s JS (Netscape, IE atd.) monolitické a umožňovaly pluginovat i další interpretry, byl by vývoj asi úplně jinde (zrovna Python by asi nebyl na client side marný :-)
Protože Elisp není moc dobrý LISP, je to jazyk, kterej vypadá, jakoby se někdo snažil narvat imperativní jazyk do LISPovké syntaxe :(
Není horší ve smyslu, že je to nějaký nedodělaný šmejd, je horší ve smyslu praktického jazyka, viz třeba dost násilné řešení IO (ono to je pro akademický jazyk jedno, tam se jede stylem "program načte ze vstupu X, musí vygenerovat Y"). Navíc v praxi se skutečně upíšeš závorek, v porovnání s Clojure/CLISPem je jich víc a navíc jsou všechny stejné - kulaté, špatně se to čte (no však nemusím připomínat ten hanlivější význam zkratky LISP).
Elisp byl kritizován hlavně pro neexistenci lexikálního scopování. To už neplatí. S použitím moderních knihoven se v něm dá psát celkem elegantně. Já osobně nemám problém s elispem v emacs ani s javascriptem v browserech.
Proč by nešlo řešit IO stejně jako v JS? Existují kompilátory Scheme do JS a IO není problém.
Python? To jako vážně? Jazyk, kde záleží na odsazení?
A jak by se dělala taková minifikace kódu?
Jako sorry, ale některým lidem python vadí... to už raději ruby nebo scheme
a mimochodem... poslední dobou s u svého kódu sleduji velké množství závorek... sice je to kombinace kulatých hranatých a složených závorek... ale říkám si, že to vypadá skoro jako...
minifikace - však jsou moduly i pro Python, ostatně ten rozdíl ve velikosti nebude velkej. V Pythonu musíš (ne vždycky) zachovat konce řádků (jeden bajt) + odsazení (což bude 1, 2 max 3 bajty pro normální kód). V Javasciptu zase máš spoustu jiného balastu, jako závorky všude možně (no je fakt, že zase někdy díky ním ušetříš whitespace, ale ne vždy), někdy delší klíčová slova (def/function, _nic_/var, kratší zápisy smyčky for atd.). Takže předpokládám, že ve výsledku se sice může Pythoní kód zdát delší, protože entery+mezery, ale celková velikost nemusí být nijak odlišná (chce to vyzkoušet, ať zbytečně neplácám).
Nejdřív mi to přišlo jako špatný nápad, ale vzhledem k tomu, že to odsazení ve zdrojáku stejně být musí, tak proč jím nenahradit závorky a vyřešit jím strukturu.
Minifikace Pythonu? To jako že byste chtěl šetřit na pár tabelátorech (které tak jako tak nahradily závorky, které by odstranit nešly)???
Zrovna python není moc dobrý jazyk pro interaktivní aplikace. Nejdou v něm psát callbacky jako anonymní funkce. Nejdou modifikovat vestavěné typy, což je v js nutné pro ošetření nekompatibilit mezi browsery. JS vůbec není špatný jazyk pro webový frontend. I nodejs je IMHO lepší než pythonovské event loopy.
Node.js je jako výkonná platforma určitě zajímavé (ponechávám stranou schopnosti Javascriptu), ale zrovna ona nutnost řešit asynchronní operace callbacky (přenos řešení problému ze systému na vývojáře), i když to zrovna je k ničemu, je nejslabší vlastností, a nepomáhají tomu moc ani ojebávky přes generátory, promises či async-await.
Končí-li novinový titulek otazníkem, odpověď je ne.
a) člověk se nechce učit každý nový free-cool-in jazyk
b) člověk je liný lámat funkční kód do nového jazyka jen tak
c) bůh ví jaké jsou pro to frameworky
Zatím se C nepodařilo nahradit ani Javě, ani .NETu a tyto dva jazyky aspoň neupadly v zapomění po pár letech