Π—Π°Ρ‰ΠΎ Go Π΅ лошо Π·Π° Π½Π΅ΡƒΠΌΠ½ΠΈΡ‚Π΅ програмисти

Бтатията Π΅ написана ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° ΠΏΠΎ-Ρ€Π°Π½ΠΎ Π°Π½Ρ‚ΠΈΠΏΠΎΠ΄Π½Π° статия.

Π—Π°Ρ‰ΠΎ Go Π΅ лошо Π·Π° Π½Π΅ΡƒΠΌΠ½ΠΈΡ‚Π΅ програмисти

ΠŸΡ€Π΅Π· послСднитС Π΄Π²Π΅ ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ… Go Π·Π° внСдряванС Π½Π° спСциализиран RADIUS ΡΡŠΡ€Π²ΡŠΡ€ с Ρ€Π°Π·Π²ΠΈΡ‚Π° систСма Π·Π° таксуванС. По ΠΏΡŠΡ‚Ρ Π½Π°ΡƒΡ‡Π°Π²Π°ΠΌ Ρ‚ΡŠΠ½ΠΊΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° самия Π΅Π·ΠΈΠΊ. Π‘Π°ΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ са ΠΌΠ½ΠΎΠ³ΠΎ прости ΠΈ Π½Π΅ са Ρ†Π΅Π»Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ статия, Π½ΠΎ самото изТивяванС ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Go заслуТава няколко Π΄ΡƒΠΌΠΈ Π² своя Π·Π°Ρ‰ΠΈΡ‚Π°. Go става всС ΠΏΠΎ-масов Π΅Π·ΠΈΠΊ Π·Π° сСриозСн, ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ създадСн ΠΎΡ‚ Google, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка, чСстно ΠΊΠ°Π·Π°Π½ΠΎ смятам, Ρ‡Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½ΡŠΡ‚ Π½Π° Π΅Π·ΠΈΠΊΠ° Go Π΅ лош Π·Π° НЕинтСлигСнтнитС програмисти.

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° слаби програмисти?

Π‘Π»Π°Π±ΠΈΡ‚Π΅ говорят Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Билният Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ Π·Π° ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΌΠ΅Ρ‡Ρ‚ΠΈ...

Go Π΅ ΠΌΠ½ΠΎΠ³ΠΎ лСсСн Π·Π° Π½Π°ΡƒΡ‡Π°Π²Π°Π½Π΅, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° лСсСн, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. Π’Π°Π·ΠΈ функция Π½Π° Π΅Π·ΠΈΠΊΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΌΠ½ΠΎΠ³ΠΎ свСтовни ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠΎΠ΄ΡŠΡ‚ сС Ρ‡Π΅Ρ‚Π΅ Π·Π°Π΅Π΄Π½ΠΎ с нСосновни спСциалисти (ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ Ρ‚.Π½.). Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ Design Driven Development.
Π”ΠΎΡ€ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈΡ‚Π΅ програмисти Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ доста ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π΅Π½ ΠΊΠΎΠ΄ слСд сСдмица ΠΈΠ»ΠΈ Π΄Π²Π΅. ΠšΠ½ΠΈΠ³Π°Ρ‚Π°, ΠΏΠΎ която ΡƒΡ‡ΠΈΡ…, Π΅ β€žΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅β€œ (ΠΎΡ‚ ΠœΠ°Ρ€ΠΊ Π‘ΡŠΠΌΡŠΡ€Ρ„ΠΈΠΉΠ»Π΄). ΠšΠ½ΠΈΠ³Π°Ρ‚Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π°, засяга ΠΌΠ½ΠΎΠ³ΠΎ нюанси Π½Π° Π΅Π·ΠΈΠΊΠ°. Π‘Π»Π΅Π΄ Π½Π΅Π½ΡƒΠΆΠ½ΠΎ слоТни Π΅Π·ΠΈΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ Java, PHP, липсата Π½Π° магия Π΅ освСТаваща. Но Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ късно ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ програмисти ΠΈΠΌΠ°Ρ‚ идСята Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ стари ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π² Π½ΠΎΠ²Π° област. Π’ΠΎΠ²Π° наистина Π»ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ?

Π ΠΎΠ± Пайк (основният ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ Π½Π° Π΅Π·ΠΈΠΊΠ°) създадС Π΅Π·ΠΈΠΊΠ° Go ΠΊΠ°Ρ‚ΠΎ индустриалСн Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ лСсСн Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ създадСн Π·Π° максимална продуктивност Π² Π³ΠΎΠ»Π΅ΠΌΠΈ Π΅ΠΊΠΈΠΏΠΈ ΠΈ Π² Ρ‚ΠΎΠ²Π° няма съмнСниС. Много Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ програмисти сС ΠΎΠΏΠ»Π°ΠΊΠ²Π°Ρ‚, Ρ‡Π΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌ липсват. Π’ΠΎΠ²Π° ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π·Π° простота бСшС ΡΡŠΠ·Π½Π°Ρ‚Π΅Π»Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° ΠΈ Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ напълно Π·Π°Ρ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ мотивацията Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ…Π° Π΄Π° постигнат Π² Go.

Π’Π°ΠΊΠ° Ρ‡Π΅ Π·Π°Ρ‰ΠΎ бСшС Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° просто? Π•Ρ‚ΠΎ няколко Ρ†ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ Π ΠΎΠ± Пайк:

ΠšΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚ΡƒΠΊ Π΅, Ρ‡Π΅ Π½Π°ΡˆΠΈΡ‚Π΅ програмисти Π½Π΅ са изслСдоватСли. Π’Π΅, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, са доста ΠΌΠ»Π°Π΄ΠΈ, ΠΈΠ΄Π²Π°Ρ‚ ΠΏΡ€ΠΈ нас слСд ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ Π±ΠΈ са ΡƒΡ‡ΠΈΠ»ΠΈ Java, ΠΈΠ»ΠΈ C/C++, ΠΈΠ»ΠΈ Python. Π’Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚ страхотСн Π΅Π·ΠΈΠΊ, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ искамС Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π΄ΠΎΠ±ΡŠΡ€ софтуСр. Π•Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ Π΅Π·ΠΈΠΊΡŠΡ‚ трябва Π΄Π° бъдС лСсСн Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Π½Π°ΡƒΡ‡Π°Π²Π°Π½Π΅.

Π’ΠΎΠΉ трябва Π΄Π° Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚, Π³Ρ€ΡƒΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° C. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡΡ‚ΠΈΡ‚Π΅, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² Google, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ ΠΊΠ°Ρ€ΠΈΠ΅Ρ€Π°Ρ‚Π° си Ρ€Π°Π½ΠΎ ΠΈ са Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ, ΠΏΠΎ-спСциално сСмСйството C. Π˜Π·ΠΈΡΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π·Π° Π±ΡŠΡ€Π·Π° производитСлност Π² Π½ΠΎΠ² Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π½Π΅ трябва Π΄Π° бъдС Ρ‚Π²ΡŠΡ€Π΄Π΅ Ρ€Π°Π΄ΠΈΠΊΠ°Π»Π΅Π½.

ΠœΡŠΠ΄Ρ€ΠΈ Π΄ΡƒΠΌΠΈ, Π½Π°Π»ΠΈ?

АртСфакти Π½Π° простотата

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°Ρ‚Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ условиС Π·Π° красотата. Π›Π΅Π² Волстой.

ΠžΠΏΡ€ΠΎΡΡ‚ΡΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ във всСки Π΄ΠΈΠ·Π°ΠΉΠ½. ΠšΠ°ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ‚Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π² ΠΊΠΎΠΉΡ‚ΠΎ няма ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ, Π° Ρ‚Π°ΠΊΡŠΠ², ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ няма ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅. Много Ρ…ΠΎΡ€Π° вярват, Ρ‡Π΅ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ (ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ изразяванС) Π½Π° слоТни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ слоТСн инструмСнт. ΠžΠ±Π°Ρ‡Π΅ Π½Π΅ Π΅ Ρ‚Π°ΠΊΠ°. Π”Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Π·ΠΈΠΊΠ° PERL. Π•Π·ΠΈΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ·ΠΈ вярваха, Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡΡ‚ΡŠΡ‚ трябва Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ½Π΅ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π˜Π΄Π΅ΠΎΠ»ΠΎΠ·ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Go ΠΏΠΎΠ΅Ρ…Π° ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΏΡŠΡ‚, Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ…Π°, Ρ‡Π΅ Π΅Π΄ΠΈΠ½ Π½Π°Ρ‡ΠΈΠ½, Π½ΠΎ наистина Π΄ΠΎΠ±ΡŠΡ€, Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ Π·Π° постиганС Π½Π° Ρ†Π΅Π»Ρ‚Π°. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ° сСриозна основа: СдинствСният Π½Π°Ρ‡ΠΈΠ½ Π΅ ΠΏΠΎ-лСсСн Π·Π° Π½Π°ΡƒΡ‡Π°Π²Π°Π½Π΅ ΠΈ ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π΅Π½ Π·Π° забравянС.

Много ΠΌΠΈΠ³Ρ€Π°Π½Ρ‚ΠΈ сС ΠΎΠΏΠ»Π°ΠΊΠ²Π°Ρ‚, Ρ‡Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΅Π»Π΅Π³Π°Π½Ρ‚Π½ΠΈ абстракции. Π”Π°, Ρ‚ΠΎΠ²Π° Π΅ Ρ‚Π°ΠΊΠ°, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄Π½ΠΎ ΠΎΡ‚ основнитС прСдимства Π½Π° Π΅Π·ΠΈΠΊΠ°. Π•Π·ΠΈΠΊΡŠΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ магия - Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡Π΅Π½ΠΈ познания Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. Π©ΠΎ сС отнася Π΄ΠΎ многословността Π½Π° ΠΊΠΎΠ΄Π°, Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π•Π΄Π½Π° Π΄ΠΎΠ±Ρ€Π΅ написана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Golang Ρ‡Π΅Ρ‚Π΅ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ, с ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²Π° структура. ОсвСн Ρ‚ΠΎΠ²Π° скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΅Π΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π΅ ΠΏΠΎΠ½Π΅ с ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊ ΠΏΠΎ-голяма ΠΎΡ‚ скоростта Π½Π° Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ писанС. Ако смятатС, Ρ‡Π΅ цСлият ΠΊΠΎΠ΄ ΠΈΠΌΠ° Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ (Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° gofmt), Ρ‚ΠΎΠ³Π°Π²Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° няколко Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π΅Π΄Π° ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

НС ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅Π»Π΅Π½

Π˜Π·ΠΊΡƒΡΡ‚Π²ΠΎΡ‚ΠΎ Π½Π΅ Ρ‚ΡŠΡ€ΠΏΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ свободата ΠΌΡƒ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°. Вочността Π½Π΅ Π΅ Π½Π΅Π³ΠΎΠ²Π° отговорност.

ΠŸΠΎΡ€Π°Π΄ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° простота, Π² Go липсват конструкции, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ сС Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π½Π΅Ρ‰ΠΎ СстСствСно ΠΎΡ‚ Ρ…ΠΎΡ€Π°Ρ‚Π°, свикнали с тях. Π’ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ слСд Ρ‚ΠΎΠ²Π° забСлязватС, Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-лСсна ΠΈ ΠΏΠΎ-нСдвусмислСна Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅.

НапримСр ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, която Ρ‡Π΅Ρ‚Π΅ stdin ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° командния Ρ€Π΅Π΄, Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

package main

import (
    "bufio"
    "flag"
    "fmt"
    "log"
    "os"
)

func main() {

    flag.Parse()

    scanner := newScanner(flag.Args())

    var text string
    for scanner.Scan() {
        text += scanner.Text()
    }

    if err := scanner.Err(); err != nil {
        log.Fatal(err)
    }

    fmt.Println(text)
}

func newScanner(flags []string) *bufio.Scanner {
    if len(flags) == 0 {
        return bufio.NewScanner(os.Stdin)
    }

    file, err := os.Open(flags[0])

    if err != nil {
        log.Fatal(err)
    }

    return bufio.NewScanner(file)
}

Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² D, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Π½Π΅ Π΅ ΠΏΠΎ-лСсно Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅

import std.stdio, std.array, std.conv;

void main(string[] args)
{
    try
    {
        auto source = args.length > 1 ? File(args[1], "r") : stdin;
        auto text   = source.byLine.join.to!(string);

        writeln(text);
    }
    catch (Exception ex)
    {
        writeln(ex.msg);
    }
}

Адско ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅

Π§ΠΎΠ²Π΅ΠΊ носи Π°Π΄Π° Π² сСбС си. ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π›ΡƒΡ‚Π΅Ρ€.

НачинаСщитС постоянно сС ΠΎΠΏΠ»Π°ΠΊΠ²Π°Ρ‚ ΠΎΡ‚ Go ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° липсата Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ. Π—Π° Π΄Π° Ρ€Π΅ΡˆΠ°Ρ‚ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ тях ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄. НапримСр, функция Π·Π° сумиранС Π½Π° списък ΠΎΡ‚ Ρ†Π΅Π»ΠΈ числа, Ρ‚Π°ΠΊΠΈΠ²Π° Π±ΡŠΠ΄Π΅Ρ‰ΠΈ профСсионалисти смятат, Ρ‡Π΅ функционалността Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ освСн Ρ‡Ρ€Π΅Π· просто ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΈ поставянС Π·Π° всСки Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ.

package main

import "fmt"

func int64Sum(list []int64) (uint64) {
    var result int64 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func int32Sum(list []int32) (uint64) {
    var result int32 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func main() {

    list32 := []int32{1, 2, 3, 4, 5}
    list64 := []int64{1, 2, 3, 4, 5}

    fmt.Println(int32Sum(list32))
    fmt.Println(int64Sum(list64))
}

Π•Π·ΠΈΠΊΡŠΡ‚ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ срСдства Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° конструкции. НапримСр, ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±Ρ€Π΅.

package main

import "fmt"

func Eval32(list []int32, fn func(a, b int32)int32) int32 {
    var res int32
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int32Add(a, b int32) int32 {
    return a + b
}

func int32Sub(a, b int32) int32 {
    return a + b
}

func Eval64(list []int64, fn func(a, b int64)int64) int64 {
    var res int64
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int64Add(a, b int64) int64 {
    return a + b
}

func int64Sub(a, b int64) int64 {
    return a - b
}

func main() {

    list32 := []int32{1, 2, 3, 4, 5}
    list64 := []int64{1, 2, 3, 4, 5}

    fmt.Println(Eval32(list32, int32Add))
    fmt.Println(Eval64(list64, int64Add))
    fmt.Println(Eval64(list64, int64Sub))
}

И Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠΎΠ΄ сС ΠΎΠΊΠ°Π·Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-дълъг ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ случай, Ρ‚ΠΎΠΉ стана ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ няма Π΄Π° Π½ΠΈ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ всички Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Мнозина Ρ‰Π΅ ΠΊΠ°ΠΆΠ°Ρ‚, Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π² D ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠ° ΠΈ Ρ‰Π΅ са ΠΏΡ€Π°Π²ΠΈ.

import std.stdio;
import std.algorithm;

void main(string[] args)
{
    [1, 2, 3, 4, 5].reduce!((a, b) => a + b).writeln;
}

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠΉ Π΅ само ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΡŠΠΊ, Π½ΠΎ Π½Π΅ ΠΈ ΠΏΠΎ-ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ D рСализацията напълно ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π’ рСалния ΠΆΠΈΠ²ΠΎΡ‚, с нарастванСто Π½Π° слоТността Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π°, Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π±ΡŠΡ€Π·ΠΎ сС стСснява. ΠŸΡ€Π°Π·Π½ΠΈΠ½Π°Ρ‚Π° сС затваря ΠΎΡ‰Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ трябва Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ дСйствиС, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΎ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° стандартСн Π΅Π·ΠΈΠΊ.

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π΅ΠΌΠΎΡΡ‚Ρ‚Π°, Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚Ρ‚Π° ΠΈ чСтливостта спорСд ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊΡŠΡ‚ Go ΠΏΠ΅Ρ‡Π΅Π»ΠΈ, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π³ΡƒΠ±ΠΈ Π² многословността.

ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π² някои случаи Π½ΠΈ Π΄Π°Π²Π° нСоспорими прСдимства. Π’ΠΎΠ²Π° Π΅ ясно ΠΈΠ»ΡŽΡΡ‚Ρ€ΠΈΡ€Π°Π½ΠΎ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π·Π° сортиранС. Π’Π°ΠΊΠ° Ρ‡Π΅, Π·Π° Π΄Π° сортирамС ΠΊΠΎΠΉΡ‚ΠΎ ΠΈ Π΄Π° Π΅ списък, просто трябва Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ интСрфСйса sort.Interface.

import "sort"

type Names []string

func (ns Names) Len() int {
    return len(ns)
}

func (ns Names) Less(i, j int) bool {
    return ns[i] < ns[j]
}

func (ns Names) Swap(i, j int) {
    ns[i], ns[j] = ns[j], ns[i]
}

func main() {
    names := Names{"London", "Berlin", "Rim"}
    sort.Sort(names)
}

Ако Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΊΠΎΠΉΡ‚ΠΎ ΠΈ Π΄Π° Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° grep β€œinterface{}” -R, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΊΠΎ чСсто сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Ρ‰ΠΈ интСрфСйси. Π‘Π»ΠΈΠ·ΠΊΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³Π°Ρ€ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Ρ‰Π΅ ΠΊΠ°ΠΆΠ°Ρ‚, Ρ‡Π΅ всичко Ρ‚ΠΎΠ²Π° сС дълТи Π½Π° липсата Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ‡Π½ΠΈ лСкарства. Π’ΠΎΠ²Π° ΠΎΠ±Π°Ρ‡Π΅ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Ρ‚Π°ΠΊΠ°. Π”Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ DELPHI. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰ΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, Ρ‚ΠΎΠΉ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° спСциалСн Ρ‚ΠΈΠΏ VARIANT Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ. Π•Π·ΠΈΠΊΡŠΡ‚ Go ΠΏΡ€Π°Π²ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ.

ΠžΡ‚ ΠΎΡ€ΡŠΠ΄ΠΈΠ΅ Π΄ΠΎ Π²Ρ€Π°Π±Ρ‡Π΅Ρ‚Π°

И усмиритСлната Ρ€ΠΈΠ·Π° трябва Π΄Π° отговаря Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° лудостта. Бтанислав Π›Π΅Ρ†.

Много СкстрСмни Ρ„Π΅Π½ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Ρ‚Π²ΡŠΡ€Π΄ΡΡ‚, Ρ‡Π΅ Go ΠΈΠΌΠ° Π΄Ρ€ΡƒΠ³ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° създаванС Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ - ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. И Ρ‰Π΅ са ΠΏΡ€Π°Π²ΠΈ... Π½ΠΎ само Π² Ρ€Π΅Π΄ΠΊΠΈ случаи.

Π ΠΎΠ± Пайк Π½ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π²Π°:

Π’ΠΎΠ²Π° Π΅ ΠΌΠΎΡ‰Π΅Π½ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° с повишСно Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Врябва Π΄Π° сС избягва, освСн Π°ΠΊΠΎ Π½Π΅ Π΅ строго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

УикипСдия Π½ΠΈ ΠΊΠ°Π·Π²Π° слСдното:

ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС отнася Π΄ΠΎ процСса, ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅Π΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° наблюдава ΠΈ промСня собствСната си структура ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½Π°Ρ‚Π° ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°, Π»Π΅ΠΆΠ°Ρ‰Π° Π² основата Π½Π° рСфлСксията, сС Π½Π°Ρ€ΠΈΡ‡Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. Π’ΠΎΠ²Π° Π΅ Π²ΠΈΠ΄ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅.

ΠšΠ°ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ±Π°Ρ‡Π΅, Π·Π° всичко трябва Π΄Π° ΠΏΠ»Π°Ρ‚ΠΈΡ‚Π΅. Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ‚ΠΎΠ²Π° Π΅:

  • трудности ΠΏΡ€ΠΈ писанС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ
  • скорост Π½Π° изпълнСниС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° с повишСно Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°Ρ‚ΠΎ ΠΎΡ€ΡŠΠΆΠΈΠ΅ с голям ΠΊΠ°Π»ΠΈΠ±ΡŠΡ€. Π‘Π΅Π·Ρ€Π°Π·ΡΡŠΠ΄Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π½Π΅Ρ‡Π΅Ρ‚Π»ΠΈΠ²ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, постоянни Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ ниска скорост. Π’ΠΎΡ‡Π½ΠΎ Π½Π΅Ρ‰ΠΎ Π·Π° Π΅Π΄ΠΈΠ½ сноб програмист Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΡ…Π²Π°Π»ΠΈ с ΠΊΠΎΠ΄Π° си ΠΏΡ€Π΅Π΄ Π΄Ρ€ΡƒΠ³ΠΈ, ΠΏΠΎ-ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈ ΠΈ скромни ΠΊΠΎΠ»Π΅Π³ΠΈ.

ΠšΡƒΠ»Ρ‚ΡƒΡ€Π΅Π½ Π±Π°Π³Π°ΠΆ ΠΎΡ‚ Π‘ΠΈ? НС, ΠΎΡ‚ няколко Π΅Π·ΠΈΠΊΠ°!

Π—Π°Π΅Π΄Π½ΠΎ със ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° наслСдницитС остават ΠΈ дълговС.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° вярват, Ρ‡Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π΅ изцяло Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° наслСдството Π½Π° C, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚Π°ΠΊΠ°. Π•Π·ΠΈΠΊΡŠΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ аспСкти Π½Π° Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅.

синтаксис

На ΠΏΡŠΡ€Π²ΠΎ място, ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° Π³Ρ€Π°ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ структури сС основава Π½Π° синтаксиса Π½Π° Π΅Π·ΠΈΠΊΠ° C. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π΅Π·ΠΈΠΊΡŠΡ‚ DELPHI ΡΡŠΡ‰ΠΎ имашС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ влияниС. Π’Π°ΠΊΠ° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ ΠΈΠ·Π»ΠΈΡˆΠ½ΠΈΡ‚Π΅ скоби, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намаляват чСтливостта Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, са напълно ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ. Π•Π·ΠΈΠΊΡŠΡ‚ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° β€œ:=”, ΠΏΡ€ΠΈΡΡŠΡ‰ Π½Π° Π΅Π·ΠΈΠΊΠ° DELPHI. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡΡ‚Π° Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π΅ заимствана ΠΎΡ‚ Π΅Π·ΠΈΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ ADA. ДСкларацията Π½Π° Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π΅ заимствана ΠΎΡ‚ Π΅Π·ΠΈΠΊΠ° PROLOG.

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ°

ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ са Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° сСмантиката Π½Π° Π΅Π·ΠΈΠΊΠ° DELPHI. ВсСки ΠΏΠ°ΠΊΠ΅Ρ‚ капсулира Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠ΄ ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° частни ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Π’ΠΎΠ²Π° Π²ΠΈ позволява Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ интСрфСйса Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ‚Π° Π·Π° изпълнСниС Ρ‡Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° Π΄Π΅Π»Π΅Π³ΠΈΡ€Π°Π½Π΅ Π΅ заимствана ΠΎΡ‚ Π΅Π·ΠΈΠΊΠ° DELPHI.

компилация

НС Π±Π΅Π· ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΈΠΌΠ° шСга: Go Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° C ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°. Π•Π΄Π½Π° ΠΎΡ‚ силнитС страни Π½Π° Π΅Π·ΠΈΠΊΠ° Π΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΡΠ²Ρ€ΡŠΡ…Π±ΡŠΡ€Π·Π° компилация. Π˜Π΄Π΅ΡΡ‚Π° Π΅ заимствана ΠΎΡ‚ Π΅Π·ΠΈΠΊΠ° DELPHI. ВсСки Go ΠΏΠ°ΠΊΠ΅Ρ‚ отговаря Π½Π° DELPHI ΠΌΠΎΠ΄ΡƒΠ». Π’Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ сС ΠΏΡ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ само ΠΊΠΎΠ³Π°Ρ‚ΠΎ наистина Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ слСд слСдващото Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚Π΅ цялата ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, Π° ΠΏΠΎ-скоро Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ само ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ зависят ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (ΠΈ Π΄ΠΎΡ€ΠΈ Ρ‚ΠΎΠ³Π°Π²Π°, само Π°ΠΊΠΎ интСрфСйситС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ са сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ).

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π½Π° високо Π½ΠΈΠ²ΠΎ

Π•Π·ΠΈΠΊΡŠΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ конструкции Π½Π° високо Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎ никакъв Π½Π°Ρ‡ΠΈΠ½ Π½Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π΅Π·ΠΈΡ†ΠΈ Π½Π° ниско Π½ΠΈΠ²ΠΎ ΠΊΠ°Ρ‚ΠΎ C.

  • Π»ΠΈΠ½ΠΈΠΈ
  • Π₯Сш Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ
  • Π Π΅Π·Π΅Π½ΠΈ
  • Π’ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Duck Π΅ заимствано ΠΎΡ‚ Π΅Π·ΠΈΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ RUBY (ΠΊΠΎΠΉΡ‚ΠΎ, Π·Π° съТалСниС, ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ пълния си ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»).

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ цяло заслуТава ΠΎΡ‚Π΄Π΅Π»Π½Π° статия. Ако Π² Π΅Π·ΠΈΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ C++ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŠΡ‚ Π΅ изцяло оставСн Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Ρ‚ΠΎΠ³Π°Π²Π° Π² ΠΏΠΎ-ΠΊΡŠΡΠ½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ DELPHI Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΌΠΎΠ΄Π΅Π» Π·Π° прСброяванС Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ. Π‘ Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ Π½Π΅ бяха Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ бяха Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½ΠΈ осиротСли ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° Go ΠΈΠΌΠ° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ (ΠΊΠ°Ρ‚ΠΎ C#). Π’ допълнСниС, ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ΡŠΡ‚ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ Π΅ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΎΡ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ извСстни Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. Бамият Π΅Π·ΠΈΠΊ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π° ситуации, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стойност Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² стСка. Π’ΠΎΠ²Π° намалява Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° скоростта Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°.

ΠŸΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡΡ‚ ΠΈ паралСлност

ΠŸΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΌΡŠΡ‚ ΠΈ конкурСнтоспособността Π½Π° Π΅Π·ΠΈΠΊΠ° са извън ΠΏΠΎΡ…Π²Π°Π»Π°. Нито Π΅Π΄ΠΈΠ½ Π΅Π·ΠΈΠΊ ΠΎΡ‚ ниско Π½ΠΈΠ²ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄ΠΎΡ€ΠΈ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΎ Π΄Π° сС ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€Π° с Go. Π—Π° Π΄Π° бъдСм чСстни, заслуТава Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚ Π½Π΅ Π΅ измислСн ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ°, Π° просто Π΅ заимстван ΠΎΡ‚ добрия стар Π΅Π·ΠΈΠΊ ADA. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ всички процСсори, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠ° ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ слоТни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с блокирания ΠΈ ΡΡŠΡΡ‚Π΅Π·Π°Ρ‚Π΅Π»Π½ΠΈ условия, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ Π·Π° многонишков ΠΊΠΎΠ΄.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ прСдимства

Ако Π΅ ΠΏΠ΅Ρ‡Π΅Π»ΠΈΠ²ΡˆΠΎ, всички Ρ‰Π΅ станат бСзкористни.

Π•Π·ΠΈΠΊΡŠΡ‚ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½ΠΈ прСдоставя Ρ€Π΅Π΄ΠΈΡ†Π° нСсъмнСни прСдимства:

  • Π•Π΄ΠΈΠ½ изпълним Ρ„Π°ΠΉΠ» слСд ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опростява внСдряванСто Π½Π° прилоТСния.
  • Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ въвСТданС ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³Π°Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° намалят броя Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ във вашия ΠΊΠΎΠ΄, Π΄ΠΎΡ€ΠΈ Π±Π΅Π· писанС Π½Π° тСстовС. Познавам някои програмисти, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ ΠΏΠΈΡˆΠ°Ρ‚ тСстовС ΠΈ качСството Π½Π° ΠΊΠΎΠ΄Π° ΠΈΠΌ Π½Π΅ страда Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ.
  • Много проста крос-компилация ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Π° прСносимост Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опростява Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° крос-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ΠΈ прилоТСния.
  • RE2 рСгулярнитС ΠΈΠ·Ρ€Π°Π·ΠΈ са бСзопасни Π·Π° нишки ΠΈ ΠΈΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π·Π° изпълнСниС.
  • ΠœΠΎΡ‰Π½Π° стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която позволява Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π΄Π° работят Π±Π΅Π· Ρ€Π°ΠΌΠΊΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни.
  • Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΌΠΎΡ‰Π΅Π½, Π·Π° Π΄Π° сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈ Π²ΡŠΡ€Ρ…Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π° Π½Π΅ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Ρ€Π΅ΡˆΠΈ, Π½ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ниско Π½ΠΈΠ²ΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΄Π° бъдС Ρ€Π΅ΡˆΠ΅Π½ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ.
  • БистСмата Go eco Π²Π΅Ρ‡Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π³ΠΎΡ‚ΠΎΠ²ΠΈ инструмСнти Π·Π° всички случаи: тСстовС, докумСнтация, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΌΠΎΡ‰Π½ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΈ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄, Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ Π·Π° условия Π½Π° ΡΡŠΡΡ‚Π΅Π·Π°Π½ΠΈΠ΅ ΠΈ Π΄Ρ€.
  • Go вСрсия 1.11 въвСдС Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° сСмантични зависимости, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΎ Π²ΡŠΡ€Ρ…Ρƒ популярния VCS хостинг. Всички инструмСнти, ΡΡŠΡΡ‚Π°Π²Π»ΡΠ²Π°Ρ‰ΠΈ СкосистСмата Go, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π΅Π·ΠΈ услуги, Π·Π° Π΄Π° изтСглят, ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ ΠΈ инсталират ΠΊΠΎΠ΄ ΠΎΡ‚ тях с Π΅Π΄ΠΈΠ½ Π·Π°ΠΌΠ°Ρ…. И Ρ‚ΠΎΠ²Π° Π΅ страхотно. Π‘ пристиганСто Π½Π° вСрсия 1.11 ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с вСрсиитС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎ бСшС напълно Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½.
  • Въй ΠΊΠ°Ρ‚ΠΎ основната идСя Π½Π° Π΅Π·ΠΈΠΊΠ° Π΅ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ магията, Π΅Π·ΠΈΠΊΡŠΡ‚ стимулира Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅. И Ρ‚ΠΎΠ²Π° Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Ρ‚ΠΎΠΉ просто Ρ‰Π΅ Π·Π°Π±Ρ€Π°Π²ΠΈ напълно Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. Π”Ρ€ΡƒΠ³ΠΎ Π½Π΅Ρ‰ΠΎ Π΅, Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΡƒΠΌΠΈΡˆΠ»Π΅Π½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΠΊΠΈ вмСсто Π΄Π° Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚, просто Π΄Π° прСпратят Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π½Π°Π³ΠΎΡ€Π΅.
  • Π•Π·ΠΈΠΊΡŠΡ‚ Π½Π΅ ΠΏΡ€ΠΈΠ»Π°Π³Π° класичСската OOP мСтодология, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² чистата си Ρ„ΠΎΡ€ΠΌΠ° няма виртуалност Π² Go. Π’ΠΎΠ²Π° ΠΎΠ±Π°Ρ‡Π΅ Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° интСрфСйси. Липсата Π½Π° ООП Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява Π±Π°Ρ€ΠΈΠ΅Ρ€Π°Ρ‚Π° Π·Π° Π½Π°Π²Π»ΠΈΠ·Π°Π½Π΅ Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ.

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Π² ΠΏΠΎΠ»Π·Π° Π½Π° общността

ЛСсно сС услоТнява, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ сС опростява.

Go Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π΄Π° бъдС прост ΠΈ успява Π² Ρ‚Π°Π·ΠΈ Ρ†Π΅Π». Написано Π΅ Π·Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ програмисти, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ прСдимствата Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² Π΅ΠΊΠΈΠΏ ΠΈ са ΡƒΠΌΠΎΡ€Π΅Π½ΠΈ ΠΎΡ‚ Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° промСнливост Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π½ΠΈΠ²ΠΎ. Имайки сравнитСлно малък Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ синтактични структури Π² своя арсСнал, Ρ‚ΠΎΠΉ практичСски Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅, освободСно Π·Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, Π° Π½Π΅ Π·Π° Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊΠΎΠ²ΠΈ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ.

ΠšΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° прСдимства: ниска Π²Ρ…ΠΎΠ΄Π½Π° Π±Π°Ρ€ΠΈΠ΅Ρ€Π° ΠΈΠΌ позволява Π±ΡŠΡ€Π·ΠΎ Π΄Π° намСрят спСциалист, Π° нСизмСнността Π½Π° Π΅Π·ΠΈΠΊΠ° ΠΈΠΌ позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΡΡŠΡ‰ΠΈΡ ΠΊΠΎΠ΄ Π΄ΠΎΡ€ΠΈ слСд 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ГолСмият Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° мозъка Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ» слон носитСл Π½Π° НобСлова Π½Π°Π³Ρ€Π°Π΄Π°.

Π—Π° ΠΎΠ½Π΅Π·ΠΈ програмисти, Ρ‡ΠΈΠ΅Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ° прСдимство ΠΏΡ€Π΅Π΄ Скипния Π΄ΡƒΡ…, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π°Ρ‚ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ‡Π½ΠΈΡ‚Π΅ прСдизвикатСлства ΠΈ Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½ΠΎΡ‚ΠΎ β€žΡΠ°ΠΌΠΎΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½Π΅β€œ, Π΅Π·ΠΈΠΊΡŠΡ‚ Π΅ наистина лош, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ занаятчийски Π΅Π·ΠΈΠΊ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π²ΠΈ позволява Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ СстСтичСско удоволствиС ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си ΠΈ Π΄Π° сС покаТСш профСсионалист ΠΏΡ€Π΅Π΄ ΠΊΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ си (ΠΏΡ€ΠΈ условиС, Ρ‡Π΅ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°ΠΌΠ΅ интСлигСнтността ΠΏΠΎ Ρ‚Π΅Π·ΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ, Π° Π½Π΅ ΠΏΠΎ IQ). ΠšΠ°ΠΊΡ‚ΠΎ всичко Π² ΠΆΠΈΠ²ΠΎΡ‚Π°, Ρ‚ΠΎΠ²Π° Π΅ Π²ΡŠΠΏΡ€ΠΎΡ Π½Π° Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΈ. ΠšΠ°Ρ‚ΠΎ всички ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ си заслуТават Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, Π΅Π·ΠΈΠΊΡŠΡ‚ Π²Π΅Ρ‡Π΅ Π΅ ΠΈΠ·ΠΌΠΈΠ½Π°Π» дълъг ΠΏΡŠΡ‚ ΠΎΡ‚ всСобщото ΠΎΡ‚Ρ€ΠΈΡ‡Π°Π½Π΅ Π΄ΠΎ масовото ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ Π³Π΅Π½ΠΈΠ°Π»Π΅Π½ Π² своята простота, Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, всичко Π³Π΅Π½ΠΈΠ°Π»Π½ΠΎ Π΅ просто!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€