• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    BLAMIThe Go Programming Language - moderni programovaci jazyk

    Go is an open source programming environment that makes it easy to build simple, reliable, and efficient software.

    Pro vyhledavani clanku/blogu/informaci o Go v Google je potreba misto vyrazu "Go" pouzivat "Golang".

    Web:
    golang.org - ofic. www stranky projektu Go
    Go Playground - piskoviste na vyzkouseni Go
    blog.golang.org - ofic. blog projektu Go
    pkg.go.dev - vyhledavac knihoven a dokumentace
    Awesome Go - seznam oblibenych projektu, knihoven a blogu

    Literatura:
    The Way To Go: A Thorough Introduction To The Go Programming Language (Ivo Balbaert)
    Programming in Go: Creating Applications for the 21st Century (Developer's Library) (Mark Summerfield)

    Komunita:
    Slack Gophers - server pro uzivatele a skupiny okolo projektu v Go
    rozbalit záhlaví
    FOLKEN
    FOLKEN --- ---
    ISTEVE
    ISTEVE --- ---
    KING: Clanek imho problematiku diskutuje z hodne nevhodnyho uhlu, diskuze o inteligenci programatoru by rozhodne nemela bejt klicovou. Nektery veci ale rozhodne nejsou daleko od pravdy, a to ze Rob Pike furt tvrdi ze Go je opinionated language a odmita spoustu hodne popularnich zlepseni mne dost casto dost sere.
    LITTLELI
    LITTLELI --- ---
    KING: Nic. Haters gonna hate. Líbí se mi v komentářích co napsal "ndyakov".
    KING
    KING --- ---
    Co rikate na tenhle clanek?

    Why Go’s design is a disservice to intelligent programmers | Nomad Software
    http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/
    ISTEVE
    ISTEVE --- ---
    Fulfilling a Pikedream: the ups of downs of porting 50k lines of C++ to Go. | To:goto To;
    https://togototo.wordpress.com/...ling-a-pikedream-the-ups-of-downs-of-porting-50k-lines-of-c-to-go/

    """
    The tl;dr
    In business terms, the project was a success: completed ahead of schedule, performing acceptably, and less than 10k LOC long (this massive LOC reduction was of course partially due to the removal of features that were deprecated or not needed by the team behind the rewrite). In personal terms however I feel the outcome was suboptimal, in the sense that I wrote two to three times as much code as would have been needed in a language with parametric polymorphism. Some of this was due to type-safety: Go forces a tradeoff to be made between verbosity and type-safety, and I settled somewhere in the middle; it could have used less code and been less type-safe, or used more code and been more type-safe.
    """
    LITTLELI
    LITTLELI --- ---
    LITTLELI
    LITTLELI --- ---
    Go Is a Shop-built Jig - Cocoaphony
    http://robnapier.net/go-is-a-shop-built-jig
    ALMAD
    ALMAD --- ---
    WILD_A: Maj, ale je rozdil v "nejak to tam v nejaky verzi je" a "celej ekosystem jazyka a knihoven to umi a pocita s tim".
    WILD_A
    WILD_A --- ---
    WILD_A: Ja jsem tedy stackless python nikdy nepouzival, ale z toho mala co jsem cetl jsem pochopil, ze maj koncept coroutines a kanalu.
    WILD_A
    WILD_A --- ---
    KING: Jasne kanaly jsou velky plus, ale jak uz tady padlo neni to prvni jazyk, ktery to ma a koneckoncu pythonisti maj svuj stackless python ne?
    KING
    KING --- ---
    WILD_A: ano, potvrzuji a jeste bych dodal kanaly a zpracovani async do seznamu duvodu
    WILD_A
    WILD_A --- ---
    KING: Takze potvrzujes muj dojem, ze to je celkem castej jev, ja myslsim, ze za to muze GC a syntax bez nutnosti cpat vsude strednik :)
    KING
    KING --- ---
    WILD_A: ja jsem Pythonista a predtim, kdyz bylo potreba neco udelat v nizkourovnovem jazyce, muselo to byt C/C++ a tak se tomu clovek radsi vyhnul. S Go je to mnohem pristupnejsi a prijemnejsi...
    WILD_A
    WILD_A --- ---
    A vsimnul jsem si, ze na Go naskocilo dost lidi co neprichazej z C/C++ sveta, ale ze sveta Pythonu a dalsich skriptovacich jazyku. Pravdou je, ze se v tom da docela dobre skriptovat, i kdyz se to mezi tim kompiluje misto aby se to interpretovalo.
    WILD_A
    WILD_A --- ---
    Ja ted konecne zacal neco realne delat a musim rict, ze Go pojeti CSP mne dost bavi, po tunach C/C++ kodu se zamkama, barierama a pod je tohle docela uleva.
    LITTLELI
    LITTLELI --- ---
    Jeden maličko hate post o Erlangu: http://www.unlimitednovelty.com/2011/07/trouble-with-erlang-or-erlang-is-ghetto.html
    Chápat prosím spíše v kontextu Go a jeho ekosystému vs toho v Erlangu. Jen,že každý holt není spokojený se stavem unie.
    Nemám co bych lepšího postnul a přijde mi, že to tu zkomírá :)
    LITTLELI
    LITTLELI --- ---
    Jinak Go samo o sobě je asi poměrně inspirativní. V Clojure contrib balíku s objevila podpora pro kanály a obecně pro CSP-like přístup.
    Clojure/core — Clojure core.async Channels
    http://clojure.com/blog/2013/06/28/clojure-core-async-channels.html

    Důvodem pro zavedení je, pokud jsem to dobře pochopil, že většina concurrency přístupů v Clojure není portabilní například do Clojurescriptu (Clojure on javascript). Omluva, trošku tím odbočuju od hlavního tématu, ale snad by to mohlo někoho zajímat.
    LITTLELI
    LITTLELI --- ---
    *chudokrevnej
    LITTLELI
    LITTLELI --- ---
    SCOLEX: to mi nepřijde jako úplně pravdivý tvrzení. Concurrency je v Go v essenci velmi podobná Erlangu, a to je řekněme 30 let starý jazyk. Použití kanálů již bylo v distribuovaných operačních systémech, namátkou Plan9, Infernu nebo Singularity od Microsoftu. Actory jsou totiž převážně krásně v teorii, ale v praxi dost záleží na okolnostech. To je ostatně důvod proč například Rich Hickey, autor Clojure, nemá ten přístup rád. Ale pravdou je, že to je pragmatický jazyk. Například se v něm celkem spolehlivě narozdíl od Javy nebo C# lze vyhnout excesivnímu garbage collection, který sužuje většinu enterprise aplikací. Implicitní interfacy jsou fajn nápad, popravdě teď v Javě furt bojuju s tím, že vytvářím - ač nechci tzv. chudoktervnej objektovej model, prostě třídy, které drží data, ale neobsahují téměř žádný kód, nebo interfacy, které mám jenom proto, protože to je jednodušší to pak (unit) testovat.

    Ty kompilační časy jsou hezký no :) Kdo programoval někdy ve Scale musí skřípat zubama :D
    SCOLEX
    SCOLEX --- ---
    V google se s Go pocita hlavne jako s nahradou za Python - pouziva se jako systemovy jazyk.

    v Go je napsana sluzba, ktera v google serviruje downloads, treba Chrome.

    A asi bych nerekl moderni, protoze ten jazyk ignoruje poslech 30 let vyzkumu programovacich jazyku :) je to hlavne pragmaticky a prakticky jazyk s dobre vymyslenym toolchainem a resici realne problemy.
    WILD_A
    WILD_A --- ---
    Napodobne, pro mne osobne Go pokrejva tu diru mezi C a cimkoli vejs. Tj Go na drivery bych si nevybral, ale systemovej software bych v tom psal v pohode. Zadny crcani se s velkejma frameworkama apod, builduju do nativnich binarek.
    BLAMI
    BLAMI --- ---
    ROTTWEILER: nerekl bych, ze jazyk ktery ma GC se nutne nehodi na nizkourovnovy veci, obzvlast pokud je to jazyk ktery nevyzaduje instalaci zadnyho dalsiho runtime a kompiluje se do nativnich (staticky linkovanych) binarek. Nicmene chapu ze definici 'nizkourovnoveho' mame kazdy posunutu trochu jinam. Osobne vidim vyuziti Go i v tech pripadech systemoveho programovani, kde jsou interpretovane jazyky uz treba trochu prestrel (predstava ze kvuli listeneru nebo nejaky fronte instaluju javamoloch a pokazdy slozite kompiluju jar). S tim souvisi i dalsi +, ktery vidim v tom, co rikal uz tady ISTEVE, ten overhead s pouzitim .net nebo jvm je oproti Go fakt znacny, vlastne po par mesicich s Go mi pripada jako voser uz i psani Makefile...
    Kliknutím sem můžete změnit nastavení reklam