ืœืžื” ื›ื“ืื™ ืœืœืžื•ื“ Go?

ืœืžื” ื›ื“ืื™ ืœืœืžื•ื“ Go?
ืžืงื•ืจ ืชืžื•ื ื”

Go ื”ื™ื ืฉืคืช ืชื›ื ื•ืช ืฆืขื™ืจื” ื™ื—ืกื™ืช ืืš ืคื•ืคื•ืœืจื™ืช. ืขืœ ื™ื“ื™ ื ืชื•ื ื™ ืกืงืจ Stack Overflow, ื”ื™ื” ื–ื” Golang ืฉืงื™ื‘ืœ ืืช ื”ืžืงื•ื ื”ืฉืœื™ืฉื™ ื‘ื“ื™ืจื•ื’ ืฉืคื•ืช ื”ืชื›ื ื•ืช ืฉื”ืžืคืชื—ื™ื ื”ื™ื• ืจื•ืฆื™ื ืœืฉืœื•ื˜ ื‘ื”ืŸ. ื‘ืžืืžืจ ื–ื” ื ื ืกื” ืœื”ื‘ื™ืŸ ืืช ื”ืกื™ื‘ื•ืช ืœืคื•ืคื•ืœืจื™ื•ืช ืฉืœ Go, ื•ื›ืŸ ื ื‘ื—ืŸ ื”ื™ื›ืŸ ืžืฉืชืžืฉื™ื ื‘ืฉืคื” ื”ื–ื• ื•ืžื“ื•ืข ื‘ื›ืœืœ ื›ื“ืื™ ืœืœืžื•ื“ ืื•ืชื”.

ืงืฆืช ื”ื™ืกื˜ื•ืจื™ื”

ืฉืคืช ื”ืชื›ื ื•ืช Go ื ื•ืฆืจื” ืขืœ ื™ื“ื™ ื’ื•ื’ืœ. ืœืžืขืฉื”, ืฉืžื• ื”ืžืœื Golang ื”ื•ื ื ื’ื–ืจืช ืฉืœ "ืฉืคืช ื’ื•ื’ืœ". ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื‘ื”ื•ื“ืขื” ื ืงืจืื” ื”ืฉืคื” ืฆืขื™ืจื”, ื”ืฉื ื” ืžืœืื• ืœื” ืขืฉืจ ืฉื ื™ื.

ืžื˜ืจืชื ืฉืœ ื™ื•ืฆืจื™ Go ื”ื™ื™ืชื” ืœืคืชื— ืฉืคืช ืชื›ื ื•ืช ืคืฉื•ื˜ื” ื•ื™ืขื™ืœื” ืฉืชื•ื›ืœ ืœืฉืžืฉ ืœื™ืฆื™ืจืช ืชื•ื›ื ื” ืื™ื›ื•ืชื™ืช. ืจื•ื‘ ืคื™ื™ืง, ืื—ื“ ื”ื™ื•ืฆืจื™ื ืฉืœ Go, ืืžืจ ืฉ-Go ืชื•ื›ื ืŸ ืขื‘ื•ืจ ืžืชื›ื ืชื™ ื”ื—ื‘ืจื” ืฉื”ื ื‘ื•ื’ืจื™ื ื—ื“ืฉื™ื ื™ื—ืกื™ืช ื•ื™ื•ื“ืขื™ื Java, C, C++ ืื• Python. ืขื‘ื•ืจื, Go ื”ื™ื ืฉืคื” ืฉืชื•ื›ืœื• ืœื”ื‘ื™ืŸ ื‘ืžื”ื™ืจื•ืช ื•ืœื”ืชืจื’ืœ ืืœื™ื”.

ื‘ืชื—ื™ืœื” ื–ื” ื”ื™ื” ื›ืœื™ ื‘ืชื•ืš ื’ื•ื’ืœ, ืื‘ืœ ืขื ื”ื–ืžืŸ ื”ื•ื ื™ืฆื ืžืžืขืžืงื™ ื”ืชืื’ื™ื“ ื•ื”ืคืš ืœืฆื™ื‘ื•ืจ.

ื™ืชืจื•ื ื•ืช ื”ืฉืคื”

ืœื’ื•ืœื ื’ ื™ืฉ ืžืกืคืจ ืจื‘ ืฉืœ ื™ืชืจื•ื ื•ืช, ื’ื ื™ื“ื•ืขื™ื ื•ื’ื ืœื ื›ืœ ื›ืš ืžื•ื›ืจื™ื.

ืคึผึทืฉืึฐื˜ื•ึผืช. ืœืžืขืฉื”, ื–ื• ื”ื™ื™ืชื” ื”ืžื˜ืจื” ื”ืขื™ืงืจื™ืช ืฉืœ ื™ืฆื™ืจืช ื”ืฉืคื”, ื•ื”ื™ื ื”ื•ืฉื’ื”. ืœ-Go ื™ืฉ ืชื—ื‘ื™ืจ ืคืฉื•ื˜ ืœืžื“ื™ (ืขื ื”ื ื—ื•ืช ืžืกื•ื™ืžื•ืช) ื›ืš ืฉื ื™ืชืŸ ืœืคืชื— ื™ื™ืฉื•ืžื™ื ืžื”ืจ ื™ื•ืชืจ ืžืฉืคื•ืช ืื—ืจื•ืช. ื•ื™ืฉ ื›ืืŸ ืฉืชื™ ื ืงื•ื“ื•ืช ืžืขื ื™ื™ื ื•ืช.

ืจืืฉื™ืช, ื’ื•ืœืื ื’ ื™ื›ื•ืœ ืœื”ื™ืœืžื“ ื“ื™ ืžื”ืจ ืขืœ ื™ื“ื™ ืžืชื—ื™ืœ ืœื’ืžืจื™ ื‘ืชื›ื ื•ืช - ืžื™ืฉื”ื• ืฉืœื ื™ื•ื“ืข ืฉื•ื ืฉืคื” ื‘ื›ืœืœ ื•ืจืง ืžืชื›ื ืŸ ืœื”ื™ื•ืช ืžืคืชื—. ืืคืฉืจ ืœื•ืžืจ ืขืœ Go ืฉื”ื•ื ืœื ืžืกื•ื‘ืš ื›ืžืขื˜ (ื‘ืื•ืคืŸ ื™ื—ืกื™), ื›ืžื• PHP ืื• ืืคื™ืœื• ืคืกืงืœ, ืื‘ืœ ื—ื–ืง ื›ืžื• C++.

ืฉื ื™ืช, ืืคืฉืจ ืœืฉืœื•ื˜ ื‘-Go ืขืœ ื™ื“ื™ "ืžืชื›ื ืช ืฉื›ื‘ืจ ื ื•ืฆืจ", ื›ื–ื” ืฉื›ื‘ืจ ื™ื•ื“ืข ืฉืคื” ืื—ืช ืื• ื™ื•ืชืจ. ืœืจื•ื‘, ืžืคืชื—ื™ื ืœื•ืžื“ื™ื Go ืœืื—ืจ ืฉืœื™ื˜ื” ื‘- Python ืื• PHP. ื™ืชืจ ืขืœ ื›ืŸ, ืžืชื›ื ืชื™ื ืžืกื•ื™ืžื™ื ืžืฉืชืžืฉื™ื ื‘ื”ืฆืœื—ื” ื‘ืฆืžื“ Python/Go ืื• PHP/Go.

ืžืกืคืจ ืจื‘ ืฉืœ ืกืคืจื™ื•ืช. ืื ื—ืกืจื” ืœืš ืชื›ื•ื ื” ื‘-Go, ืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืื—ืช ืžื”ืกืคืจื™ื•ืช ื”ืจื‘ื•ืช ื›ื“ื™ ืœื‘ืฆืข ืืช ื”ืขื‘ื•ื“ื”. ืœ-Go ื™ืฉ ื™ืชืจื•ืŸ ื ื•ืกืฃ - ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืื™ื ื˜ืจืืงืฆื™ื” ื‘ืงืœื•ืช ืขื ืกืคืจื™ื•ืช C. ื™ืฉ ืืคื™ืœื• ื“ืขื” ืฉืกืคืจื™ื•ืช Go ื”ืŸ ืขื˜ื™ืคื•ืช ืœืกืคืจื™ื•ืช C.

ื ื™ืงื™ื•ืŸ ืงื•ื“. ื”ืžื”ื“ืจ ืฉืœ Go ืžืืคืฉืจ ืœืš ืœืฉืžื•ืจ ืขืœ ื”ืงื•ื“ ืฉืœืš ื ืงื™. ืœื“ื•ื’ืžื”, ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ื ื—ืฉื‘ื™ื ืœืฉื’ื™ืืช ืงื•ืžืคื™ืœืฆื™ื”. Go ืคื•ืชืจ ืืช ืจื•ื‘ ื‘ืขื™ื•ืช ื”ืขื™ืฆื•ื‘. ื–ื” ื ืขืฉื”, ืœืžืฉืœ, ื‘ืืžืฆืขื•ืช ืชื•ื›ื ืช gofmt ื‘ืขืช ืฉืžื™ืจื” ืื• ืงื•ืžืคื™ืœืฆื™ื”. ื”ืขื™ืฆื•ื‘ ืžืชื•ืงืŸ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™. ืืชื” ื™ื›ื•ืœ ืœื’ืœื•ืช ืขื•ื“ ืขืœ ื›ืœ ื–ื” ื‘ืžื“ืจื™ืš. ืืคืงื˜ื™ื‘ื™.

ื”ืงืœื“ื” ืกื˜ื˜ื™ืช. ื™ืชืจื•ืŸ ื ื•ืกืฃ ืฉืœ Go ื”ื•ื ืฉื”ื•ื ืžืคื—ื™ืช ืืช ื”ืกื‘ื™ืจื•ืช ืฉืžืคืชื— ื™ืขืฉื” ื˜ืขื•ืช. ื›ืŸ, ื‘ื™ื•ืžื™ื™ื ื”ืจืืฉื•ื ื™ื ืžืชื›ื ืช ืฉืจื’ื™ืœ ืœื”ืงืœื“ื” ื“ื™ื ืžื™ืช ืžืชืขืฆื‘ืŸ ื›ืฉื”ื•ื ืฆืจื™ืš ืœื”ื›ืจื™ื– ืขืœ ืกื•ื’ ืขื‘ื•ืจ ื›ืœ ืžืฉืชื ื” ื•ืคื•ื ืงืฆื™ื”, ื›ืžื• ื’ื ืขื‘ื•ืจ ื›ืœ ื”ืฉืืจ. ืื‘ืœ ืื– ืžืชื‘ืจืจ ืฉื™ืฉ ื›ืืŸ ื™ืชืจื•ื ื•ืช ืžืชืžืฉื›ื™ื.

GoDoc. ื›ืœื™ ืขื–ืจ ืฉืžืคืฉื˜ ืžืื•ื“ ืืช ืชื™ืขื•ื“ ื”ืงื•ื“. ื”ื™ืชืจื•ืŸ ื”ื’ื“ื•ืœ ืฉืœ GoDoc ื”ื•ื ืฉื”ื•ื ืื™ื ื• ืžืฉืชืžืฉ ื‘ืฉืคื•ืช ื ื•ืกืคื•ืช ื›ืžื• JavaDoc, PHPDoc ืื• JSDoc. ื›ืœื™ ื”ืฉื™ืจื•ืช ืžืฉืชืžืฉ ื‘ื›ืžื•ืช ื”ืžื™ื“ืข ื”ืžืงืกื™ืžืœื™ืช ืฉื”ื™ื ืฉื•ืื‘ืช ืžื”ืงื•ื“ ื”ืžืชื•ืขื“.

ืชื—ื–ื•ืงืช ืงื•ื“. ื–ื” ืงืœ ืœืชื—ื–ื•ืงื” ื”ื•ื“ื•ืช ืœืชื—ื‘ื™ืจ ื”ืคืฉื•ื˜ ื•ื”ืชืžืฆื™ืชื™ ืฉืœื•. ื›ืœ ื–ื” ื”ื•ื ื”ืžื•ืจืฉืช ืฉืœ ื’ื•ื’ืœ. ืžื›ื™ื•ื•ืŸ ืฉืœืชืื’ื™ื“ ื™ืฉ ื›ืžื•ืช ืขืฆื•ืžื” ืฉืœ ืงื•ื“ ืœืžื•ืฆืจื™ ืชื•ื›ื ื” ืฉื•ื ื™ื, ื›ืžื• ื’ื ืขืฉืจื•ืช ืืœืคื™ ืžืคืชื—ื™ื ืฉืžืกื“ืจื™ื ื”ื›ืœ, ื ื•ืฆืจืช ื‘ืขื™ื™ืช ืชื—ื–ื•ืงื”. ื”ืงื•ื“ ืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ื‘ืŸ ืœื›ืœ ืžื™ ืฉืขื•ื‘ื“ ืขืœื™ื•, ืžืชื•ืขื“ ื”ื™ื˜ื‘ ื•ืชืžืฆื™ืชื™. ื›ืœ ื–ื” ืืคืฉืจื™ ืขื Go.

ื™ื—ื“ ืขื ื–ืืช, ืื™ืŸ ืฉื™ืขื•ืจื™ื ื‘ื’ื•ืœื ื’ (ื™ืฉ ืžื‘ื ื™ื, struct), ืื™ืŸ ืชืžื™ื›ื” ื‘ื™ืจื•ืฉื”, ืžื” ืฉืžืคืฉื˜ ืžืื•ื“ ืืช ืฉื™ื ื•ื™ ื”ืงื•ื“. ื‘ื ื•ืกืฃ ืื™ืŸ ื—ืจื™ื’ื™ื, ื”ืขืจื•ืช ื•ื›ื•'.

ืžื” ืืคืฉืจ ืœื›ืชื•ื‘ ื‘ื’ื•?

ื›ืžืขื˜ ื”ื›ืœ, ืœืžืขื˜ ื›ืžื” ื ืงื•ื“ื•ืช (ืœืžืฉืœ ืคื™ืชื•ื—ื™ื ื”ืงืฉื•ืจื™ื ืœืœืžื™ื“ืช ืžื›ื•ื ื” - Python ืขื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ืจืžื” ื ืžื•ื›ื” ื‘-C/C++ ื•-CUDA ื™ื•ืชืจ ืžืชืื™ื ื›ืืŸ).

ื›ืœ ื”ืฉืืจ ืืคืฉืจ ืœื›ืชื•ื‘, ื–ื” ื ื›ื•ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ ืื™ื ื˜ืจื ื˜. ื‘ื ื•ืกืฃ, ื›ื“ืื™ ืœ-Go ืœืคืชื— ืืคืœื™ืงืฆื™ื•ืช ื”ืŸ ืœืžืฉืชืžืฉ ื”ืงืฆื” ื•ื”ืŸ ืœืคื™ืชื•ื— ื“ืžื•ื ื™ื, ืžืžืฉืง ืžืฉืชืžืฉ, ื•ืžืชืื™ืžื” ืœื™ื™ืฉื•ืžื™ื ื•ืฉื™ืจื•ืชื™ื ื—ื•ืฆื™ ืคืœื˜ืคื•ืจืžื”.

ื‘ื™ืงื•ืฉ ืœื’ื•ืœื ื’

ืœืžื” ื›ื“ืื™ ืœืœืžื•ื“ Go?
ืขื ื”ื–ืžืŸ, ื”ืฉืคื” ื”ื•ืคื›ืช ื™ื•ืชืจ ื•ื™ื•ืชืจ ืžื‘ื•ืงืฉืช. ื‘ื ื•ืกืฃ ืœืื•ืชืŸ ื—ื‘ืจื•ืช ื”ื ื•ื›ื—ื•ืช ื‘ืชืžื•ื ื” ืœืžืขืœื”, Mail.ru Group, Avito, Ozon, Lamoda, BBC, Canonical ื•ืื—ืจื•ืช ืขื•ื‘ื“ื•ืช ืขื Golang.

"ื”ื—ืœื˜ื ื• ืœื”ืจื—ื™ื‘ ืืช ื”ืขืกืง; ื—ืฉื•ื‘ ืœื ื• ืœื‘ื ื•ืช ืคืœื˜ืคื•ืจืžื” ื˜ื›ื ื•ืœื•ื’ื™ืช ื—ื“ืฉื” ื‘ื™ืกื•ื“ื” ืฉืชื‘ื˜ื™ื— ืคื™ืชื•ื— ืžื”ื™ืจ ืฉืœ ื”ืžื•ืฆืจ. ืื ื—ื ื• ืžืกืชืžื›ื™ื ืขืœ Go ื‘ื’ืœืœ ื”ืžื”ื™ืจื•ืช ื•ื”ืืžื™ื ื•ืช ืฉืœื•, ื•ื”ื›ื™ ื—ืฉื•ื‘, ืงื”ืœ ื”ืžืชื›ื ืชื™ื ืฉืžืฉืชืžืฉื™ื ื‘ื•", ืืžืจื• ื ืฆื™ื’ื™ Ozon ื‘-2018, ืœืื—ืจ ืฉื”ื—ื‘ืจื” ื”ื—ืœื™ื˜ื” ืœืขื‘ื•ืจ ืœื’ื•ืœื ื’.

ื•ื‘ื›ืŸ, ืžื” ืœื’ื‘ื™ ื”ื›ื ืกื”? ื”ืฉื›ืจ ืฉืœ ืžืคืชื— Go ื‘ืฉื ื” ืฉืขื‘ืจื” ืขืžื“ ื‘ืžืžื•ืฆืข ืขืœ 60-140 ืืœืฃ ืจื•ื‘ืœ ืขืœ ืคื™ "ื”ืžืขื’ืœ ืฉืœื™" ื‘ื”ืฉื•ื•ืื” ืœ-2017, ื ืชื•ืŸ ื–ื” ื’ื“ืœ ื‘-8,3%. ื”ืฆืžื™ื—ื” ืฆืคื•ื™ื” ืœื”ื™ืžืฉืš ื‘-2019 ืžื›ื™ื•ื•ืŸ ืฉื—ื‘ืจื•ืช ืจื‘ื•ืช ื›ืœ ื›ืš ื–ืงื•ืงื•ืช ืœืžืคืชื—ื™ Golang.

ืžื” ื”ืœืื”?

ื”ืคื™ืชื•ื— ืฉืœ ื’ื•ืœื ื’ ื‘ื”ื—ืœื˜ ืœื ื™ื™ืคืกืง. ื”ืฆื•ืจืš ื‘ืžื•ืžื—ื™ื ื˜ื•ื‘ื™ื ืฉื™ื•ื“ืขื™ื ืืช ื”ืฉืคื” ื”ื–ื• ืจืง ื™ื’ื“ืœ, ื•ืœื›ืŸ ืœื ื™ื”ื™ื” ืงืฉื” ืœืžื•ืžื—ื” (ืžืชื—ื™ืœ ืื• ืžืงืฆื•ืขื™) ืœืžืฆื•ื ืขื‘ื•ื“ื”. ื‘ืื•ืคืŸ ืขืงืจื•ื ื™, ื”ืืžื™ืจื” ื”ื–ื• ืจืœื•ื•ื ื˜ื™ืช ื’ื ื”ื™ื•ื, ืฉื›ืŸ ืงื™ื™ื ืžื—ืกื•ืจ ืงื‘ื•ืข ื‘ืžืคืชื—ื™ื ื‘ืฉื•ืง ื”-IT.

Go ื˜ื•ื‘ ื’ื ืœืžืชื›ื ืชื™ื ืžืชื—ื™ืœื™ื ื•ื’ื ืœืžืงืฆื•ืขื ื™ื ืฉื›ื‘ืจ ื™ื•ื“ืขื™ื ืฉืคืช ืชื›ื ื•ืช ืื—ืช ืื• ื™ื•ืชืจ. ื›ืžืขื˜ ื›ืœ ืžืชื›ื ืช ื™ื›ื•ืœ ืœืœืžื•ื“ ืื•ืชื• ืื• ืœืœืžื•ื“ ืื•ืชื• ืžื—ื“ืฉ.

ื”ืžืืžืจ ื”ื•ื›ืŸ ื‘ืžืฉื•ืชืฃ ืขื ื”ืžื•ืจื” ืงื•ืจืก ื’ื•ืœื ื’ ื‘-GeekBrains ืžืืช ืกืจื’ื™ื™ ืงืจื•ื›ื™ื ื™ืŸ, ืขืœ ื›ืš ืชื•ื“ื” ืจื‘ื” ืœื•!

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”