• ú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
    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...
    ISTEVE
    ISTEVE --- ---
    Go je hodne koncisni jazyk a ma malej rychlej a pohodlnej runtime a je trivialni pracovat s knihovnama a...

    To co rikas je samozrejme pravda, ale zabyvas se jen runtimem (v podstate puvodni otazku transformujes na "proc ne JVM"), nezabyvas jazykem. JVM je rozhdone hodne popularni, a beha nad nim ostatne i treba zminenej Python (Jython) ci Ruby (JRuby, popr. pro .net IronRuby). Ale ja nejak nevidim duvod, proc se hnat za nejakym kompromisem nad JVM ci .NET, kdyz to co mi vyhovuje (minimalne na zmineny prototypovani) bez jakyhokoliv srani;)

    (btw: Your mileage may vary. Taky preferuju vim, anchor steam beer, a boxerky.)
    ROTTWEILER
    ROTTWEILER --- ---
    ISTEVE: Tak JVM je téměř na každém PC a existují i jiné JVM jazyky. To samé platí pro CLR.
    ISTEVE
    ISTEVE --- ---
    ROTTWEILER: Ani omylem.

    Java i C# jsou oproti Go extremne verbosivni jazyky, maj daleko vic heavyweight runtime, je daleko vetsi operace instalovat knihovny, atd.
    ROTTWEILER
    ROTTWEILER --- ---
    ISTEVE: No ale stejně dobře by ti posloužila Java nebo C#?
    ISTEVE
    ISTEVE --- ---
    ja ho s radosti pouzivam na osobni projekty na prototypovani... veci se kterejma si hraju sice pro jakykoliv prakticky pouziti chtej bejt trochu vykonny a C/C++ je lepsi match, ale nechci se srat s polovinou picovin se kterejma se v C/C++ srat musim kdyz si chci jen naimplementovat nakej paper a trochu si s tim hrat...
    ROTTWEILER
    ROTTWEILER --- ---
    Já nechápu osobně využití Go. Přijde mi, že srovnávat ho s C nebo C++ nejde, protože má GC a nehodí se tedy na nízkoúrovňový věci a srovnávat ho s Javou a C# taky nejde, protože není, tak vysokoúrovňový.
    Kliknutím sem můžete změnit nastavení reklam