--
Gavote šį pranešimą, nes prenumeruojate „Google“ grupę „(Clojure/LT)“.
Jei norite atšaukti šios grupės prenumeratą ir iš jos nebegauti el. laiškų, praneškite apie tai adresu clojure-lt+...@googlegroups.com.
Jei norite peržiūrėti šią diskusiją žiniatinklyje, apsilankykite https://groups.google.com/d/msgid/clojure-lt/8d236b07-e437-4f40-880a-0842f0413d40%40googlegroups.com.
Daugiau parinkčių rasite apsilankę adresu https://groups.google.com/d/optout.
On 2015-10-21, at 11:08, Maksim Pečorin <mpec...@gmail.com> wrote:Aciu uz link'us!Osvaldai, jus turit production Clojure patirties. Kol negavom knygos, turiu subjektyvu klausyma (kuris reikalauja kritiskumo mylimai kalbai :) ).Tu galetum parasyti desimt siolaikines Clojure kalbos/ekosistemos silpnu vietu (kaip darbo/modeliavimo/kodingo priemones - na, kaip irankiai meistro toolbox'e turi ribas)?Toki sarasa neturi butu sunku parasyt - as pvz galeciau sudaryti 50 item'u sarasa Javai ar Scalai per 5 min :)Vertinimo kriterijai gali buti bet kokie - nuo performance'o tam tikriems uzdaviniams iki long-term support'o projektu, refactoringo lengvumo, ...
--
Gavote šį pranešimą, nes prenumeruojate „Google“ grupę „(Clojure/LT)“.
Jei norite atšaukti šios grupės prenumeratą ir iš jos nebegauti el. laiškų, praneškite apie tai adresu clojure-lt+...@googlegroups.com.
Jei norite peržiūrėti šią diskusiją žiniatinklyje, apsilankykite https://groups.google.com/d/msgid/clojure-lt/e4eb969c-4fc4-4cf1-8ecf-cb41c481399a%40googlegroups.com.
On 2015-10-21, at 12:39, Maksim Pečorin <mpec...@gmail.com> wrote:Zilvinai, thanks. Is #1 man gime kitas offtopic klausymas - tu galetum isvardinti keleta Clojure ar jos ekosistemos "abuse" tashku :D - t.y. kur naujokas linkes abuse'inti kalbos feature'us?Na kaip Scaloje - operatoriu overload'as, implicits, tam tikri trait'u feature'ai, ...
--
Gavote šį pranešimą, nes prenumeruojate „Google“ grupę „(Clojure/LT)“.
Jei norite atšaukti šios grupės prenumeratą ir iš jos nebegauti el. laiškų, praneškite apie tai adresu clojure-lt+...@googlegroups.com.
Jei norite peržiūrėti šią diskusiją žiniatinklyje, apsilankykite https://groups.google.com/d/msgid/clojure-lt/f3bf9e38-e613-498a-8947-048ad80539e4%40googlegroups.com.
1 Su Coljure galima parasyti aisku koda, kuri bus lengva skaityti, bet taip pat galima parasyti ir labai sunkiai skaitoma koda :) Nelygu kas ji raso. Todel zmonems dirbantiems prie tokio turi rupet koks yra Clojure idiomatiskas kodas, taip pat turi galvoti apie kita zmogu kuris ta koda skatys. Galima sakyti, kad tas taikoma visom kalbom, bet as manau kad tai ypac svarbu Clojure atveju. Tikrai pamenu kai esu ziurejas i 3 eilutes gal koki pusvalandi, kol supratau ka jos daro.
2 Man nepasiseke parasyti greitos funkciojs kuri pereitu per dideli masyva ir negeitintu kiekviena bita. Butent pats traversinimas buvo labai letas. Endapinau tuom, kad tiesiog pasirasiau toki metoda Javoi
3 Multimodule projekta yra sunku valdyti. Man asmenskai atrodo per daug efforto. As bandziau tik su leiningenu, nezinau kaip su mavenu. Kita karta taip tiesiog nedarysiu, viska laikysiu viska vienam modulije tol kol atsiras poreikis dali tiesiog iskelti i kita repo.
4. Kiekvienas funkcijos iškvietimas daromas per var'o lookup'ą. Tai yra kalbos dinamiškumo mechanizmas, ir vyksta labai greitai, tačiau kritinėms kodo sekcijoms gali pakišti koją. (Rich Hickey šiuo metu eksperimentuoja su feature'u, kuris galbūt leis daryti direct invocation pažymėtose funkcijose.)
5. Ne visai aišku, kada naudoti map'us, o kada defrecord'us domenui modeliuoti. Nepatinka, kad record'ai leidžia dinamiškai pridėti naujų laukų, ir netgi išimti esamus laukus - išėmus jie automagiškai tampa map'ais, kas irgi nepadeda,
6. Nėra idiomatiško būdo dokumentuoti funkcijos input'o ir output'o tipą (išskyrus destructuring'ą). Visos dinaminės kalbos turi šią problemą/feature'ą. Yra lib'ų, kurie tą sprendžia, bet tai jau ne kalbos dalis.
7. Refactoring'ą daryti sunkiau nei statinėje kalboje. Vėlgi, tai visų dinaminių kalbų problema.
8. IDE support'as ne toks geras kaip kitų kalbų. Net Groovy turi geresnį support'ą.
9. Namespace'ų deklaracija per daug sudėtinga ir (kas gali skambėti keistai) lanksti. Galėtų būti paprastesnė. I mean, load, ns, require, use, import, refer su visom jų variacijom, WTF?
10. Stack trace'ai dažnai būna tokio kriptiški, kad iš jų jokios naudos, ypač padarius kvailą klaidą kaip netinkamo tipo parametrų padavimas arba eilės tvarkos supainiojimas. Ilgainiui išmolksti nedaryti kvailų klaidų :) bet kol mokaisi, tai labai stabdo.
Jei norite peržiūrėti šią diskusiją žiniatinklyje, apsilankykite https://groups.google.com/d/msgid/clojure-lt/8056EB3F-6D3D-4E5C-99AB-AA553A2D74DD%40inventi.lt.
Guys, aciu uz nuomones(cia kaip auksas - dalykai apie kuriuos retai rasho knyguose kai technologija tik igauna pagreiti :) - gal tik blog'ose galima rasti info gauta per praktikos skausma :) )gime dar vienas klausymas - is duoto twitter link'o supratau, kad Clojure kaip kalbos vystimo procesas vyksta ne per kazkoki expertu/community board'a, o yra vieno "diktatoriaus" rankuose? :D - ar tai tiesa, kokias zinote detales, gal kokie ateites planai?
--
Gavote šį pranešimą, nes prenumeruojate „Google“ grupę „(Clojure/LT)“.
Jei norite atšaukti šios grupės prenumeratą ir iš jos nebegauti el. laiškų, praneškite apie tai adresu clojure-lt+...@googlegroups.com.
Jei norite peržiūrėti šią diskusiją žiniatinklyje, apsilankykite https://groups.google.com/d/msgid/clojure-lt/c4a61750-e12c-4b98-bf6d-664ea02385ba%40googlegroups.com.
Tai as net neabejojiau, kad toks budas yra kur galima parasyti taip kad performiintu, gaila taves tada nebuvo ;) . Tiesigo lyginant su java pvz, sitas budas nera immediate obvious. Zmogus turi tikrai gerai ismanyti clojure, kad taip padaryt kaip tavo pavizdyje.
gime dar vienas klausymas - is duoto twitter link'o supratau, kad Clojure kaip kalbos vystimo procesas vyksta ne per kazkoki expertu/community board'a, o yra vieno "diktatoriaus" rankuose? :D - ar tai tiesa, kokias zinote detales, gal kokie ateites planai?
Nauja Clojure 1.8 versija, implementuoja "direct linking" compiler'io opimizacija, kuria minejo Osvaldas kalbedamas apie tarpini var'a per kuri dinamiskai kvieciamos funkcijos. Placiau cia: https://github.com/clojure/clojure/blob/master/changes.md