Nové a nové programovací jazyky (frameworky)

ffd

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #45 kdy: 03. 07. 2018, 23:20:22 »
Nijak. Pokud to použitý engine umí, tak se použije automaticky.

který engine to umí?
Co to je vůbec myšleno tím "engine" v kontextu téhle diskuze?

předpokládám, že implementace

Vyhral jsi soutez o nejdebilnejsi komentar :)


V lispu jsem programoval pouze na skole semestralku (pred 20 lety). Mejme notoricky znamy faktorial, je jedno zda rekurzivni nebo iteracni verzi. Ten engine (lisp interpreter) by teda musel vedet, jak tu funkci paralelizovat. Umi to dneska? Nebo jsou na to nejake knihovny?



gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #46 kdy: 03. 07. 2018, 23:32:15 »
Nijak. Pokud to použitý engine umí, tak se použije automaticky.

který engine to umí?
Co to je vůbec myšleno tím "engine" v kontextu téhle diskuze?

předpokládám, že implementace

Vyhral jsi soutez o nejdebilnejsi komentar :)


V lispu jsem programoval pouze na skole semestralku (pred 20 lety). Mejme notoricky znamy faktorial, je jedno zda rekurzivni nebo iteracni verzi. Ten engine (lisp interpreter) by teda musel vedet, jak tu funkci paralelizovat. Umi to dneska? Nebo jsou na to nejake knihovny?

Zrovna faktorial lze parlelizovat snadno, to je obyčejný reduce. Já netvrdím, že něco takového obecně lze. To tvrdil Kit.

Ferda

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #47 kdy: 04. 07. 2018, 10:01:54 »
Problém je ten, že vznikají nové programovací jazyky (syntaxe), namísto aby k těm stávajícím vznikaly prostě jen nové překladače, které by zvládly řešit totéž už s programovacím jazykem existujícím. Ani nevznikají jejich další run-time implementace.
Umím si představit např. low-level verzi Javy, kde místo bytekódu bude překládána přímo pro konkrétní CPU (to co nyní dělá JIT).
A nebo light-verze standartní knihovny, atd..
Vymýšlet nové programovací jazyky k tomu vůbec není potřeba.

Python těch překladačů a interpretů má docela dost.

Ferda

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #48 kdy: 04. 07. 2018, 10:11:09 »
Jazyky samozřejmě vznikají pro potřeby hloupých a líných programátorů. Kdyby byli chytří a pracovití, mohou psát přímo strojový kód.

SB

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #49 kdy: 04. 07. 2018, 10:31:34 »
...To je jako se Smalltalkem. Pan Kay neumel udelat (z jeho pohledu) rozumny typovy system, tak napsal Smalltalk a absenci typove kontroly vyhlasil za prednost.

...koneckonců názor může mít každý, i kdyby byl jakýkoliv.

Pak Kay (a jeho skupina) chtěl především co nejtriviálnější jazyk s co největšími schopnostmi, o několik desetiletí dříve než čtenáři Rootu přišel na to, že s typovým systémem to asi nepůjde.


Kiwi

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #50 kdy: 04. 07. 2018, 10:54:17 »
...To je jako se Smalltalkem. Pan Kay neumel udelat (z jeho pohledu) rozumny typovy system, tak napsal Smalltalk a absenci typove kontroly vyhlasil za prednost.
Jaká škoda, že tenkrát nebyl Root. Mohl se zeptat zdejších brouků pytlíků, jak na "rozumný typový systém".

Some people are completely religious about type systems and as a mathematician I love the idea of type systems, but nobody has ever come up with one that has enough scope. -- A. Kay

balki

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #51 kdy: 04. 07. 2018, 10:56:51 »
...To je jako se Smalltalkem. Pan Kay neumel udelat (z jeho pohledu) rozumny typovy system, tak napsal Smalltalk a absenci typove kontroly vyhlasil za prednost.
Jaká škoda, že tenkrát nebyl Root. Mohl se zeptat zdejších brouků pytlíků, jak na "rozumný typový systém".

Some people are completely religious about type systems and as a mathematician I love the idea of type systems, but nobody has ever come up with one that has enough scope. -- A. Kay

To by bolo uplne zbytocne, lebo okrem Root-a by musel vtedy byt aj Haskell.

Inkvizitor

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #52 kdy: 04. 07. 2018, 11:01:19 »
...To je jako se Smalltalkem. Pan Kay neumel udelat (z jeho pohledu) rozumny typovy system, tak napsal Smalltalk a absenci typove kontroly vyhlasil za prednost.

...koneckonců názor může mít každý, i kdyby byl jakýkoliv.

Pak Kay (a jeho skupina) chtěl především co nejtriviálnější jazyk s co největšími schopnostmi, o několik desetiletí dříve než čtenáři Rootu přišel na to, že s typovým systémem to asi nepůjde.

No a v cem se mnou nesouhlasis? Ja jsem nemel v umyslu pana Kaye kritizovat - jeho reseni bylo funkcni a asi dosahl toho, ceho chtel. Nechci tady delat flame na tema OOP vs FP, ale vlastne jsem rad, ze nekdo zareagoval, byt jsem Smalltalk zminil spis mimochodem.

Cele tohle tema se vsak toci kolem Lispu, delejme flame o nem. Zatim jsem se dozvedel, ze Lisp je pro chytre lidi, od jeho stvoreni nikdo zadny dalsi potrebny vyssi jazyk nevymyslel a dokonce Lisp umi sam paralelizovat program, ale zatim jeste Kit nenapsal jak.

Inkvizitor

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #53 kdy: 04. 07. 2018, 11:04:02 »
Jaká škoda, že tenkrát nebyl Root. Mohl se zeptat zdejších brouků pytlíků, jak na "rozumný typový systém".

Some people are completely religious about type systems and as a mathematician I love the idea of type systems, but nobody has ever come up with one that has enough scope. -- A. Kay

To by bolo uplne zbytocne, lebo okrem Root-a by musel vtedy byt aj Haskell.

Haskell nebyl, ale uz 7 let existovalo ML. Ale jak pisu vyse, pojdme resit Lisp. ;-)

Kiwi

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #54 kdy: 04. 07. 2018, 11:15:49 »
...To je jako se Smalltalkem. Pan Kay neumel udelat (z jeho pohledu) rozumny typovy system, tak napsal Smalltalk a absenci typove kontroly vyhlasil za prednost.
Jaká škoda, že tenkrát nebyl Root. Mohl se zeptat zdejších brouků pytlíků, jak na "rozumný typový systém".

Some people are completely religious about type systems and as a mathematician I love the idea of type systems, but nobody has ever come up with one that has enough scope. -- A. Kay

To by bolo uplne zbytocne, lebo okrem Root-a by musel vtedy byt aj Haskell.
V době vzniku toho citátu už Haskell dávno byl. Haskell? Ale jo, hezký jazyk - do doby, než mě v něm někdo bude nutit programovat.

v

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #55 kdy: 04. 07. 2018, 11:21:43 »
V době vzniku toho citátu už Haskell dávno byl.
můžete postnout nějaký text kde se vyjadřuje konkrétně k haskellu nebo podobnému jazyku? mi se to zatím najít nepovedlo

x

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #56 kdy: 04. 07. 2018, 15:31:57 »
Dobre by bylo zacit treba timto nez skakanim z jazyka na jazyk..... http://suckless.org/philosophy/

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #57 kdy: 04. 07. 2018, 15:48:21 »
Dobre by bylo zacit treba timto nez skakanim z jazyka na jazyk..... http://suckless.org/philosophy/

suckless jsou hobbysté, mohou si dovolit pracovat neefektivně.

Kit

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #58 kdy: 05. 07. 2018, 09:08:08 »
V C nebo v Javě to musíš řešit jako vícevláknovou aplikaci. Bez toho to pojede jen v jednom vláknu.

a v Lispu to řešíš jak? uveď příklad

Nijak. Pokud to použitý engine umí, tak se použije automaticky.

Automaticka paralelizace obecneho algoritmu nemuze nijak rozumne fungovat a pokud jedes na nejakem engine, ktery umi vyuzivat vice vypoctovych vlaken v nejakem specialnim kontextu, neni to zadna zasluha jazyka.

Lisp je navržen tak, aby mohl běžet paralelně. Každý node aplikace může být obsluhován jiným vláknem. Podmínkou pro správný běh paralelních aplikací je pouze používání immutable nodů.

Inkvizitor

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #59 kdy: 06. 07. 2018, 15:16:44 »
Automaticka paralelizace obecneho algoritmu nemuze nijak rozumne fungovat a pokud jedes na nejakem engine, ktery umi vyuzivat vice vypoctovych vlaken v nejakem specialnim kontextu, neni to zadna zasluha jazyka.

Lisp je navržen tak, aby mohl běžet paralelně. Každý node aplikace může být obsluhován jiným vláknem. Podmínkou pro správný běh paralelních aplikací je pouze používání immutable nodů.

A už jsme u toho. Aby se dalo něco paralelizovat, musí to být "pouze" správně napsané a pak už to jde skoro samo. No a protože Lisp je "pro chytré lidi" a umožňuje imperativně prasit až do omdlení, nedá se v něm samozřejmě zaručit vůbec nic, rozhodně se to zaručuje složitěji než u jazyků "pro blbce", jakým je třeba Haskell. Jenže je tady ještě jeden problém a to ten, že paralelizování může výpočet slušně zpomalit kvůli režii spojené například s přenosem dat nebo nevhodnou strukturou. Takže se dostáváš úplně do stejné situace jako programátoři v ostatních jazycích, totiž musíš si to ošéfovat sám, protože jinak se se zlou potážeš. Ale klidně můžeš dát (už konečně) konkrétní příklad, jak to v Lispu jde úplně samo, jak si ten "engine" sám inteligentně poradí. Klidně se nechám vyvést z omylu.