Wpis z mikrobloga

Ostatnio bardzo spodobało mi się Go, ma wiele plusów: jest bardzo wydajny, kompilacja(tak, kompiluje się tak jak C) jest niesamowicie szybka, ma fajny, wbudowany dependency manager(+ wiele dobrze zbudowanych i przetestowanych[np. net/http - serwer HTTP który, jak słyszałem, można bez obaw używać w produkcji] bibliotek na start), obsługuje concurrency(taka wielowątkowość), ma wbudowany garbage collector(no nie wiem czy to zawsze plus), jest silnie typowany, zużywa mało pamięci, itd... Mnie się to podoba. Ktoś tutaj już określił Go mianem "C XXI wieku" - czy na pewno trafnie? :P

Czy mamy tutaj mirków którzy pracują na co dzień z Go lub po prostu mają z nim doświadczenie?
1. Jak wygląda sprawa aplikacji webowych? Jakieś porównanie wydajności i komfortu developera do np. Node'a, Pythona, PHP(( ͡° ͜ʖ ͡°))? Używacie net/http czy innych, zewnętrznych bibliotek? Zwracacie raczej tylko JSON czy zdarza wam się normalnie renderować HTMLa(jak np. w PHP)? Wolicie Go na sockecie/HTTP za Nginxem/Apachem czy jako samodzielny serwer(czyli net/http lub coś podobnego)?
2. Używacie frameworków czy wszystko piszecie od zera?
3. GUI w Go? Robiliście już coś takiego?
4. Ogólnie: co zwykle robicie w Go/nad czym pracujecie lub pracowaliście?

Przypominam, że Go zostało stworzone przez programistów Google i też tam jest używane(podobno dl.google.com i pewne komponenty YouTube'a na tym stoją).
Używają Go również: Basecamp, Bitbucket, Bitly, Booking.com, Buysellads, CloudFlare, Dailymotion, DigitalOcean, Disqus, Docker, Dropbox, eBay, Facebook, GitHub, Heroku, IBM, Imgur i wiele innych...
https://github.com/golang/go/wiki/GoUsers

#programowanie #golang #go #webdev
  • 22
@5z7k9: Z mojego malego reasearchu zwlaszcza na rynku pracy wyglada to troche jak sytuacja Scali/Groovy - czyli fajnie, ze jest, ale nikt tego nie uzywa.
I o ile przy Scali/Grails masz niska bariere do przekroczenia (tj. odpalasz na JVMie, wiec wykoryzstujesz istniejace bibliotek i srodowiska javowe) - o tyle przy Go masz do wymiany wszystko.
A to zwyczajnie za duzo kosztuje, by bylo powazne..
Chociaz wiadomo, ze ktos pewnie gdzies uzywa
@edgar_k: pytam raczej o własne doświadczenia, ale jak ktoś pracuje na pełny etat z Go to miło jeżeli się wypowie. Jednak Go jako język ma potencjał i może kiedyś wybuchnie taki uzasadniony hype na Go, jak z Node(bo oba języki są dość uniwersalne - serwery, GUI, CLI, itd.). :P Na razie jeżeli już ktoś znajdzie pracę to na pewno nie będzie przymierał głodem. :)
. Jednak Go jako język ma potencjał i może kiedyś wybuchnie taki uzasadniony hype na Go, jak z Node. :P


@5z7k9: no ma, ale to samo pisali o Scali czy Groovym ;) Jak ktos kto na codzien w tym pracuje sie wypowie to fajnie, ale boje sie, ze bedzie ciezko, sam znam paru fanow Go, ale nigdzie nie pozwlaja im uzywac w firmach, wlasnie dlatego co pisalem.
@Ginden: z tego co wiem Go natywnie nie wspiera "generyków", jak na razie bawię się tym językiem i jeszcze nie odczułem takiej potrzeby. Może doświadczony @RonPaul wypowie się na temat ujednoliconego standardu Go i idiomatyczności.
2. Używacie frameworków czy wszystko piszecie od zera?


@5z7k9: od zera, ew. czasami używam paczek od Gorilla (np. do websockets, bo biblioteka z biblioteki standardowej jest.. wadliwa)

3. GUI w Go? Robiliście już coś takiego?


@5z7k9: chodzi Ci o natywne aplikacje? słabo z tym, ale istnieją dowiązania do gtk czy qml

4. Ogólnie: co zwykle robicie w Go/nad czym pracujecie lub pracowaliście?


@5z7k9: w robocie głównie mikroserwisy odpowiadające za
@lukasz1985m: chwila, chwila, może źle się wyraziłem. ":=" nie służy do castowania, ale definiowania zmiennej narzucając jej typ z wyniku wyrażenia po prawej stronie... Np. jeżeli foo() zwraca jakiś int, to zamiast pisać var number int = foo() możesz użyć number := foo(). Gdzie tu widzisz problem? Jeżeli nie chcesz to nie musisz tego używać.

@RonPaul: jakie macie maszyny w produkcji, a raczej ile Go wyciąga na nich req/s?
jakie macie maszyny w produkcji, a raczej ile Go wyciąga na nich req/s? Jak ze zużyciem pamięci? Memory leaki?


@5z7k9: nasz produkt jest używany jako narzędzie wewnętrzne dla firm, więc nie liczymy tego w requestach, a raczej w terabajtach przetworzonych danych w tle. Maszyny różnie, największy klient jaki mamy to farma ok 160 CPUs i w #!$%@?ę RAMu ( ͡° ͜ʖ ͡°) Go skaluje się doskonale.