Názor k článku Nechte Go plavat, teď sviští Java od MarSik - > Ve skutecnosti hlavni vyhodou go oproti jave...

  • Článek je starý, nové názory již nelze přidávat.
  • 5. 12. 2018 14:17

    MarSik (neregistrovaný)

    > Ve skutecnosti hlavni vyhodou go oproti jave je, ze je to proste lepsi jazyk. I
    > kdyby bylo 5x pomalejsi, porad stoji za to.

    Lepší na co? Na vysokoúrovňovou logiku nebo zpracování dat totiž rozhodně ne. Ano, if a for strojově vyjádří všechno, ale vývojář z toho nepozná záměr.

    Naopak funkce jako třeba map, filter, reduce zcela jasně deklarují co se má dít, aniž by čtenáře zatěžovaly tím jak je to implementované. Obzvláště viditelné je to u paralelních variant. Případně kolekce a funkce typu getOrDefault, putIfAbsent.. vše napíšete i s pomocí ifu. Ale nebude to tak čitelné.

    A pokud se prosadí generika dle https://go.googlesource.com/proposal/+/master/design/go2draft.md tak věřte, že ty kolekce podobného typu brzy vzniknou i pro Go.

    Alternativa k NumPy v go ale asi nikdy nebude (stejně jako není v Javě). Pro tvorbu DSL se ten jazyk prostě nehodí a matematici nechtějí psát V.dot(V2).

    > V go mate moznost predavat hodnoty ...hmm...hodnotou.

    To v C++ taky :) V Pythonu jak co. V Javě jen primitiva.. ale máte final.

    > V zadnem z mainsteamovych programovacich jazyku jsem nevidel nic tak
    > elegantniho a efektivniho, jako moznost si v go vzit normalni snadno
    > testovatelnou synchronni funkci, na trech radcich ji obalit anonymni funkci a
    > spustit v jine subrutine

    await, async v Pythonu 3 [1]
    Futures a ExecutorService v Javě nejsou taky o nic horší [2]

    > Ma osobni zkusenost je, ze go mi umoznuje daleko vic se soustredit na
    > navrh projektu a neresit nesmyslne framewroky a sofistikovane navrhove
    > vzory.

    Moje je zase přesně opačná, Go importy z githubu, knihovny různé kvality a třeba neexistence explicitního seznamu chyb (throws v Javě) mě dost brzdí.

    Ty frameworky jsou v Go taky a naopak v Javě Vás nikdo EE nebo Spring používat nenutí (moje blbinky v čistém Java 8 SE + pippo [3] by mohly vyprávět).

    Chce to příště trošku větší rozhled než se pustíte do srovnávání jazyků. Každý se totiž hodí na něco malinko jiného a dá se používat různě.

    [1] https://docs.python.org/3/library/asyncio-task.html
    [2] třeba https://www.callicoder.com/java-callable-and-future-tutorial/ ale nemusí to být ani lambda, Java 8 umí method reference
    [3] http://www.pippo.ro/