1

Тема: Мова програмування GO

Як вважаєте, які перспективи мови програмування GO?

Подякували: leofun011

2

Re: Мова програмування GO

Почув про цю мову десь 3 роки назад. Думав щось перспективне і Google буде просувати її. Але пройшов час і нічого нового в принципі. Пам'ятаю тоді ще не було навіть компілятора під Windows, зараз з'явився. Якщо Google ніяк не буде її просувати, то мова безперспективна. Android - C++, Java. Інші сервіси - C++, java, python. Якщо нічого не зміниться, то просто скоро про неї всі забудуть.

3

Re: Мова програмування GO

Replace написав:

Почув про цю мову десь 3 роки назад. Думав щось перспективне і Google буде просувати її. Але пройшов час і нічого нового в принципі. Пам'ятаю тоді ще не було навіть компілятора під Windows, зараз з'явився. Якщо Google ніяк не буде її просувати, то мова безперспективна. Android - C++, Java. Інші сервіси - C++, java, python. Якщо нічого не зміниться, то просто скоро про неї всі забудуть.

Схоже Google займається розвитком, а з рекламою не поспішає:

golang-github-abbot-go-http-auth-devel.noarch : Basic and Digest HTTP Authentication for golang http
golang-github-coreos-go-etcd-devel.noarch : A golang library for logging to systemd
golang-github-coreos-go-log-devel.noarch : A golang library for logging to systemd
golang-github-cpuguy83-go-md2man-devel.noarch : A golang registry for global request variables
golang-github-ghodss-yaml-devel.noarch : A better way to marshal and unmarshal YAML in Golang
golang-github-gorilla-context-devel.noarch : A golang registry for global request variables
golang-github-gorilla-mux-devel.noarch : A powerful URL router and dispatcher for golang
golang-github-influxdb-influxdb-client.noarch : Golang client libs for influxdb
golang-github-influxdb-influxdb-datastore.noarch : Golang datastore libs for influxdb
golang-github-influxdb-influxdb-devel.noarch : Golang client libs for influxdb
golang-github-jonboulle-clockwork-devel.noarch : A fake clock for golang
golang-github-matttproud-golang_protobuf_extensions-devel.noarch : Support for streaming Protocol Buffer messages for the Go
                                                                 : language (golang)
golang-github-mitchellh-goamz-devel.noarch : A golang library for logging to systemd
golang-github-onsi-ginkgo-devel.noarch : A Golang BDD Testing Framework
golang-github-tchap-go-patricia-devel.noarch : A golang registry for global request variables
golang-github-vaughan0-go-ini-devel.noarch : INI parsing library for Go (golang)
golang-golangorg-net-devel.noarch : Supplementary Go networking libraries for golang.org/x/ imports
golang-golangorg-text-devel.noarch : Supplementary Go text libraries for golang.org/x/ imports
golang-googlecode-gcfg-devel.noarch : A golang library for logging to systemd
golang-googlecode-gogoprotobuf.x86_64 : A fork of goprotobuf with several extra features
golang-googlecode-goprotobuf.x86_64 : Go support for Google protocol buffers
golang-pkg-bin-linux-amd64.x86_64 : Golang compiler tool for linux amd64
golang-pkg-darwin-386.noarch : Golang compiler toolchain to compile for darwin 386
golang-pkg-darwin-amd64.noarch : Golang compiler toolchain to compile for darwin amd64
golang-pkg-freebsd-386.noarch : Golang compiler toolchain to compile for freebsd 386
golang-pkg-freebsd-amd64.noarch : Golang compiler toolchain to compile for freebsd amd64
golang-pkg-freebsd-arm.noarch : Golang compiler toolchain to compile for freebsd arm
golang-pkg-linux-386.noarch : Golang compiler toolchain to compile for linux 386
golang-pkg-linux-amd64.noarch : Golang compiler toolchain to compile for linux amd64
golang-pkg-linux-arm.noarch : Golang compiler toolchain to compile for linux arm
golang-pkg-netbsd-386.noarch : Golang compiler toolchain to compile for netbsd 386
golang-pkg-netbsd-amd64.noarch : Golang compiler toolchain to compile for netbsd amd64
golang-pkg-netbsd-arm.noarch : Golang compiler toolchain to compile for netbsd arm
golang-pkg-openbsd-386.noarch : Golang compiler toolchain to compile for openbsd 386
golang-pkg-openbsd-amd64.noarch : Golang compiler toolchain to compile for openbsd amd64
golang-pkg-plan9-386.noarch : Golang compiler toolchain to compile for plan9 386
golang-pkg-plan9-amd64.noarch : Golang compiler toolchain to compile for plan9 amd64
golang-pkg-windows-386.noarch : Golang compiler toolchain to compile for windows 386
golang-pkg-windows-amd64.noarch : Golang compiler toolchain to compile for windows amd64
golang-src.noarch : Golang compiler source tree
docker-io-devel.x86_64 : A golang registry for global request variables (source libraries)
docker-io-pkg-devel.x86_64 : A golang registry for global request variables (source libraries)
emacs-golang.noarch : Emacs add-on package for Go
etcd-devel.i686 : etcd golang devel libraries
etcd-devel.x86_64 : etcd golang devel libraries
go-bindata.x86_64 : A small utility which generates Go code from any file
golang.x86_64 : The Go Programming Language
golang-bitbucket-kardianos-osext-devel.noarch : Supplementary Go networking libraries
golang-bitbucket-ww-goautoneg-devel.noarch : HTTP Content-Type Autonegotiation
golang-cover.x86_64 : Code coverage tool for the Go programming language
golang-github-BurntSushi-toml.x86_64 : TOML parser and encoder for Go with reflection
golang-github-BurntSushi-toml-devel.noarch : TOML parser and encoder for Go with reflection
golang-github-SeanDolphin-bqschema-devel.noarch : Package for creating Google Big Query from Go structs
golang-github-Sirupsen-logrus-devel.noarch : Structured logger for Go
golang-github-beorn7-perks-devel.noarch : Effective Computation of Things
golang-github-bmizerany-assert-devel.noarch : Assertions for Go tests
golang-github-bmizerany-pat-devel.noarch : A Sinatra style pattern muxer for Go's net/http library
golang-github-bmizerany-perks-devel.noarch : Effective Computation of Things
golang-github-codegangsta-cli-devel.noarch : Package for building command line apps in Go
golang-github-coreos-go-systemd-devel.noarch : Go bindings to systemd socket activation, journal and D-BUS APIs
golang-github-cpuguy83-go-md2man.x86_64 : Process markdown into manpages
golang-github-davecgh-go-spew-devel.noarch : Implements a deep pretty printer for Go data structures to aid in debugging
golang-github-dgnorton-goback-devel.noarch : A simple non-database related transaction library
golang-github-docker-libcontainer.x86_64 : Configuration options for containers
golang-github-docker-libcontainer-devel.x86_64 : Configuration options for containers
golang-github-docker-libtrust-devel.noarch : Library for managing authentication and authorization
golang-github-docker-spdystream-devel.noarch : A multiplexed stream library using spdy
golang-github-docopt-docopt-go-devel.noarch : Command-line interface description language in Go
golang-github-elazarl-go-bindata-assetfs-devel.noarch : Serve embedded files from jteeuwen/go-bindata
golang-github-emicklei-go-restful-devel.noarch : Package for building REST-style Web Services using Google Go
golang-github-evanphx-json-patch-devel.noarch : A Go library to apply RFC6902 patches to JSON documents
golang-github-fsouza-go-dockerclient-devel.noarch : Client for the Docker remote API
golang-github-fsouza-go-dockerclient-devel.x86_64 : Client for the Docker remote API
golang-github-glacjay-goini-devel.noarch : INI file parser in go
golang-github-godbus-dbus-devel.noarch : Go client bindings for D-Bus
golang-github-gogo-protobuf-devel.i686 : A fork of goprotobuf with several extra features
golang-github-gogo-protobuf-devel.x86_64 : A fork of goprotobuf with several extra features
golang-github-golang-appengine-devel.noarch : Go App Engine for Managed VMs
golang-github-golang-glog-devel.noarch : Enables Go programs to comfortably encode and decode YAML values
golang-github-google-gofuzz-devel.noarch : Library for populating go objects with random values
golang-github-goraft-raft-devel.noarch : A Go implementation of the Raft distributed consensus protocol
golang-github-gorilla-websocket-devel.noarch : A WebSocket implementation for Go
golang-github-imdario-mergo-devel.noarch : Merging Go structs and maps
golang-github-influxdb-go-cache-devel.noarch : An in-memory key:value store/cache library for Go
golang-github-influxdb-gomdb-devel.noarch : Go wrapper for LMDB
golang-github-influxdb-hyperleveldb-go-devel.noarch : Go wrapper for HyperLevelDB
golang-github-influxdb-rocksdb-devel.noarch : Go wrapper for RocksDB
golang-github-jmhodges-levigo-devel.noarch : Go wrapper for LevelDB
golang-github-kdar-factorlog-devel.noarch : Fast logging infrastructure for Go
golang-github-kimor79-gollectd-devel.noarch : A go parser for the collectd binary protocol
golang-github-kr-pretty-devel.noarch : Provides pretty-printing for go values
golang-github-kr-pty-devel.noarch : PTY interface for Go
golang-github-kr-text-devel.noarch : Go package for manipulating paragraphs of text
golang-github-kraman-libcontainer-devel.noarch : Reference implementation for containers
golang-github-miekg-dns-devel.noarch : DNS library in Go
golang-github-mitchellh-mapstructure-devel.noarch : Go library for decoding generic map values into native Go structures
golang-github-mreiferson-go-httpclient-devel.noarch : A Go HTTP client library
golang-github-onsi-gomega-devel.noarch : Ginkgo's Preferred Matcher Library
golang-github-openshift-go-json-rest-devel.noarch : A quick and easy way to setup a RESTFUL JSON API
golang-github-openshift-go-systemd-devel.noarch : Go bindings to systemd D-BUS APIs
golang-github-prometheus-client_golang-devel.noarch : Prometheus instrumentation library for Go applications
golang-github-prometheus-client_model-devel.noarch : Data model artifacts for Prometheus
golang-github-prometheus-procfs-devel.noarch : Functions to retrieve system, kernel and process metrics from the /proc fs
golang-github-prometheus-prometheus-devel.noarch : The Prometheus monitoring system and time series database
golang-github-racker-perigee-devel.noarch : REST client optimized for use with APIs for request and response bodies
golang-github-rackspace-gophercloud-devel.noarch : The Go SDK for Openstack http://gophercloud.io
golang-github-rakyll-globalconf-devel.noarch : Effortlessly persist and read flag values from an ini config file
golang-github-rakyll-statik-devel.noarch : Embed static files into a Go executable
golang-github-rcrowley-go-metrics-devel.noarch : Go port of Coda Hales Metrics library
golang-github-russross-blackfriday-devel.noarch : Markdown processor implemented in Go
golang-github-shurcooL-sanitized_anchor_name-devel.noarch : Package sanitized_anchor_name provides a func to create sanitized anchor
                                                          : names
golang-github-skratchdot-open-golang-devel.noarch : Open a file, directory, or URI using the OS's default application
golang-github-skynetservices-skydns-devel.noarch : DNS service discovery for etcd
golang-github-spf13-cobra-devel.noarch : A Commander for modern go CLI interactions
golang-github-spf13-pflag-devel.noarch : Replacement for Go's flag package
golang-github-stathat-go-devel.noarch : Go package for reporting stat counts and values to StatHat
golang-github-stretchr-objx-devel.noarch : Go package for dealing with maps, slices, JSON and other data
golang-github-stretchr-testify-devel.noarch : Tools for testifying that your code will behave as you intend
golang-github-syndtr-gocapability-devel.noarch : Source for POSIX capability for the Go programming language
golang-github-syndtr-goleveldb-devel.noarch : LevelDB key/value database in Go
golang-github-syndtr-gosnappy-devel.noarch : Implementation of the Snappy compression format for Go
golang-github-tonnerre-golang-pretty-devel.noarch : Pretty printing for Go values http://godoc.org/github.com/kr/pretty
golang-github-vishvananda-netlink-devel.noarch : Simple netlink library for go
golang-github-vishvananda-netns-devel.noarch : Simple network namespace handling for go
golang-godoc.x86_64 : Documentation tool for the Go programming language
golang-golangorg-crypto-devel.noarch : Supplementary Go cryptography libraries
golang-golangorg-exp-devel.noarch : Experimental tools and packages for Go
golang-golangorg-oauth2-devel.noarch : OAuth 2.0 for Go clients
golang-google-golang-api-devel.noarch : Go libraries for "new style" Google APIs
golang-google-golangorg-cloud-devel.noarch : Google Cloud Platform APIs related types and common functions
golang-googlecode-go-crypto-devel.noarch : Supplementary Go cryptography libraries
golang-googlecode-go-decimal-inf-devel.noarch : Package implementing "infinite-precision" decimal arithmetic
golang-googlecode-go-exp-devel.noarch : Experimental tools and packages for Go
golang-googlecode-goauth2-devel.noarch : OAuth 2.0 for Go clients
golang-googlecode-gogoprotobuf-devel.i686 : A fork of goprotobuf with several extra features
golang-googlecode-gogoprotobuf-devel.x86_64 : A fork of goprotobuf with several extra features
golang-googlecode-google-api-client-devel.noarch : Go libraries for "new style" Google APIs
golang-googlecode-google-api-go-client-devel.noarch : Go libraries for "new style" Google APIs
golang-googlecode-goprotobuf-devel.noarch : Go support for Google protocol buffers
golang-googlecode-goprotobuf-devel.i686 : Go support for Google protocol buffers
golang-googlecode-goprotobuf-devel.x86_64 : Go support for Google protocol buffers
golang-googlecode-log4go-devel.noarch : Logging package similar to log4j for the Go programming language
golang-googlecode-net-devel.noarch : Supplementary Go networking libraries for code.google.com/p/ imports
golang-googlecode-sqlite-devel.noarch : Trivial sqlite3 binding for Go
golang-googlecode-text-devel.noarch : Supplementary Go text libraries for code.google.com/p/ imports
golang-googlecode-tools-benchcmp.x86_64 : Displays performance changes between benchmarks for the Go programming language
golang-googlecode-tools-devel.noarch : Libraries of supplementary Go tools
golang-googlecode-tools-eg.x86_64 : Example-based refactoring for the Go programming language
golang-googlecode-tools-godex.x86_64 : Dump exported information for Go programming language
golang-googlecode-tools-goimports.x86_64 : Go programming language import line formatter
golang-googlecode-tools-oracle.x86_64 : Go programming language oracle
golang-googlecode-tools-present.x86_64 : Slide and Article Presentation
golang-googlecode-tools-ssadump.x86_64 : Display and interpreting SSA form of Go programs
golang-googlecode-uuid-devel.noarch : Generates and inspects UUIDs based on RFC 4122 and DCE 1.1
golang-gopkg-check-devel.noarch : Rich testing for the Go language
golang-gopkg-yaml-devel.noarch : Enables Go programs to comfortably encode and decode YAML values
golang-gopkg-yaml-devel-v2.noarch : Enables Go programs to comfortably encode and decode YAML values
golang-gotype.x86_64 : Go programming language source code analysis tool
golang-html2article.x86_64 : Tool for creating articles from HTML files
golang-launchpad-gocheck-devel.noarch : Libraries of Rich testing framework for the Go language
golang-vet.x86_64 : Go programming language code vetting tool
golang-vim.noarch : Vim plugins for Go
uwsgi-plugin-gccgo.x86_64 : uWSGI - Plugin for GoLang support

4

Re: Мова програмування GO

Чи добра ідея cgi скрипт писати на Go?

5

Re: Мова програмування GO

HetmanNet написав:

Чи добра ідея cgi скрипт писати на Go?

А в чому її перевага?

6

Re: Мова програмування GO

Chemist-i написав:

А в чому її перевага?

В сучасній архітектурі

7

Re: Мова програмування GO

Оскільки CGI-програма завантажується й запускається при кожному запиті до сервера (а не висить у пам'яті постійно), критичне значення має швидкість запуску. З цієї причини, зокрема, CGI на Java краще не робити. А як із цим у GO?

8

Re: Мова програмування GO

Один крутий кодер в блозі писав що дивиться в бік Go так як там мов добре паралелізм реалізований.

9

Re: Мова програмування GO

для  доброго  парарелiзму  треба  дивитися  в  бiк Erlang

Подякували: 221VOLT1

10

Re: Мова програмування GO

В відстійному подкасті "Радіо Те" суперхакер сказав що Go б'яка. Як там справи з Dart?

11

Re: Мова програмування GO

Ви б ще Rust згадали...

12

Re: Мова програмування GO

P.Y. написав:

Оскільки CGI-програма завантажується й запускається при кожному запиті до сервера (а не висить у пам'яті постійно), критичне значення має швидкість запуску. З цієї причини, зокрема, CGI на Java краще не робити. А як із цим у GO?

Кажуть, що так само як це в cgi-програмі написаному на С. Хоча поки того не перевіряв.

13

Re: Мова програмування GO

це кажуть бо повільно працює, там в cgi хоч на ассемблері пиши

14

Re: Мова програмування GO

Час виконання на Go не менше ніж в 15 разів менший ніж на PHP, щодо часу запуску не знаю. Зважаючи, що при достатній кількості оперативної пам'яті на linux, програма перебуватиме весь час в кеші дисків, то час запуску має бути незначний.

15

Re: Мова програмування GO

Я мав на увазі С + cgi

16

Re: Мова програмування GO

reverse2500 написав:

Я мав на увазі С + cgi

Швидкість перезапуску компенсує кеш дисків (linux), а сама програма виконується швидше, то чого повільніше?

17

Re: Мова програмування GO

C + cgi це окремий випадок, за ним ніхто не слідкує, для серйозних проектів не годиться, тому і повільно працює

18 Востаннє редагувалося P.Y. (13.04.2015 19:49:44)

Re: Мова програмування GO

А в чому секрет повільності зв'язки C+CGI (принаймні, порівняно з іншими мовами, що використовуються з CGI)? При запуску скрипта (наприклад, на perl) завантажується інтерпритатор, який обробляє даний скрипт. При запуску відкомпільованої програми на C/C++ завантажується виконуваний файл (який може важити менше, ніж інтерпритатори), всі дії транслятора вже виконано наперед...

Інша річ, писати такі програми на C менш ефективно з точки зору розробника.

19

Re: Мова програмування GO

P.Y. написав:

А в чому секрет повільності зв'язки C+CGI

для апача є скажімо параметр mod_perl і таке інше, плюс налаштування потрібні для модуля С + cgi, навіть lua хочуть прискорити в cgi, PHP & PERL догнати і перегнати. Все йде на оптимізацію, а для С мови цього ніхто не робить, ну це моє особисте imho

20 Востаннє редагувалося HetmanNet (13.04.2015 20:17:53)

Re: Мова програмування GO

reverse2500 написав:
P.Y. написав:

А в чому секрет повільності зв'язки C+CGI

для апача є скажімо параметр mod_perl і таке інше, плюс налаштування потрібні для модуля С + cgi, навіть lua хочуть прискорити в cgi, PHP & PERL догнати і перегнати. Все йде на оптимізацію, а для С мови цього ніхто не робить, ну це моє особисте imho

Нічого, що С беруть завжди як еталон швидкості виконання програми? Лише assembler швидше за нього. То що там ще оптимізувати?  *DONT_KNOW*
Швидкість запуску, то тут два варіанти: написати вже все разом (тобто єдину програму з веб-сервнером) чи пришвидшити запуск (це вирішують методом linux+купа_оперативи).