Nové a nové programovací jazyky (frameworky)

uuuuuuuu

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #15 kdy: 03. 07. 2018, 04:00:19 »
Tak podle odpovedi jsem si v sobe utvrdil nazor, ze to je kvuli slabsim programatorum.
Jdu se ucit lisp.


Kiwi

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #16 kdy: 03. 07. 2018, 11:25:17 »
Tak podle odpovedi jsem si v sobe utvrdil nazor, ze to je kvuli slabsim programatorum.
Jdu se ucit lisp.
Doporučuji ale začít se Scheme - učebnice "The Little Schemer" nebo klasika "Structure and Interpretation of Computer Programs". Pokud tě to zaujme a zvykneš si na to, tak pak teprve přejít na Common Lisp (učebnice Practical Common Lisp).

balki

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #17 kdy: 03. 07. 2018, 12:28:09 »
Tak podle odpovedi jsem si v sobe utvrdil nazor, ze to je kvuli slabsim programatorum.
Jdu se ucit lisp.

Odporucam haskell. V lispe sa nedaju elegantne oddelit side effecty od funkcionalneho kodu a je dynamicky typovany.

literatura:
http://learnyouahaskell.com/chapters

https://www.amazon.com/Programming-Haskell-Graham-Hutton/dp/0521692695 ( je to aj na uloz.to ale psst! :) )

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #18 kdy: 03. 07. 2018, 12:36:52 »
můžete mi vysvětlit, v čem je Lisp o tolik lepší než moderní dynamické jazyky, na které tu každý nadává?

Inkvizitor

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #19 kdy: 03. 07. 2018, 12:43:31 »
můžete mi vysvětlit, v čem je Lisp o tolik lepší než moderní dynamické jazyky, na které tu každý nadává?

Co mi na tech "modernich jazycich" chybi, jsou makra. Jinak si myslim, ze Lisp je dobry vesmes v tom, jak je "blby". Ze na nem napriklad nelze kritizovat syntaxi, protoze zadnou nema. 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.


Karel

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #20 kdy: 03. 07. 2018, 12:48:56 »
Neni to jen kvuli hlouposti, ale treba i kvuli tomu ze spousta jazyku vznikla v dobe jednoho jadra v cpu a pustit vypocet paralelne je proste sileny. Nove jazyky se s tim umi leckdy poprat velmi elegantne a nekdy i bez zasahu programatora.

ffd

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #21 kdy: 03. 07. 2018, 12:50:52 »
můžete mi vysvětlit, v čem je Lisp o tolik lepší než moderní dynamické jazyky, na které tu každý nadává?

Prakticky v nicem, ale je provereny casem. Zkuste nasadit v praxi nejaky uplne novy jazyk. Co kdyz se prestane podporovat? Pak jste v loji a mate krasny software, ktery je odsouzen k zaniku. A nebo muzete mit stesti a trefite se.

Honza

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #22 kdy: 03. 07. 2018, 13:07:44 »
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.

balki

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #23 kdy: 03. 07. 2018, 13:18: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.

Ta low-level verzia javy sa vola C :)   Neviem, ako teraz, ale kedysi sme sa ucili najprv C-cko a potom JAVU.

Ako si matne spominam, kedysi bolo GCJ, aj sme s tym robili pokusy u jednej aplikacie, ktoru sme z JAVY potrebovali dostat do nativneho kodu (cielova platforma nemala JRE), ale moc slavne to nebolo.  Skoncilo to tak, ze sme to prepisali rucne do cisteho C-cka.

Inkvizitor

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #24 kdy: 03. 07. 2018, 13:24:40 »
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.

"Nove" programovaci jazyky ale resi to, co ty "stare" z principu neumeji. Treba rozumnou praci s "prazdnou hodnotou" (optional type) nebo osetreni chyb Either/Result. Nebo zminena makra, line vyhodnocovani. Nebo treba citelnejsi zapis cisel (1000000 vs 1_000_000). Prinaseji rozumnejsi zaruky, ze kod dela, co delat ma a nedela, co delat nema. Proste ty "stare" programovaci jazyky umeji vsechno (protoze Turing), ale programy jsou typicky nachylnejsi k chybam, nez je nutne. Je kratkozrake tvrdit, ze neni treba delat nove jazyky.

Co resis Ty, je samozrejme taky dulezite, ale to se da resit zvlast (a resi, viz gcj napriklad).

Honza

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #25 kdy: 03. 07. 2018, 13:25:16 »
Ako si matne spominam, kedysi bolo GCJ, aj sme s tym robili pokusy u jednej aplikacie, ktoru sme z JAVY potrebovali dostat do nativneho kodu (cielova platforma nemala JRE), ale moc slavne to nebolo.  Skoncilo to tak, ze sme to prepisali rucne do cisteho C-cka.
Ano, na GCJ si vzpomínám, právě něco takového mám namysli. Stejně tak by C-čko mohlo být přeloženo do bytekódu, třeba pro JVM...

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #26 kdy: 03. 07. 2018, 13:30:22 »
můžete mi vysvětlit, v čem je Lisp o tolik lepší než moderní dynamické jazyky, na které tu každý nadává?

Co mi na tech "modernich jazycich" chybi, jsou makra. Jinak si myslim, ze Lisp je dobry vesmes v tom, jak je "blby". Ze na nem napriklad nelze kritizovat syntaxi, protoze zadnou nema. 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.

Pluginy pro babel v javascriptu umožňují to stejné co makra.
« Poslední změna: 03. 07. 2018, 13:35:34 od gll »

Inkvizitor

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #27 kdy: 03. 07. 2018, 13:33:22 »
můžete mi vysvětlit, v čem je Lisp o tolik lepší než moderní dynamické jazyky, na které tu každý nadává?

Co mi na tech "modernich jazycich" chybi, jsou makra. Jinak si myslim, ze Lisp je dobry vesmes v tom, jak je "blby". Ze na nem napriklad nelze kritizovat syntaxi, protoze zadnou nema. 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.

Pluginy pro babel v javascriptu jsou něco jako makra.

A s externim makroprocesorem muzu mit makra v cemkoli. To ale neni to, co mam na mysli. A sokuje me, ze modernim dynamickym jazykem jsi myslel konkretne JavaScript.

Kiwi

Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #28 kdy: 03. 07. 2018, 13:37:54 »
můžete mi vysvětlit, v čem je Lisp o tolik lepší než moderní dynamické jazyky, na které tu každý nadává?
Asi v tom, že si z něho autoři těch "moderních" jazyků neustále něco vypůjčují - tak proč se nenaučit rovnou samotný Lisp, místo čekání, až v něm zase autoři těch moderních jazyků něco objeví a vítězoslavně implementují do toho svého výtvoru jako nějakou super new hyper cool feature.

A že je narozdíl od Haskellu dynamický a na side-effecty se jen upozorňuje jmennou konvencí? Tazatel se ptal na jazyk pro chytré lidi, ne pro ty, co potřebují, aby je překladač vodil za ručičku. Navíc Haskell je funkcionální, zatímco Lisp je multiparadigmatický - můžeš iterovat přes rekurzi, ale taky přes imperativní loop. Můžeš programovat funkcionálně, ale klidně i objektově nebo obojí najednou, chceš-li.

Pluginy pro babel v javascriptu jsou něco jako makra.
Viz výše - proč používat "něco jako makra", když můžu použít nefalšovaná lispovská makra? A srovnávat JavaScript s Lispem, to je hodně silné kafe.  :D

A s externim makroprocesorem muzu mit makra v cemkoli.
Ale ne taková, jako má Lisp. To se externím makroprocesorem fakt udělat nedá.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:nove a nove programovaci jazyky (frameworky)
« Odpověď #29 kdy: 03. 07. 2018, 13:43:33 »
A s externim makroprocesorem muzu mit makra v cemkoli. To ale neni to, co mam na mysli. A sokuje me, ze modernim dynamickym jazykem jsi myslel konkretne JavaScript.

Samotný makroprocesor neposkytuje prostředky pro manipulaci s AST, kterou většina moderních jazyků umožňuje, ale nebývá dobrý nápad to používat. Jestli chcete moderní jazyk s first class makry, tak Elixir.