เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Go เปเบกเปˆเบ™เบšเปเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบฅเบฒเบ”

เบšเบปเบ”เบ„เบงเบฒเบกเป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ•เบญเบšเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰ เบšเบปเบ”เบ„เบงเบฒเบก antipodean.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Go เปเบกเปˆเบ™เบšเปเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบฅเบฒเบ”

เปƒเบ™เป„เบฅเบเบฐเบชเบญเบ‡เบ›เบตเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เปƒเบŠเป‰ Go เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ RADIUS เบžเบดเป€เบชเบ”เบ—เบตเปˆเบกเบตเบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™เป€เบเบฑเบšเป€เบ‡เบดเบ™เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบ„เบฝเบ‡เบ„เบนเปˆเบเบฑเบ™เบ™เบฑเป‰เบ™, เบ‚เป‰เบญเบเบเบณเบฅเบฑเบ‡เบฎเบฝเบ™เบฎเบนเป‰เบ„เบงเบฒเบกเบŠเบฑเบšเบŠเป‰เบญเบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒเบ™เบฑเป‰เบ™เป€เบญเบ‡. เป‚เบ›เบฅเปเบเบฅเบกเบ•เบปเบงเป€เบญเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เปเบ•เปˆเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ Go เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบชเบปเบกเบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบญเบ‡เบชเบฒเบกเบ„เปเบฒเปƒเบ™เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™. Go เบเบฒเบเป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบซเบผเบฑเบเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡, เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰. เบžเบฒเบชเบฒเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบ Google, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™. เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบธเปˆเบก, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบขเปˆเบฒเบ‡เบŠเบทเปˆเบชเบฑเบ”เบงเปˆเบฒเบเบฒเบ™เบญเบญเบเปเบšเบšเบ‚เบญเบ‡เบžเบฒเบชเบฒ Go เปเบกเปˆเบ™เบšเปเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบผเบฒเบ”.

เบญเบญเบเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญ?

เบ„เบปเบ™เบญเปˆเบญเบ™เปเบญเป€เบงเบปเป‰เบฒเบšเบฑเบ™เบซเบฒ. เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบเปˆเบฝเบงเบเบฑเบšเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบเบฑเบ™ ...

Go เปเบกเปˆเบ™โ€‹เบ‡เปˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฎเบฝเบ™โ€‹เบฎเบนเป‰โ€‹, เบชเบฐโ€‹เบ™เบฑเป‰เบ™โ€‹เบ‡เปˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบญเปˆเบฒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบเบถเบโ€‹เบญเบปเบšโ€‹เบฎเบปเบกโ€‹เป€เบเบทเบญเบšโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹. เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบžเบฒเบชเบฒเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ—เบปเปˆเบงเป‚เบฅเบเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป€เบกเบทเปˆเบญเบฅเบฐเบซเบฑเบ”เบ–เบทเบเบญเปˆเบฒเบ™เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบšเบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบซเบผเบฑเบ (เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™, เบฅเบนเบเบ„เป‰เบฒ, เปเบฅเบฐเบญเบทเปˆเบ™เป†). เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบ”เบงเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบŠเบฑเปˆเบ™: Design Driven Development.
เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบˆเบปเบงเป€เบฅเบตเปˆเบกเบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ”เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบชเบญเบ‡เบญเบฒเบ—เบดเบ”. เบ›เบทเป‰เบกเบ—เบตเปˆเบ‚เป‰เบญเบเป„เบ”เป‰เบชเบถเบเบชเบฒเปเบกเปˆเบ™ "Go Programming" (เป‚เบ”เบ Mark Summerfield). เบ›เบถเป‰เบกเปเบกเปˆเบ™เบ”เบตเบซเบผเบฒเบ, เบกเบฑเบ™เบชเปเบฒเบœเบฑเบ”เบเบฑเบšเบซเบผเบฒเบ nuances เบ‚เบญเบ‡เบžเบฒเบชเบฒ. เบซเบผเบฑเบ‡เบˆเบฒเบเบžเบฒเบชเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบŠเบฑเปˆเบ™ Java, PHP, เบเบฒเบ™เบ‚เบฒเบ” magic เปเบกเปˆเบ™เบชเบปเบ”เบŠเบทเปˆเบ™. เปเบ•เปˆเปƒเบ™เป„เบงเป†เบ™เบตเป‰เบซเบผเบทเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบˆเปเบฒเบเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบกเบตเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เป€เบเบปเปˆเบฒเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบซเบกเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เปเบ—เป‰เป†เบšเป?

Rob Pike (เบ™เบฑเบเบญเบธเบ”เบปเบกเบเบฒเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบžเบฒเบชเบฒ) เบชเป‰เบฒเบ‡เบžเบฒเบชเบฒ Go เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบญเบธเบ”เบชเบฒเบซเบฐเบเปเบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‡เปˆเบฒเบเปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. เบžเบฒเบชเบฒเป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบฅเบฐเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบชเบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™. เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบˆเบปเบงเบซเบผเบฒเบเบ„เบปเบ™เบˆเบปเปˆเบกเบงเปˆเบฒเบกเบตเบซเบผเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ‚เบฒเบ”เบซเบฒเบเป„เบ›. เบ„เบงเบฒเบกเบ›เบฒเบ–เบฐเบซเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบกเบตเบชเบฐเบ•เบดเป‚เบ”เบเบœเบนเป‰เบญเบญเบเปเบšเบšเบžเบฒเบชเบฒ, เปเบฅเบฐเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบฎเบ‡เบˆเบนเบ‡เปƒเบˆเบ‚เบญเบ‡เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบžเบฐเบเบฒเบเบฒเบกเบšเบฑเบ™เบฅเบธเปƒเบ™ Go.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบ? เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเป€เบงเบปเป‰เบฒเบชเบญเบ‡เบชเบฒเบกเบขเปˆเบฒเบ‡เบˆเบฒเบ Rob Pike:

เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเปเบกเปˆเบ™เบ™เบฑเบเบ„เบปเป‰เบ™เบ„เบงเป‰เบฒ. เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบกเปˆเบ™เป„เบงเบซเบ™เบธเปˆเบก, เบกเบฒเบซเบฒเบžเบงเบเป€เบฎเบปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบฎเบฝเบ™, เบšเบฒเบ‡เบ—เบตเบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เบชเบถเบเบชเบฒ Java, เบซเบผเบท C / C ++, เบซเบผเบท Python. เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆเบžเบฒเบชเบฒเบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเป‰เบฒเบ‡เบŠเบญเบšเปเบงเบ—เบตเปˆเบ”เบต. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบžเบฒเบชเบฒเบ„เบงเบ™เบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบฅเบฐเบฎเบฝเบ™เบฎเบนเป‰เป„เบ”เป‰เบ‡เปˆเบฒเบ.

เบฅเบฒเบงเบ„เบงเบ™เบˆเบฐเบ„เบธเป‰เบ™เป€เบ„เบตเบ, เป€เบงเบปเป‰เบฒเบ›เบฐเบกเบฒเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš C. เบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ Google เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบญเบฒเบŠเบตเบšเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เปเบฅเบฐเบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบžเบฒเบชเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ„เบญเบšเบ„เบปเบง C. เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เป„เบงเปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปƒเบซเบกเปˆเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบฒเบชเบฒเบšเปเปˆเบ„เบงเบ™เป€เบ›เบฑเบ™เบฎเบฒเบเป€เบเบตเบ™เป„เบ›.

เบ„เปเบฒเป€เบงเบปเป‰เบฒเบ—เบตเปˆเบชเบฐเบซเบฅเบฒเบ”, เบšเปเปˆเปเบกเปˆเบ™เบšเป?

เบ›เบญเบกเบ‚เบญเบ‡เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบ

เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเปเบกเปˆเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ‡เบฒเบก. Lev Tolstoy.

เบเบฒเบ™เบฎเบฑเบเบชเบฒเบกเบฑเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบเบฒเบ™เบญเบญเบเปเบšเบšเปƒเบ”เบเปเปˆเบ•เบฒเบก. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฎเบนเป‰, เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบšเบšเปเปˆเปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบก, เปเบ•เปˆเป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ—เบตเปˆเบˆเบฐเป€เบญเบปเบฒเบญเบญเบ. เบซเบผเบฒเบเบ„เบปเบ™เป€เบŠเบทเปˆเบญเบงเปˆเบฒเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™ (เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบชเบฐเปเบ”เบ‡เบญเบญเบ), เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™. เปƒเบซเป‰เป€เบญเบปเบฒเบžเบฒเบชเบฒ PERL เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡. เบ™เบฑเบ ideologists เบžเบฒเบชเบฒเป€เบŠเบทเปˆเบญเบงเปˆเบฒเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ„เบงเบ™เบˆเบฐเบกเบตเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบชเบฒเบกเบงเบดเบ—เบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบซเบ™เบถเปˆเบ‡. เบ™เบฑเบเบญเบธเบ”เบปเบกเบเบฒเบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒ Go เป„เบ”เป‰เป€เบ”เบตเบ™เป„เบ›เบ•เบฒเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™; เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบกเบตเบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡: เบงเบดเบ—เบตเบ”เบฝเบงเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เปเบฅเบฐเบเบฒเบเบ—เบตเปˆเบˆเบฐเบฅเบทเบก.

เบ„เบปเบ™เบญเบปเบšเบžเบฐเบเบปเบšเบซเบผเบฒเบเบ„เบปเบ™เบˆเบปเปˆเบกเบงเปˆเบฒเบžเบฒเบชเบฒเบ™เบฑเป‰เบ™เบšเปเปˆเบกเบตเบ•เบปเบงเบซเบเปเป‰เบ—เบตเปˆเบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบก. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡, เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบžเบฒเบชเบฒ. เบžเบฒเบชเบฒเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡ magic - เบชเบฐเบ™เบฑเป‰เบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เป€เบฅเบดเบเป€เบŠเบดเปˆเบ‡เป€เบžเบทเปˆเบญเบญเปˆเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™. เบชเปเบฒเบฅเบฑเบš verbosity เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเป€เบฅเบตเบ. เป‚เบ›เบฃเปเบเบฃเบก Golang เบ—เบตเปˆเบ‚เบฝเบ™เป„เบ”เป‰เบ”เบตเบญเปˆเบฒเบ™เบ•เบฒเบกเปเบ™เบงเบ•เบฑเป‰เบ‡, เบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปœเป‰เบญเบ เบซเบผเบทเบšเปเปˆเบกเบตเป€เบฅเบตเบ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบซเบผเบฒเบเบเปˆเบงเบฒเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบกเบฑเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบกเบตเบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบš (เป€เบฎเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ gofmt เบ—เบตเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบชเบฑเป‰เบ™เบžเบดเป€เบชเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเป€เบฅเบตเบ.

เบšเปเปˆเบชเบฐเปเบ”เบ‡เบญเบญเบเบซเบผเบฒเบ

เบชเบดเบฅเบฐเบ›เบฐเบšเปเปˆเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเป€เบกเบทเปˆเบญเป€เบชเบฅเบตเบžเบฒเบšเบ‚เบญเบ‡เบกเบฑเบ™เบ–เบทเบเบˆเปเบฒเบเบฑเบ”. เบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบญเบ‡เบฅเบฒเบง.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบ›เบฒเบ–เบฐเบซเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบฅเบฝเบšเบ‡เปˆเบฒเบ, Go เบ‚เบฒเบ”เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเปƒเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™เบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเป€เบ›เบฑเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เปเบฒเบกเบฐเบŠเบฒเบ”เป‚เบ”เบเบ„เบปเบ™เบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ. เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบฐเบ”เบงเบ, เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบเปเบฅเบฐเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡, console utility เบ—เบตเปˆเบญเปˆเบฒเบ™ 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);
    }
}

Hell เบ‚เบญเบ‡เบชเปเบฒเป€เบ™เบปเบฒ

เบœเบนเป‰เบŠเบฒเบเป€เบญเบปเบฒ hell เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. Martin Luther.

เบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบปเปˆเบกเบเปˆเบฝเบงเบเบฑเบš 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 เบŠเบฐเบ™เบฐ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบชเบนเบ™เป€เบชเบเปƒเบ™ verbosity.

เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบตเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเป€เบชเบ”เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เป‚เบ”เบเบŠเบธเบ”เบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบฎเบฝเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš 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 เบเปเปˆเบ„เบทเบเบฑเบ™.

เบˆเบฒเบ cannon เบเบฑเบš sparrows

เปเบฅเบฐ straitjacket เบ•เป‰เบญเบ‡เป€เบซเบกเบฒเบฐเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ madness เป„เบ”เป‰. Stanislav Lec.

เปเบŸเบ™เป†เบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡เบซเบผเบฒเบเบ„เบปเบ™เบญเบฒเบ”เบˆเบฐเบญเป‰เบฒเบ‡เบงเปˆเบฒ Go เบกเบตเบเบปเบ™เป„เบเบญเบทเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบ—เบปเปˆเบงเป„เบ› - เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™. เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบˆเบฐเบ–เบทเบเบ•เป‰เบญเบ‡ ... เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบซเบฒเบเบฒเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

Rob Pike เป€เบ•เบทเบญเบ™เบžเบงเบเป€เบฎเบปเบฒ:

เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡. เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”.

เบงเบดเบเบดเบžเบตเป€เบ”เบเบšเบญเบเบžเบงเบเป€เบฎเบปเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐเบ”เบฑเบ”เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เป‚เบ›เบฃเปเบเบกเบชเบฐเบ—เป‰เบญเบ™เบžเบฒเบšเบ—เบตเปˆเบ•เบดเบ”เบžเบฑเบ™เบเบฑเบšเปเบšเบšเปเบœเบ™เบžเบฒเบš เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบชเบฐเบ—เป‰เบญเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ metaprogramming.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ•เบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฎเบนเป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบˆเปˆเบฒเบเบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบกเบฑเบ™เปเบกเปˆเบ™:

  • เบ„เบงเบฒเบกโ€‹เบซเบเบธเป‰เบ‡โ€‹เบเบฒเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ‚เบฝเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹
  • เบ„เบงเบฒเบกโ€‹เป„เบงโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹

เบชเบฐเบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡, เบ„เบทเบเบฑเบšเบญเบฒเบงเบธเบ”เบ—เบตเปˆเบกเบตเบ‚เบฐเปœเบฒเบ”เปƒเบซเบเปˆ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เบขเปˆเบฒเบ‡เบšเปเปˆเบ„เบดเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰, เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบ„เบงเบฒเบกเป„เบงเบ•เปˆเปเบฒ. เบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก snob เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบฅเบฒเบงเบขเบนเปˆเบ—เบฒเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เป€เบžเบทเปˆเบญเบ™เบฎเปˆเบงเบกเบ‡เบฒเบ™เบญเบทเปˆเบ™เป†, pragmatic เปเบฅเบฐเป€เบฅเบฑเบเบ™เป‰เบญเบ.

เบเบฐเป€เบ›เบปเป‹เบฒเบงเบฑเบ”เบ—เบฐเบ™เบฐเบ—เปเบฒเบˆเบฒเบ Xi? เบšเปเปˆ, เบˆเบฒเบเบซเบผเบฒเบเบžเบฒเบชเบฒ!

เบ„เบฝเบ‡เบ„เบนเปˆเบเบฑเบšเป‚เบŠเบเบฅเบฒเบš, เบซเบ™เบตเป‰เบชเบดเบ™เบเบฑเบ‡เบ–เบทเบเบ›เบฐเป„เบงเป‰เปƒเบซเป‰เบœเบนเป‰เบชเบทเบšเบ—เบญเบ”.

เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบซเบผเบฒเบเบ„เบปเบ™เป€เบŠเบทเปˆเบญเบงเปˆเบฒเบžเบฒเบชเบฒเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบกเปเบฅเบฐเบ”เบปเบ C, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบต. เบžเบฒเบชเบฒเบ›เบฐเบเบญเบšเบกเบตเบซเบผเบฒเบเบ”เป‰เบฒเบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”.

syntax

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, syntax เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป„เบงเบเบฒเบเบญเบ™เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ syntax เบ‚เบญเบ‡เบžเบฒเบชเบฒ C. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบฒเบชเบฒ DELPHI เบเบฑเบ‡เบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบงเบปเบ‡เป€เบฅเบฑเบšเบ—เบตเปˆเบŠเปเป‰เบฒเบŠเป‰เบญเบ™, เป€เบŠเบดเปˆเบ‡เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เบญเบ‡เป‚เบ›เปเบเบก, เป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบžเบฒเบชเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบ‡เบกเบตเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ โ€œ:=โ€ เบขเบนเปˆเปƒเบ™เบžเบฒเบชเบฒ DELPHI. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเปเบกเปˆเบ™เบขเบทเบกเบกเบฒเบˆเบฒเบเบžเบฒเบชเบฒเป€เบŠเบฑเปˆเบ™ ADA. เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡เบ™เบดเบ•เบดเบšเบธเบเบ„เบปเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปเบกเปˆเบ™เบขเบทเบกเบกเบฒเบˆเบฒเบเบžเบฒเบชเบฒ PROLOG.

เบ„เบงเบฒเบกเบซเบกเบฒเบ

เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ semantics เบ‚เบญเบ‡เบžเบฒเบชเบฒ DELPHI. เปเบ•เปˆเบฅเบฐเบŠเบธเบ”เบซเบธเป‰เบกเบซเปเปˆเบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐเบฅเบฐเบซเบฑเบ” เปเบฅเบฐเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเปœเปˆเบงเบเบ‡เบฒเบ™เป€เบญเบเบฐเบŠเบปเบ™ เปเบฅเบฐเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบŠเบธเบ”เปƒเบซเป‰เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ.

เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ„เบฐโ€‹เบ™เบฐโ€‹เบœเบนเป‰โ€‹เปเบ—เบ™โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบขเบทเบกโ€‹เบกเบฒโ€‹เบˆเบฒเบโ€‹เบžเบฒโ€‹เบชเบฒ DELPHIโ€‹.

เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก

เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบšเปเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เบงเปˆเบฒเบกเบตเป€เบฅเบทเปˆเบญเบ‡เบ•เบฐเบซเบฅเบปเบ: Go เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™ C เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบก. เบซเบ™เบถเปˆเบ‡เปƒเบ™เบˆเบธเบ”เปเบ‚เบ‡เบ‚เบญเบ‡เบžเบฒเบชเบฒเปเบกเปˆเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบงเบ—เบตเปˆเบชเบธเบ”. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบขเบทเบกเบกเบฒเบˆเบฒเบเบžเบฒเบชเบฒ DELPHI. เปเบ•เปˆเบฅเบฐเบŠเบธเบ” Go เบเบปเบ‡เบเบฑเบšเป‚เบกเบ”เบนเบ™ DELPHI. เปเบžเบฑเบเป€เบเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ„เบทเบ™เป€เบกเบทเปˆเบญเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เปเบ—เป‰เป†. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบฑเป‰เบ‡เบ•เปเปˆเป„เบ›, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบกเป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบšเบฅเบงเบกเบžเบฝเบ‡เปเบ•เปˆเบŠเบธเบ”เปเบฅเบฐเบŠเบธเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ, เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡).

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡

เบžเบฒเบชเบฒเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบเบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบฒเบชเบฒเบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเป€เบŠเบฑเปˆเบ™ C.

  • เบชเบฒเบ
  • เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ Hash
  • เบ›เปˆเบฝเบ‡
  • เบเบฒเบ™เบžเบดเบกเป€เบ›เบฑเบ”เปเบกเปˆเบ™เบขเบทเบกเบกเบฒเบˆเบฒเบเบžเบฒเบชเบฒเบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™ RUBY (เปเบ•เปˆเปœเป‰เบฒเป€เบชเบเบ”เบฒเบ, เบซเบผเบฒเบเบ„เบปเบ™เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆ เบซเบผเบทเปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เป€เบ•เบฑเบกเบ—เบตเปˆเบ‚เบญเบ‡เบกเบฑเบ™).

เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ

เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เบชเบปเบกเบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเบปเบ”เบ„เบงเบฒเบกเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบ–เป‰เบฒเบขเบนเปˆเปƒเบ™เบžเบฒเบชเบฒเป€เบŠเบฑเปˆเบ™ C ++, เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ–เบทเบเบ›เบฐเป„เบงเป‰เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบเบฑเบšเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบ™เบžเบฒเบชเบฒเบ•เปเปˆเบกเบฒเป€เบŠเบฑเปˆเบ™ DELPHI, เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ™เบฑเบšเบญเป‰เบฒเบ‡เบญเบตเบ‡เบ–เบทเบเปƒเบŠเป‰. เบ”เป‰เบงเบเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰, เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบฎเบญเบšเบงเบฝเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบธเปˆเบกเป€เบ”เบฑเบเบเปเบฒเบžเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ Go เป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡เบเบธเปˆเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง (เป€เบŠเบฑเปˆเบ™ C#). เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบ„เบทเปˆเบญเบ‡เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปเบกเปˆเบ™เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบซเบผเบฒเบ. เบžเบฒเบชเบฒเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบฎเบฑเบšเบฎเบนเป‰เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเปเบ›เบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบขเบนเปˆเปƒเบ™ stack. เบ™เบตเป‰เบŠเปˆเบงเบเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป‚เบซเบผเบ”เปƒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.

Concurrency เปเบฅเบฐ Concurrency

เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เปเบฅเบฐเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒเปเบกเปˆเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบชเบฑเบ™เบฅเบฐเป€เบชเบตเบ™. เบšเปเปˆเบกเบตเบžเบฒเบชเบฒเบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบชเบฒเบกเบฒเบ”เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบเบฑเบš Go เป„เบ”เป‰เบˆเบฒเบเป„เบฅเบเบฐเป„เบ. เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเบเบธเบ•เบดเบ—เปเบฒ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ•เบปเบงเปเบšเบšเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ”เบดเบ”เป‚เบ”เบเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒ, เปเบ•เปˆเบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป‰เบขเบทเบกเบกเบฒเบˆเบฒเบเบžเบฒเบชเบฒ ADA เป€เบเบปเปˆเบฒเบ—เบตเปˆเบ”เบต. เบžเบฒเบชเบฒเบชเบฒเบกเบฒเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบฐเบซเบ™เบฒเบ™เบ™เบฑเบšเบฅเป‰เบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ CPU เบ—เบฑเบ‡เบซเบกเบปเบ”, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบกเบตเบฅเปเบฒเบ”เบฑเบšเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบซเบ™เป‰เบญเบเบเบฑเบš deadlocks เปเบฅเบฐเบชเบฐเบžเบฒเบšเป€เบŠเบทเป‰เบญเบŠเบฒเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบซเบผเบฒเบ threaded.

เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบ–เป‰เบฒเบกเบฑเบ™เบกเบตเบเปเบฒเป„เบฅ, เบ—เบธเบเบ„เบปเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ„เบปเบ™เบšเปเปˆเป€เบซเบฑเบ™เปเบเปˆเบ•เบปเบง.

เบžเบฒเบชเบฒเบเบฑเบ‡เปƒเบซเป‰เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบชเบปเบ‡เปƒเบชเบซเบผเบฒเบเปเบเปˆเบžเบงเบเป€เบฎเบปเบฒ:

  • เป„เบŸเบฅเปŒเบ”เบฝเบงเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบ.
  • เบเบฒเบ™เบžเบดเบกเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบ›เบฐเป€เบžเบ” inference เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ‚เบฝเบ™. เบ‚เป‰เบญเบเบฎเบนเป‰เบงเปˆเบฒเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบšเบฒเบ‡เบ„เบปเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบ—เบปเบ™เบ—เบธเบเบซเบผเบฒเบ.
  • เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เป‰เบฒเบกเปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเปเบฅเบฐเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เป‰เบฒเบกเป€เบงเบ—เบตเบ‡เปˆเบฒเบเบ”เบฒเบเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.
  • RE2 เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เบ›เบญเบ”เป„เบžเบเบฐเบ—เบนเป‰เปเบฅเบฐเบกเบตเป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰.
  • เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเป€เบฎเบฑเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบญเบšเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก.
  • เบžเบฒเบชเบฒเปเบกเปˆเบ™เบกเบตเบญเปเบฒเบ™เบฒเบ”เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบชเบธเบกเปƒเบชเปˆเบšเบฑเบ™เบซเบฒเบซเบผเบฒเบเบเบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚, เปเบ•เปˆเบงเปˆเบฒเบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.
  • เบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ” Go เบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเป‰เบงเบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เป‚เบญเบเบฒเบ”: เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เป€เบญเบเบฐเบชเบฒเบ™, เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบŠเบธเบ”, เบฅเบตเบ™เป€เบ•เบตเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”, เป€เบ„เบทเปˆเบญเบ‡เบเบงเบ”เบชเบฐเบžเบฒเบšเป€เบŠเบทเป‰เบญเบŠเบฒเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†.
  • Go เป€เบงเบตเบŠเบฑเปˆเบ™ 1.11 เบ™เบณเบชเบฐเป€เปœเบตเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบฒเบ‡เบ„เบงเบฒเบกเปเบฒเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบกเบฒ, เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบเบญเบ”เบ™เบดเบเบปเบกเบ‚เบญเบ‡ VCS hosting. เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ” Go เปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบžเบทเปˆเบญเบ”เบฒเบงเป‚เบซเบฅเบ”, เบชเป‰เบฒเบ‡ เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฅเบฐเบซเบฑเบ”เบˆเบฒเบเบžเบงเบเบกเบฑเบ™เปƒเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบง. เปเบฅเบฐเบ™เบฑเป‰เบ™เบเบดเปˆเบ‡เปƒเบซเบเปˆ. เบ”เป‰เบงเบเบเบฒเบ™เบกเบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡เป€เบงเบตเบŠเบฑเบ™ 1.11, เบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™.
  • เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบซเบผเบฑเบเบ‚เบญเบ‡เบžเบฒเบชเบฒเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™ magic, เบžเบฒเบชเบฒ incentivizes เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบฎเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบฅเบทเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”. เบชเบดเปˆเบ‡เบญเบทเปˆเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป‚เบ”เบเป€เบˆเบ”เบ•เบฐเบ™เบฒ, เบกเบฑเบเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ›เบธเบ‡เปเบ•เปˆเบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบชเบปเปˆเบ‡เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบถเป‰เบ™.
  • เบžเบฒเบชเบฒเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™ OOP เปเบšเบšเบ„เบฅเบฒเบชเบชเบดเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเบฅเบดเบชเบธเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบšเปเปˆเบกเบต virtuality เปƒเบ™ Go. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš. เบเบฒเบ™เบ‚เบฒเบ” OOP เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบญเบธเบ›เบฐเบชเบฑเบเบ•เปเปˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเป€เบžเบทเปˆเบญเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบŠเบธเบกเบŠเบปเบ™

เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบชเบฑเบšเบชเบปเบ™, เบเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบ.

Go เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบกเบฑเบ™เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ™เบฑเป‰เบ™. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบชเบฐเบซเบผเบฒเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ—เบตเบกเปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบญเบดเบ”เป€เบกเบทเปˆเบญเบเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบšเปเปˆเบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบžเบฒเบชเบฒเบฅเบฐเบ”เบฑเบšเบงเบดเบชเบฒเบซเบฐเบเบดเบ”. เบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ syntactic เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ™เป‰เบญเบเบขเบนเปˆเปƒเบ™เบชเบฒเบ™เบซเบ™เบนเบ‚เบญเบ‡เบกเบฑเบ™, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบตเป€เบงเบฅเบฒเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบถเบเบชเบฒเบเบฒเบ™เบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เบžเบฒเบชเบฒเบ—เบตเปˆเบšเปเปˆเบชเบดเป‰เบ™เบชเบธเบ”.

เบšเปเบฅเบดเบชเบฑเบ”เบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเป„เบ”เป‰เบ›เบฝเบšเบซเบผเบฒเบ: เบญเบธเบ›เบฐเบชเบฑเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบ•เปˆเปเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบŠเบญเบเบซเบฒเบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เปเบฅเบฐเบ„เบงเบฒเบกเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบžเบฒเบชเบฒเป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบ 10 เบ›เบต.

เบชเบฐเบซเบฅเบธเบš

เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบชเบฐโ€‹เบซเบกเบญเบ‡โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบšเปเปˆโ€‹เป€เบ„เบตเบโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบŠเป‰เบฒเบ‡โ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบฅเบฒเบ‡โ€‹เบงเบฑเบ™ Nobelโ€‹.

เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบกเบต ego เบชเปˆเบงเบ™เบ•เบปเบงเป€เบ›เบฑเบ™เบœเบนเป‰เบ™เปเบฒเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบˆเบดเบ”เปƒเบˆเบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ™เบฑเบเบ—เบดเบ”เบชเบฐเบ”เบตเบ—เบตเปˆเบฎเบฑเบเบ„เบงเบฒเบกเบ—เป‰เบฒเบ—เบฒเบเบ—เบฒเบ‡เบงเบดเบŠเบฒเบเบฒเบ™เปเบฅเบฐ "เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ•เบปเบ™เป€เบญเบ‡", เบžเบฒเบชเบฒเปเบกเปˆเบ™เบšเปเปˆเบ”เบตเปเบ—เป‰เป†, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบชเบดเบฅเบฐเบ›เบฐเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš. เบ„เบงเบฒเบกเบชเบธเบเบ„เบงเบฒเบกเบ‡เบฒเบกเบˆเบฒเบเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบชเบฐเปเบ”เบ‡เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เบกเบทเบญเบฒเบŠเบตเบšเบขเบนเปˆเบ—เบฒเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เป€เบžเบทเปˆเบญเบ™เบฎเปˆเบงเบกเบ‡เบฒเบ™ (เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบงเบฑเบ”เปเบ—เบเบชเบฐเบ•เบดเบ›เบฑเบ™เบเบฒเป‚เบ”เบเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เป‚เบ”เบ IQ). เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปƒเบ™เบŠเบตเบงเบดเบ”, เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบ—เบตเปˆเบกเบตเบกเบนเบ™เบ„เปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบฒเบชเบฒเป„เบ”เป‰เบกเบฒเป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบงเบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบ—เบปเปˆเบงเป„เบ›เป„เบ›เบชเบนเปˆเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบ‚เบญเบ‡เบกเบฐเบซเบฒเบŠเบปเบ™. เบžเบฒเบชเบฒเปเบกเปˆเบ™ ingenious เปƒเบ™เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบกเบฑเบ™, เปเบฅเบฐ, เบ•เบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฎเบนเป‰, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡ ingenious เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ!

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™