Jak je vidno, spolecenska temata vyvolavaji zivejsi diskuze.
Abych nebyl spatne pochopen - tak chci rici, ze si cenim techto exkurzi do jazyku, je to dokonale udelane, rozkapitolovane, ozdrojovane, dobra prace proste.
Ale zaroven je to hodne hutne a musim rict, ze se v tom prilis neorientuju.
Proc je pixie tak zajimavy a dobry? Zaslechl jsem, ze ted dostal dokonce nejakou (financni) cenu. Proc by ho clovek mel pouzit? A nac? I kdyz jsem videl priklady na linuxjournalu, tak mi to moc nespina.
Kuprikladu Julie - na rootu jsem sice videl clanek - ale az jinde mi nejak strucne rekli, ze je to hodne podobne pythonu (to uz trochu vim o co bezi), ale s uzasnou rychlosti. Mozna to neni uplne pravda, ale aspon tomu rozumim.
Potrebuji se naucit lisp a closure?
Zdravím, díky moc ze feedback.
Možná mám trošku extrémní názor, protože si myslím, že rozhodnutí o tom, jestli je či není jazyk dobrý, si musí každý udělat sám na základě toho, jak je zvyklý programovat (OOP, funkcionálně, ...), s jakými jazyky a projekty má zkušenosti, v jakém týmu probíhá vývoj atd.
Proto schválně píšu o vlastnostech jazyka, proč vznikl, kde se asi může uplatnit, jaké má (doufejme že objektivní) výhody/nevýhody v porovnání s nějakým _porovnatelným_ jazykem (zde Pixie vs. Clojure, možná i vs. Clisp). Nebudu a ani nemůžu tvrdit,že Pixie všude nahradí BASH, to určitě ne, ovšem mě se v něm píše z mnoha důvodů lépe, protože i další projekty dost často píšu v Clojure.
Osobně si myslím, že projitím nějakého seriálu o Clojure nebo LISPu se nic nezkazí, ostatně funkcionální techniky se stále více prosazují i do mainstreamových jazyků, takže se to bude hodit :-) Navíc spousta doporučovaných postupů se klidně může použít i jinde.
Jo ještě odkaz na úvodní článek o Julii: https://www.root.cz/clanky/programovaci-jazyk-julia-dalsi-stribrna-kulka-v-it/ kde je v první kapitole +- napsáno, proč ten jazyk vznikl. Pravda je, že tam skutečně není zmíněn Python, ona se totiž Julia spíš podobá jazyku Lua.
Diky za odpoved. Vubec si netroufam hodnotit jazyky, o tom zadna. Spis ziskavam dojem - jak tady i padlo - ze bych se asi opravdu mel naucit nejaky lispovsky jazyk. Ale silu na to nemam.
Priklad s Julii - kdyz jsem to cetl, jeste jsem jeste nevedel, co je python, numpy a scipy.
Jinak - ve vzduchu stale trosku zustava, kdo a na co umi pouzit takove pixie? Kdyz chci nacist data z filu a prepocitat? Pro vyrobu nejakeho UI ? Pro ovladani nejakeho jineho hardware? Vsechno? Nic?
Zkusím to sepsat:)
1) programy, kde je plno aritmetických operací, zpracování mutable polí atd - ne
2) programy, kde se zpracovávají heterogenní data - ano
3) zpracování JSON atd. (včetně REST API callů) - ano
4) generování nějakých HTML výstupů - ano (přes https://github.com/heyLu/hiccup.pxi pokud to vyhovuje)
5) nějaká šílenější práce s XML - spíš ne (nemám zkušenost, na druhou stranu v Clojure to je vyřešené pěkně, takže je to otázka knihoven)
6) použití nativních knihoven - ano (ale u GUI pozor na callbacky, to se ještě musí dořešit)
7) web aplikace (server část) - šlo by to, ale tady by bylo lepší použít jinou technologii
8) ovládání HW zařízení přes IO, například na RPi - ano, pokud to není realtime (a pokud je, stejně tam klasický Raspbian není vhodný, ale to je na delší vyprávění :-) Btw existuje jednoduchá knihovna pro RP IO https://github.com/stuarth/wiringPixie
9) jako embedded jazyk - ??? (osobně bych volil Luu, nějak se mi nezdá mít k aplikaci cca 14 MB virtuálního stroje)
Ja to chapu jako dalsi evoluci LISPu, ktera jde praktickym smerem, narozdil od napriklad Scheme. Prakticnost je videt na tom, ze se nestazi znovuvynalezat kolo s GC, runtimem ani knihovnami (a uz vubec ne se syntaxi a semantikou), jen to proste propoji a postavi nad tim, co existuje a docela dobre funguje.
IMHO neni spatne umet aspon lispovsky jazyk, ty dalsi se douci strasne rychle, protoze zakladni pravidla jsou stejna, homoikonicita taky, makra +- taky sedi. Jen je skoda CLISPu, ten trosku zaspal, pritom ma nektere veci hodne vychytane.
Julii pouzivam, opravdu skvele mi v uplynulem roce pomohla s asi 4 pracovnimi ukoly (a nekolika hrackami), ale paralelu s Pythonem tam nevidim.
(Uz jsem si zkusil i @sync @parallel for, sice tam nejak nefungovalo rychle indexovani pres vicerozmerne pole iteratorem, ale dal jsem tam tedy trapnejsi 1D iteraci s vypoctem indexu delenim a asi ta penalta bude zanedbatelna. Zvlast, kdyz delim 2^n.)