Doporučte programovací jazyk pro Windows

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Doporučte programovací jazyk pro Windows
« Odpověď #525 kdy: 03. 04. 2020, 17:41:59 »
Třeba zmiňovaný Python - jeho historická role byla, že ukázal jak vypadá čitelnost. To "starejm" jazykům opravdu scházelo. A za sebe musím říct, že jsem rád, že se z toho poučili a vznikají věci jako Scala, Kotlin, Rust, TypeScript, Elm, Idris, Agda, ...

Nevím, jestli Python všechny tyhle jazyky inspiroval, ale ta vzájemná inspirace na poli programovacích jazyků je široká a je to super.
Tak jsem to ani nemyslel. Spíše jak říkal Evan Czaplicki, absence type enference není nemožnost, ale jen lenost návrhářů.

Typy moderních jazyků jsou úplně jiné typy než typy prastarejch jazyků jako je C.


Re:Doporučte programovací jazyk pro Windows
« Odpověď #526 kdy: 03. 04. 2020, 17:55:36 »
Viz výše. Prostě nepoužívá a nedává ani žádný smysl, aby tomu tak bylo, že? A tohle tvrdí jinak určitě inteligentní člověk. Takhle ho používají jen ti, kdo s ním neumí, ti kdo ho nechápou, ti kdo ho vnímají jako zmrzačený statický jazyk (být rybou je nahouby, vždyť každý ví, že nemá nohy a proto se nemůže hýbat), kterému něco zásadního chybí. A používají ho většinou z donucení vnějších okolností. Dokud statické typy chápeš jako něco, co ti pomáhá a chybí, místo jako věc, která tě omezuje a která ti překáží, tak nechápeš dynamický jazyk. Jeden z důvodů nepocgopení je, že se statickým typům přisuzují vlastnosti, které jim nepřísluší, viz můj odkaz na staticky typovaný jazyk C. Místo k zamyšlení vedl k nadávkám, protože lidé se svého myšlení vzdávají neradi, je to dost nákladné.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.

Jo, to by me taky zajimalo.
Zvlast kdyz se podivam na nove univerzalni jazyky s potencialem budouciho rozvoje, napr. go, switft, rust, kotlin. Staticky typovane sakumprask vsecko.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Doporučte programovací jazyk pro Windows
« Odpověď #527 kdy: 03. 04. 2020, 17:56:50 »
Viz výše. Prostě nepoužívá a nedává ani žádný smysl, aby tomu tak bylo, že? A tohle tvrdí jinak určitě inteligentní člověk. Takhle ho používají jen ti, kdo s ním neumí, ti kdo ho nechápou, ti kdo ho vnímají jako zmrzačený statický jazyk (být rybou je nahouby, vždyť každý ví, že nemá nohy a proto se nemůže hýbat), kterému něco zásadního chybí. A používají ho většinou z donucení vnějších okolností. Dokud statické typy chápeš jako něco, co ti pomáhá a chybí, místo jako věc, která tě omezuje a která ti překáží, tak nechápeš dynamický jazyk. Jeden z důvodů nepocgopení je, že se statickým typům přisuzují vlastnosti, které jim nepřísluší, viz můj odkaz na staticky typovaný jazyk C. Místo k zamyšlení vedl k nadávkám, protože lidé se svého myšlení vzdávají neradi, je to dost nákladné.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.

Jo, to by me taky zajimalo.
Zvlast kdyz se podivam na nove univerzalni jazyky s potencialem budouciho rozvoje, napr. go, switft, rust, kotlin. Staticky typovane sakumprask vsecko.
Taky se přidávám. První pokus nevyšel, tak snad druhý bude lepší.

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #528 kdy: 03. 04. 2020, 18:08:18 »
Viz výše. Prostě nepoužívá a nedává ani žádný smysl, aby tomu tak bylo, že? A tohle tvrdí jinak určitě inteligentní člověk. Takhle ho používají jen ti, kdo s ním neumí, ti kdo ho nechápou, ti kdo ho vnímají jako zmrzačený statický jazyk (být rybou je nahouby, vždyť každý ví, že nemá nohy a proto se nemůže hýbat), kterému něco zásadního chybí. A používají ho většinou z donucení vnějších okolností. Dokud statické typy chápeš jako něco, co ti pomáhá a chybí, místo jako věc, která tě omezuje a která ti překáží, tak nechápeš dynamický jazyk. Jeden z důvodů nepocgopení je, že se statickým typům přisuzují vlastnosti, které jim nepřísluší, viz můj odkaz na staticky typovaný jazyk C. Místo k zamyšlení vedl k nadávkám, protože lidé se svého myšlení vzdávají neradi, je to dost nákladné.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.

Nemám. Imho to nejde staticky myslícímu člověku racionálně vysvětlit. Můžeš to zkoušet používat a buď přijde aha efekt a nebo nepřijde. Kdysi na to téma měl přednášku na techtalku Niclas Nilsson https://www.se-radio.net/2007/03/episode-49-dynamic-languages-for-static-minds/ ale imho ti to nepomůže, protože to není otázkou nedostatku informací, ale změny myšlení, a to může přijít jen s vlastní zkušeností. Můžeš si zkusít přečíst pár knih na téma javascript design patterns, kde jsou kodifikovány některé způsoby využití, které by tě asi jinak nenapadly, ale jsem pesimista. Tak jako polovina čechů nepochopí, že demokracie je dobrá, imho nepochopí ani polovina programátorů, že dynamické jazyky jsou dobré. Starý struktury musí vymřít a to špatný nerozujný mládí s tím už takové problém nemá.

Statické typy nejsou jenom o jejich deklaraci, ale o tom, že ti determinují, co můžeš za běhu s programem ještě dělat a co už ne. Zjednodušeně řečeno, statické jazyky rozlišují kód a data, dynamické nikoliv (byť míra implementace je různá).  V dynamickém jazyku můžeš kód používat stejně jako data. Což by ti mělo úplně měnit pohled na program a programování, má to řadu důsledků a možností, třeba javascriptové aplikaci můžeš nový kód posílat jako data a za běhu měnit její funkčnost. A ne jako nějakou nouzovou záležitost, kdy servr opravuje za běhu lokální na js založenou aplikaci, ale jako běžné chování. Staticky myslícím programátorům se z toho zvedá kufr, pro ně je to prasárna, všechno chtějí mít pevné, neměnné, prostě statické předem zkontrolované, dynamicky 'mutujíci se' program je pro ně představa z pekla. Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data, s každou stránkou se mohou načíst jiné, z pohledu uživatele se to mění za běhu aplikace, dělat změny i za běhu interpretu (zjednodušuji, vím) je už jen drobné rozšíření tohoto konceptu. Nebo třeba autonomně za běhu programu se vytvářející stovky nových tříd/datových typů na základě obsahu příchozích dat, která jsou hodně variabilní (na to aby je programátor předem otypoval všechny ručně), ale mají své časté opakující se vzory, aby stálo za to jim přiřadit vlastní datové typy.

To jenom pro představu možností. To že ty osobně nenarážíš na možnosti statických typů je proto, že myslíš staticky a nechceš proto po nich víc, než ti umožňují. Zkus ale nahradit javascript v prohlížeči nějakým statickým jazykem. Ne že by to nešlo, ale narazíš na řadu omezení a problémů, která to přinese. Ne že by to lidé nezkoušeli, kdo si pamatuje java applety? Jestli tohle ti neumožní alespoň vidět nové možnosti, které přináší dynamické jazyky, tak ti asi nic nepomůže. A pokud ano, tak chápeš nesmyslnost tvrzení, že dynamické jazyky jsou stejné jako statické, ale horší.

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #529 kdy: 03. 04. 2020, 18:22:28 »
Jo, to by me taky zajimalo.
Zvlast kdyz se podivam na nove univerzalni jazyky s potencialem budouciho rozvoje, napr. go, switft, rust, kotlin. Staticky typovane sakumprask vsecko.
Ktery z techto 'univerzalnich' jazyku ma dle tebe potencial nahradit Javascript?


Re:Doporučte programovací jazyk pro Windows
« Odpověď #530 kdy: 03. 04. 2020, 18:45:20 »
Viz výše. Prostě nepoužívá a nedává ani žádný smysl, aby tomu tak bylo, že? A tohle tvrdí jinak určitě inteligentní člověk. Takhle ho používají jen ti, kdo s ním neumí, ti kdo ho nechápou, ti kdo ho vnímají jako zmrzačený statický jazyk (být rybou je nahouby, vždyť každý ví, že nemá nohy a proto se nemůže hýbat), kterému něco zásadního chybí. A používají ho většinou z donucení vnějších okolností. Dokud statické typy chápeš jako něco, co ti pomáhá a chybí, místo jako věc, která tě omezuje a která ti překáží, tak nechápeš dynamický jazyk. Jeden z důvodů nepocgopení je, že se statickým typům přisuzují vlastnosti, které jim nepřísluší, viz můj odkaz na staticky typovaný jazyk C. Místo k zamyšlení vedl k nadávkám, protože lidé se svého myšlení vzdávají neradi, je to dost nákladné.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.

Nemám. Imho to nejde staticky myslícímu člověku racionálně vysvětlit. Můžeš to zkoušet používat a buď přijde aha efekt a nebo nepřijde. Kdysi na to téma měl přednášku na techtalku Niclas Nilsson https://www.se-radio.net/2007/03/episode-49-dynamic-languages-for-static-minds/ ale imho ti to nepomůže, protože to není otázkou nedostatku informací, ale změny myšlení, a to může přijít jen s vlastní zkušeností. Můžeš si zkusít přečíst pár knih na téma javascript design patterns, kde jsou kodifikovány některé způsoby využití, které by tě asi jinak nenapadly, ale jsem pesimista. Tak jako polovina čechů nepochopí, že demokracie je dobrá, imho nepochopí ani polovina programátorů, že dynamické jazyky jsou dobré. Starý struktury musí vymřít a to špatný nerozujný mládí s tím už takové problém nemá.

Statické typy nejsou jenom o jejich deklaraci, ale o tom, že ti determinují, co můžeš za běhu s programem ještě dělat a co už ne. Zjednodušeně řečeno, statické jazyky rozlišují kód a data, dynamické nikoliv (byť míra implementace je různá).  V dynamickém jazyku můžeš kód používat stejně jako data. Což by ti mělo úplně měnit pohled na program a programování, má to řadu důsledků a možností, třeba javascriptové aplikaci můžeš nový kód posílat jako data a za běhu měnit její funkčnost. A ne jako nějakou nouzovou záležitost, kdy servr opravuje za běhu lokální na js založenou aplikaci, ale jako běžné chování. Staticky myslícím programátorům se z toho zvedá kufr, pro ně je to prasárna, všechno chtějí mít pevné, neměnné, prostě statické předem zkontrolované, dynamicky 'mutujíci se' program je pro ně představa z pekla. Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data, s každou stránkou se mohou načíst jiné, z pohledu uživatele se to mění za běhu aplikace, dělat změny i za běhu interpretu (zjednodušuji, vím) je už jen drobné rozšíření tohoto konceptu. Nebo třeba autonomně za běhu programu se vytvářející stovky nových tříd/datových typů na základě obsahu příchozích dat, která jsou hodně variabilní (na to aby je programátor předem otypoval všechny ručně), ale mají své časté opakující se vzory, aby stálo za to jim přiřadit vlastní datové typy.

To jenom pro představu možností. To že ty osobně nenarážíš na možnosti statických typů je proto, že myslíš staticky a nechceš proto po nich víc, než ti umožňují. Zkus ale nahradit javascript v prohlížeči nějakým statickým jazykem. Ne že by to nešlo, ale narazíš na řadu omezení a problémů, která to přinese. Ne že by to lidé nezkoušeli, kdo si pamatuje java applety? Jestli tohle ti neumožní alespoň vidět nové možnosti, které přináší dynamické jazyky, tak ti asi nic nepomůže. A pokud ano, tak chápeš nesmyslnost tvrzení, že dynamické jazyky jsou stejné jako statické, ale horší.

Heh, presne neco podobneho jem cekal.
Rozhodne doporucuju precist si povidku Woodyho Allena: "Kdyby byli impresioniste dentisty", ktere popisuji tvurci muka mladeho zubare, co se pokousi vytvret neotrele a inspirativni zubni protezy a je znechucen prizemnosti pacientu, co si stezuji, ze se s tim neda kousat.

Programovani je inzenyrska cinnost, pozadovanym vysledkem je funkcni program za definovanou dobu za pomoci beznych standardu, aby mohl spoluporacovat ci praci prevzit jiny pracovnik.

Libovolne praktiky zmeny chovani programu za chodu je desiva prasecina, ktera ma realny vyznam jenom pri psani pocitacovych viru. Kdyz se divam  do mnou bezne pouzivanych knihoven z pypi.org, nikde jsem takovy hnuj nevidel.

Realita v teto oblasti je jina, je to prosta znouzectnost.
Python je skriptovaci jazyk z roku 1991, o dost starsi nez treba Java. Vznikl defacto jako lepsi bash ci perl a ostatne se takto pouziva dodnes. Kdyz pozdeji tvurci uznali za vhodne, ze do pythonu pridaji prvky OOP, sli na to jednoduchou cestou. Objekt v pythonu je zjednodusene receno shlukem pointeru na funkce, pricemz funkce s magickym nazvem _init_() se spusti pri instanciaci, kde se muze do seznamu pridavat dalsi pointery na atributy (proto se atributy objektu definuji v initu) pricemz tento atribut muze byt i jina nova funkce.
Takze je mozne v pythonu udelat objekt, ketry se za pouziti spravneho ifu v _init_() v utery instanciuje neco uplne jineho, nez ve stredu. Naprosta lahoda udrzovat takovy kod. Ostatne takto v pythonu nikdo nepise.
Tam se v realu pridavaji typehinty a dekoratory jako je @Property, aby tyhle historicke znouzectnosti pouzivat nemuseli.

Nahradit javascript pomerne uspesne umoznije Typescript s transpilaci. Angular2 na nem stoji.
Java applety nezdechly kvuli statickemu typovani, ale z prosteho duvodu, ze byly navrzene debilne, AWT grafika byla otres a byly mimo DOM.

"Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data"
No to ani omylem, JS over http je prosty deployment kanall.
Standardni JS aplikace pri pageonload nahraje komplet JS zdrojak, (obvykle optimalizovany pouze pro potreby dane aplikace) a browser to zkompiluje do bytecode. Pri page load event se casto spusti init framweorku. Pak uz se jenom volaji JS funkce a to staticky. A i ty v pripade Angular2 vznikly traspilaci Typescriptu.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #531 kdy: 03. 04. 2020, 18:48:21 »
Jo, to by me taky zajimalo.
Zvlast kdyz se podivam na nove univerzalni jazyky s potencialem budouciho rozvoje, napr. go, switft, rust, kotlin. Staticky typovane sakumprask vsecko.
Ktery z techto 'univerzalnich' jazyku ma dle tebe potencial nahradit Javascript?

V pripade realne pouzitelneho WebAssmbly vsechny. Spise ale predpokladam cestu Javascriptu jako nizkourovnoveho assembleru, ktery bude cilem transpilace z kvalitnejsich jazyku, napr. Typescript.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Doporučte programovací jazyk pro Windows
« Odpověď #532 kdy: 03. 04. 2020, 19:08:03 »
Oceňuji, že jsi napsal něco k tomu dynamickému myšlení.

Dovolím si jen pár poznámek člověka, který dobře zná oba světy.

Statické typy nejsou jenom o jejich deklaraci, ale o tom, že ti determinují, co můžeš za běhu s programem ještě dělat a co už ne. Zjednodušeně řečeno, statické jazyky rozlišují kód a data, dynamické nikoliv (byť míra implementace je různá).  V dynamickém jazyku můžeš kód používat stejně jako data. Což by ti mělo úplně měnit pohled na program a programování, má to řadu důsledků a možností, třeba javascriptové aplikaci můžeš nový kód posílat jako data a za běhu měnit její funkčnost. A ne jako nějakou nouzovou záležitost, kdy servr opravuje za běhu lokální na js založenou aplikaci, ale jako běžné chování. Staticky myslícím programátorům se z toho zvedá kufr, pro ně je to prasárna, všechno chtějí mít pevné, neměnné, prostě statické předem zkontrolované, dynamicky 'mutujíci se' program je pro ně představa z pekla. Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data, s každou stránkou se mohou načíst jiné, z pohledu uživatele se to mění za běhu aplikace, dělat změny i za běhu interpretu (zjednodušuji, vím) je už jen drobné rozšíření tohoto konceptu. Nebo třeba autonomně za běhu programu se vytvářející stovky nových tříd/datových typů na základě obsahu příchozích dat, která jsou hodně variabilní (na to aby je programátor předem otypoval všechny ručně), ale mají své časté opakující se vzory, aby stálo za to jim přiřadit vlastní datové typy.
To co popisuješ je scénář, který se běžně dělá dynamickými jazyky, o tom žádná. Ale staticky typované jazyky s tím nemají žádný principielní problém.
Staticky typované jazyky nejsou od toho, že chceš mít všechno "pevné, neměnné", ale o tom, že chceš mít všechno "předem zkontrolované". To je zásadní rozdíl. Jen a pouze čas kontroly. Opravdu. Všechny ty kouzla, která jsi tu popisoval, tak se bez problému ve statických jazycích dělají. To je možná důvod, proč stále mám problém vidět v tom to kouzlo. Nikoli má neochota, nebo neschopnost (jak mi rád podsouváš), ale to, že jsi furt netrefil ten správnej demonstrativní příklad. Je pravda, že zde může hrát roli i to, že já znám staticky typované jazyky relativně dobře.

Ne že by to lidé nezkoušeli, kdo si pamatuje java applety?
Java applety chcíply z jiného důvodu, než že byly napsaný ve staticky typovaném jazyce

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #533 kdy: 03. 04. 2020, 19:33:21 »
Oceňuji, že jsi napsal něco k tomu dynamickému myšlení.

Dovolím si jen pár poznámek člověka, který dobře zná oba světy.

Statické typy nejsou jenom o jejich deklaraci, ale o tom, že ti determinují, co můžeš za běhu s programem ještě dělat a co už ne. Zjednodušeně řečeno, statické jazyky rozlišují kód a data, dynamické nikoliv (byť míra implementace je různá).  V dynamickém jazyku můžeš kód používat stejně jako data. Což by ti mělo úplně měnit pohled na program a programování, má to řadu důsledků a možností, třeba javascriptové aplikaci můžeš nový kód posílat jako data a za běhu měnit její funkčnost. A ne jako nějakou nouzovou záležitost, kdy servr opravuje za běhu lokální na js založenou aplikaci, ale jako běžné chování. Staticky myslícím programátorům se z toho zvedá kufr, pro ně je to prasárna, všechno chtějí mít pevné, neměnné, prostě statické předem zkontrolované, dynamicky 'mutujíci se' program je pro ně představa z pekla. Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data, s každou stránkou se mohou načíst jiné, z pohledu uživatele se to mění za běhu aplikace, dělat změny i za běhu interpretu (zjednodušuji, vím) je už jen drobné rozšíření tohoto konceptu. Nebo třeba autonomně za běhu programu se vytvářející stovky nových tříd/datových typů na základě obsahu příchozích dat, která jsou hodně variabilní (na to aby je programátor předem otypoval všechny ručně), ale mají své časté opakující se vzory, aby stálo za to jim přiřadit vlastní datové typy.
To co popisuješ je scénář, který se běžně dělá dynamickými jazyky, o tom žádná. Ale staticky typované jazyky s tím nemají žádný principielní problém.
Staticky typované jazyky nejsou od toho, že chceš mít všechno "pevné, neměnné", ale o tom, že chceš mít všechno "předem zkontrolované". To je zásadní rozdíl. Jen a pouze čas kontroly. Opravdu. Všechny ty kouzla, která jsi tu popisoval, tak se bez problému ve statických jazycích dělají. To je možná důvod, proč stále mám problém vidět v tom to kouzlo. Nikoli má neochota, nebo neschopnost (jak mi rád podsouváš), ale to, že jsi furt netrefil ten správnej demonstrativní příklad. Je pravda, že zde může hrát roli i to, že já znám staticky typované jazyky relativně dobře.

Ne že by to lidé nezkoušeli, kdo si pamatuje java applety?
Java applety chcíply z jiného důvodu, než že byly napsaný ve staticky typovaném jazyce
Hlavně existuje polymorfismus zajišťující dostatečnou míru dynamičnosti při zachování bezpečnosti. A víc dynamicky prasit se dá typovými asercemi (typicky třeba v Go, které nemá generika), dokonce i v C++, kde to vypadá obzvlášť hnusně, ale účel to plní. Pro fajnšmekry pak je “protocol-oriented programming”, které je ekvivalentní typovým třídám à la Haskell (ty jsou IMHO ze statických typů nejlepší).

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #534 kdy: 03. 04. 2020, 19:41:51 »
1) Programovani je inzenyrska cinnost, pozadovanym vysledkem je funkcni program za definovanou dobu za pomoci beznych standardu, aby mohl spoluporacovat ci praci prevzit jiny pracovnik.

2) Libovolne praktiky zmeny chovani programu za chodu je desiva prasecina, ktera ma realny vyznam jenom pri psani pocitacovych viru. Kdyz se divam  do mnou bezne pouzivanych knihoven z pypi.org, nikde jsem takovy hnuj nevidel.

3) Realita v teto oblasti je jina, je to prosta znouzectnost.
Python je skriptovaci jazyk z roku 1991, o dost starsi nez treba Java. Vznikl defacto jako lepsi bash ci perl a ostatne se takto pouziva dodnes. Kdyz pozdeji tvurci uznali za vhodne, ze do pythonu pridaji prvky OOP, sli na to jednoduchou cestou. Objekt v pythonu je zjednodusene receno shlukem pointeru na funkce, pricemz funkce s magickym nazvem _init_() se spusti pri instanciaci, kde se muze do seznamu pridavat dalsi pointery na atributy (proto se atributy objektu definuji v initu) pricemz tento atribut muze byt i jina nova funkce.
Takze je mozne v pythonu udelat objekt, ketry se za pouziti spravneho ifu v _init_() v utery instanciuje neco uplne jineho, nez ve stredu. Naprosta lahoda udrzovat takovy kod. Ostatne takto v pythonu nikdo nepise.
Tam se v realu pridavaji typehinty a dekoratory jako je @Property, aby tyhle historicke znouzectnosti pouzivat nemuseli.

4) Nahradit javascript pomerne uspesne umoznije Typescript s transpilaci. Angular2 na nem stoji.
Java applety nezdechly kvuli statickemu typovani, ale z prosteho duvodu, ze byly navrzene debilne, AWT grafika byla otres a byly mimo DOM.

5) "Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data"
No to ani omylem, JS over http je prosty deployment kanall.
Standardni JS aplikace pri pageonload nahraje komplet JS zdrojak, (obvykle optimalizovany pouze pro potreby dane aplikace) a browser to zkompiluje do bytecode. Pri page load event se casto spusti init framweorku. Pak uz se jenom volaji JS funkce a to staticky. A i ty v pripade Angular2 vznikly traspilaci Typescriptu.

1) Kez by, ale je to blabol, v IT se na standardy moc nehraje, ale zrovna Javascript standardizovany je. O kterem z tech 'univerzalnich' statickych jazyku muzes rict to same?

2) Metaprogramovani z pohledu statickeho ptrogramatora je nepochybne prasecina :-). A to je ukazkovy stret realit, na kterem selhava tve 'racionalni argumenty uznavam'. Byt se ti to neustale deje pred ocima v tvem webovem prohlizeci.

3) Vznik jazyka Python je zcela bezpredmetny, stejne jako vznik Javascriptu nebo Rustu. Python je od te doby uz uplne jiny a tim ze si dovolil nezachovat zpetnou kompatibilitu a projit dvakrat redesignem se zbavil hnusne kole zateze, kterou si za sebou tahne treba Java i Javascript. Coz je sice riskantni krok, ale Pythonu vysel a vystreli ho do nebe.

5) Typescript Javascript nenahrazuje, je na nem totalne zavisly, typovy system ma navic volitelny. Je to na urovni typovych anotaci v pythonu. A vzniklo to pro potreby programatoru se statickym myslenim, kteri ke svemu zivotu potrebuji staticke typy. Javascript bezici v prohlizeci zcela bezne za behu modifikuje program, je to bezna technika, dela se to pres prototypovou dedicnost, kdy se modifikuji tridy DOMu nebo pridava dalsi funkcionalita objektum array, string atd. A cim vic jsou weby ajaxove, tim casteji se to dela za behu, reload stranky je uz webovych aplikaci zastarala technika.

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #535 kdy: 03. 04. 2020, 19:58:25 »
To co popisuješ je scénář, který se běžně dělá dynamickými jazyky, o tom žádná. Ale staticky typované jazyky s tím nemají žádný principielní problém.
Staticky typované jazyky nejsou od toho, že chceš mít všechno "pevné, neměnné", ale o tom, že chceš mít všechno "předem zkontrolované". To je zásadní rozdíl. Jen a pouze čas kontroly. Opravdu. Všechny ty kouzla, která jsi tu popisoval, tak se bez problému ve statických jazycích dělají. To je možná důvod, proč stále mám problém vidět v tom to kouzlo. Nikoli má neochota, nebo neschopnost (jak mi rád podsouváš), ale to, že jsi furt netrefil ten správnej demonstrativní příklad. Je pravda, že zde může hrát roli i to, že já znám staticky typované jazyky relativně dobře.

Ne že by to lidé nezkoušeli, kdo si pamatuje java applety?
Java applety chcíply z jiného důvodu, než že byly napsaný ve staticky typovaném jazyce

To je oxymoron, kdyz chces mit vsechno zkontrolovane v dobe kompilace, nemuzes to pak vytvaret za chodu, a naopak. Pro statickou analyzu nepotrebujes staticke typy, na to ti staci typove anotace, ktere ma python nebo truescript. Vyhoda statickych typu je jina a imho jedina, umoznuje podstatne lepsi optimalizaci na urovni strojoveho kodu. Kdyz se ty kouzla ve statickych jazycich delaji, proc nemaji plnohodnotnou funkci eval (ci jeji ekvivalent, treba pythoni compile) nebo repl? Coz je dalsi z vyuziti schopnosti prace s dynamicky vytvarenym kodem.

Imho budoucnost je v jazycich, ktere tohle vsechno volitelne pojmou a nic si nebudou vynucovat. Zaklad takoveho jazyku bude nutne dynamicky s tim, ze si programator bude moci dobrovolne rict, tady chci statickou kontrolu, tohle chci mit dynamicky, tohle chci mit objektove, tady mi staci procedury a tyhle data zpracuju funkcionalne. Python se tomu blizi i kdy ma jeste co zlepsovat. Ale treba python 4 prinese dalsi pokrok.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #536 kdy: 03. 04. 2020, 20:04:42 »
Heh, v mym textu neni ani stopy despektu vuci mladym, tam je despekt vuci hloupym.
A vez, ze z mladyho blba bude stary blb a stary blb byl mladym blbem.

Kdyz mi nekdo realne zduvodni, proc je muj nazor mylny, nemam problem to uznat.
Uvažuješ úplně špatně, protože to, že do IT přicházejí lidé, kteří mají stále nižší IQ je důvodem rozmachu IT. Kdyby Bill Gates a Jobs nestrčili počítač do ruky každému blbcovi (když použiji tvůj arogantní slovník), tak by se IT nerozvíjelo tak dynamicky.

Nejsme schopni zajistit, aby se rodilo větší procento dětí s vysokým IQ, abychom těmito dětmi dokázali obsadit ty statisíce nových IT pracovních pozic, které vznikají. Tvoje arogance je stejná, jako kdybys viděl 5leté dítě jak si ťuká na tablet a začal mu nadávat, že dnes na počítači dělá kdejaký blb a kdeže jsou ty časy kdy na obsluhu počítače byly potřeba 2 vysoké školy.

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #537 kdy: 03. 04. 2020, 20:28:45 »
Heh, v mym textu neni ani stopy despektu vuci mladym, tam je despekt vuci hloupym.
A vez, ze z mladyho blba bude stary blb a stary blb byl mladym blbem.

Kdyz mi nekdo realne zduvodni, proc je muj nazor mylny, nemam problem to uznat.
Uvažuješ úplně špatně, protože to, že do IT přicházejí lidé, kteří mají stále nižší IQ je důvodem rozmachu IT. Kdyby Bill Gates a Jobs nestrčili počítač do ruky každému blbcovi (když použiji tvůj arogantní slovník), tak by se IT nerozvíjelo tak dynamicky.

Nejsme schopni zajistit, aby se rodilo větší procento dětí s vysokým IQ, abychom těmito dětmi dokázali obsadit ty statisíce nových IT pracovních pozic, které vznikají. Tvoje arogance je stejná, jako kdybys viděl 5leté dítě jak si ťuká na tablet a začal mu nadávat, že dnes na počítači dělá kdejaký blb a kdeže jsou ty časy kdy na obsluhu počítače byly potřeba 2 vysoké školy.

Vy myslíte politicky, Halík!

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #538 kdy: 03. 04. 2020, 20:38:23 »
Jo, to by me taky zajimalo.
Zvlast kdyz se podivam na nove univerzalni jazyky s potencialem budouciho rozvoje, napr. go, switft, rust, kotlin. Staticky typovane sakumprask vsecko.
Ktery z techto 'univerzalnich' jazyku ma dle tebe potencial nahradit Javascript?

V pripade realne pouzitelneho WebAssmbly vsechny. Spise ale predpokladam cestu Javascriptu jako nizkourovnoveho assembleru, ktery bude cilem transpilace z kvalitnejsich jazyku, napr. Typescript.
Takze je to kdyby, ale asi zadny a pak je tedy za univerzalni jazyk oznacen typescript zavisly na javascriptu? To je mi tedy náhrada javascriptu.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #539 kdy: 03. 04. 2020, 20:39:01 »
Nemám. Imho to nejde staticky myslícímu člověku racionálně vysvětlit. Můžeš to zkoušet používat a buď přijde aha efekt a nebo nepřijde. Kdysi na to téma měl přednášku na techtalku Niclas Nilsson https://www.se-radio.net/2007/03/episode-49-dynamic-languages-for-static-minds/ ale imho ti to nepomůže, protože to není otázkou nedostatku informací, ale změny myšlení, a to může přijít jen s vlastní zkušeností. Můžeš si zkusít přečíst pár knih na téma javascript design patterns, kde jsou kodifikovány některé způsoby využití, které by tě asi jinak nenapadly, ale jsem pesimista. Tak jako polovina čechů nepochopí, že demokracie je dobrá, imho nepochopí ani polovina programátorů, že dynamické jazyky jsou dobré. Starý struktury musí vymřít a to špatný nerozujný mládí s tím už takové problém nemá.
Sorry, ale podle čeho soudíš že dynamické jazyky nepoužívám? Dělal jsem ve Smalltalku a teď nejvíc v Lue. Oba mi v porovnání se zmiňovaným Javascriptem přijdou výrazně konzistentnější.

BTW, ten podcast mluví o věcech z nichž spousta je na dynamičnosti jazyka úplně nezávislá. Bloky a uzávěry, funkce co vrací funkce, Currying, nebo continuations se vyskytují třeba v Haskellu. Což je pro mně jakýsi vzor toho jak má vypadat dobrý statický typový systém.
Citace
Statické typy nejsou jenom o jejich deklaraci, ale o tom, že ti determinují, co můžeš za běhu s programem ještě dělat a co už ne. Zjednodušeně řečeno, statické jazyky rozlišují kód a data, dynamické nikoliv (byť míra implementace je různá).  V dynamickém jazyku můžeš kód používat stejně jako data. Což by ti mělo úplně měnit pohled na program a programování, má to řadu důsledků a možností, třeba javascriptové aplikaci můžeš nový kód posílat jako data a za běhu měnit její funkčnost. A ne jako nějakou nouzovou záležitost, kdy servr opravuje za běhu lokální na js založenou aplikaci, ale jako běžné chování. Staticky myslícím programátorům se z toho zvedá kufr, pro ně je to prasárna, všechno chtějí mít pevné, neměnné, prostě statické předem zkontrolované, dynamicky 'mutujíci se' program je pro ně představa z pekla. Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data, s každou stránkou se mohou načíst jiné, z pohledu uživatele se to mění za běhu aplikace, dělat změny i za běhu interpretu (zjednodušuji, vím) je už jen drobné rozšíření tohoto konceptu. Nebo třeba autonomně za běhu programu se vytvářející stovky nových tříd/datových typů na základě obsahu příchozích dat, která jsou hodně variabilní (na to aby je programátor předem otypoval všechny ručně), ale mají své časté opakující se vzory, aby stálo za to jim přiřadit vlastní datové typy.
Opravdu mi browser servíruje dynamicky generované kusy javascriptu? Není to spíš tak, že dostávám předpřipravené kousky, které někdo odladil, otestoval, možná prohnal nějakým transpilerem, linterem a obfuskátorem? S důrazem hlavně na to testování, protože můj dojem z dynamických jazyků je, že důkladné pokrytí testy je jediný způsob, jak se z toho nezbláznit. A taky jak si být aspoň trochu jistý, že jsem vychytal aspoň překlepy.

Stejně by mi webserver mohl servírovat kousky java/.net bytekódu, nebo dokonce x86 binárky. A nebo reálněji třeba webassembly. Mimochodem i ten javascript, co dostávám, mohl vzniknout transpilací z nějakého statického jazyka. Jako příjemce by to pro mně neznamenalo žádný rozdíl.
Citace
To jenom pro představu možností. To že ty osobně nenarážíš na možnosti statických typů je proto, že myslíš staticky a nechceš proto po nich víc, než ti umožňují. Zkus ale nahradit javascript v prohlížeči nějakým statickým jazykem. Ne že by to nešlo, ale narazíš na řadu omezení a problémů, která to přinese. Ne že by to lidé nezkoušeli, kdo si pamatuje java applety? Jestli tohle ti neumožní alespoň vidět nové možnosti, které přináší dynamické jazyky, tak ti asi nic nepomůže. A pokud ano, tak chápeš nesmyslnost tvrzení, že dynamické jazyky jsou stejné jako statické, ale horší.
Jinak zbytek keců o tom že to staticky myslícímu člověku nejde vysvětlit, nebo že to buď vidím nebo mi nic nepomůže si vážně můžeš nechat. Mohl bych to jednoduše otočit stylem že dynamicky myslící člověk není schopný pobrat výhody statických jazyků. Přínos nula.