Za co nás, ó Velký křemíku, s tím Pythonem a Javascriptem furt trestáš...
2. 9. 2024, 12:37 editováno autorem komentáře
Při čtení dokumentace jsem to zapích při třetí větě typu: "Toto (nestandardní) chování vyplývá z implementačních podivností čehosi v Javascriptu". To je tak těžký postavit ekosystém (Node, Deno) na něčem, co si s sebou nepotáhne historický balast a bude to splňovat nějaké standardy očekávané ve 21. století?
To jste se ovšem zcela minul s podstatou TypeScriptu. Jeho podstatou je to, aby výsledný kód běžel ve webovém prohlížeči, takže se JavaScriptu nevyhnete. Naopak když si chcete stavět ekosystém pro svůj počítač nebo pro server, můžete zvolit jaký jazyk chcete. Smysl TypeScriptu je umožnit psát JavaScriptové programy pro webové prohlížeče o něco bezpečněji.
Tak node a deno vzniklo z browserů.
Díky tomu máme modernější JavaScript.
API se rozšiřují, jazyk se vyvíjí a zlepšuje.
Kdyby se svět dohodl na tom, že browser se bude skriptovat v Pythonu nebo .NET nebo Javě.. tak by to tak bylo.
ECMAscript se vyvíjí pomalu, konzervativně opatrně, ale pokroky tu jsou.
Nebýt toho tak si myslím, že by pokroky jiným jazykům v jistých ohledech trvaly déle..
Dneska je lahůdka použít Deno a TypeScript a na pár řádků napsat hezký a celkem efektivní kód, připravit si izomorfní šablony a komponenty, fungovat offline na webu..
Zbytek je většinou lepidlo pro SQL, v lepším případě.
Když dneska vidím šílené ORMy a backend frameworky, kde je problém vytáhnout kousek logiky na frontend, chce se mi často brečet.
Napsat pět řádků SQL a nahodit PostgREST je to, co je vlastně hodně těžké se naučit. A jo, stačí to.
Supabase rocks!
A v čem bude lepidlo? TypeScript? Python? Rust? WASM? To je přece jedno. Závislé na dobře promyšlené architektuře a dostupných lidech, ne?
Jo a nezmínil jsem PHP. Ani Pascal. To není chyba :-)
"To je tak těžký postavit ekosystém (Node, Deno) na něčem, co si s sebou nepotáhne historický balast a bude to splňovat nějaké standardy očekávané ve 21. století?":
Deno má backend v Rustu (prototypovali v Go, ale Ryan Dahl sezdal, že dva garbage collectory nad sebou jsou past). Deno tlačí na kompatibilitu s webovými prohlížeči (Node taky postupuje, ale např. Fetch API má stabilní teprve od loňska). Že je Deno podvozkem pro Typescript se všemi jeho mouchami netřeba komentovat. Akorát je daní za modernitu, že Deno nebylo moc stabilní.
>>>Jestli je to jednorázový skript tak Python dává smysl, než to psát v něčem kompilovaném
Mne sa už stáva, že napíšem niečo v Pythone ako prototyp a potom to už v ňom proste nechám. Python 3.11 má vylepšený performance, spolu s numpy a podobnými vychytávkami aj pomerne svižný. (Samozrejme, porovnávam to so staršími pythonmi). Ak mi beží program 300 milisekúnd miesto 90 milisekúnd, až tak ma to netrápi. Horšie bolo, keď kedysi podobná vec v kompilovanom jazyku bežala 10 minút a pythone hodinu,
Ano, BFU se nechce učit koncept datových typů. Proto uděláme ohýbáky které předstírají, že žádné datové typy nejsou, a pak budeme zase vymýšlet rovnáky na ohejbáky, aby se s tím dalo pracovat. Výsledkem je, že se BFU musí naučit koncept datových typů, a k tomu to jak s nimi ten JavaScript pracuje, aby pochopil, proč Nothing=="Nothing" je true, ale Nothing==="Nothing" je false, a "5"+1 je "51", ale "5"-1 je 4.
Chápu, že ortodoxního programátora Python nemusí naplňovat nadšením, ale je tu i Data Science a tam je to prostě buď Python, nebo R. A vypadá to, že tomu tak bude i nadále. A ten Python je tam nakonec vlastně taky jako lepidlo pro výpočetní knihovny napsané v C, C++ nebo dokonce třeba ve Fortranu. Namátkou třeba NumPy, SciPy, scikit-learn, StasModels, pandas, matplotlib... Plus poslední dobou AI a ML nikoli v rámci DS, ale samostatně. A ano, není to nějaké superprogramování, ale "jen" skriptování.
Ale jo, to je oblast, kde ten jazyk vznikl a kam patří. Problém je, když se všemi svými "vlastnostmi" začne zamořovat jiný sektor. V tom je třeba dobré PHPko. To se drží svého kopyta, dokonce se zlepšuje, a vyjma totálně okrajových implementací nadšenců se jinam nešíří (ač by mohlo, protože OOP má už na slušné úrovni... jen ty generiky). Ovšem třeba PHPko v jádře Linuxu, z toho by seklo o zem i Linusem:-)
Ono záleží, z jaké výšky se na programování díváte. Asi byl byl schopen přiznat třeba tvrzení, že pomocí HTML a CSS programujete, resp. říkáte vykreslovacímu jádru jak má vykreslit obsah jistou míru pravdivosti. Jen jsou to prostě z tohohle pohledu doménově specifické jazyky, nikoliv univerzální programovací jazyky. Ne v každém programovacím jazyce můžete musíte být nutně schopen zapsat algoritmus.
Je to prostě velmi vysokoúrovňový pohled odlišný od tradičního staršího pojetí. Nelze ho rovnou od boku označit za implicitně nesprávný.
3. 9. 2024, 12:40 editováno autorem komentáře
proto je asi lepší rozlišovat "computer language" a jeho podmnožinu "programming language" (kam spadají turingovsky kompletní jazyky). Třeba takto https://en.wikipedia.org/wiki/Computer_language
ZDNet to tak nedělá, no co si z toho vzít...?