เจธเจฎเจพเจฐเจŸ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐเจพเจ‚ เจฒเจˆ เจ—เฉ‹ เจกเจฟเจœเจผเจพเจˆเจจ เจฎเจพเฉœเจพ เจ•เจฟเจ‰เจ‚ เจนเฉˆ

เจชเจฟเจ›เจฒเฉ‡ เจฎเจนเฉ€เจจเจฟเจ†เจ‚ เจคเฉ‹เจ‚ เจฎเฉˆเจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ—เฉ‹ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚เฅค เจงเจพเจฐเจฃเจพ เจฆเจพ เจธเจฌเฉ‚เจค (เจฒเจ—เจญเจ—: เจ‡เฉฑเจ• เจตเจฟเจšเจพเจฐ เจฆเฉ€ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ เจชเจฐเจ–เจฃ เจฒเจˆ เจ•เฉ‹เจก) เจ†เจชเจฃเฉ‡ เจ–เจพเจฒเฉ€ เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš, เจ…เฉฐเจธเจผเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจฒเจˆเฅค เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจงเจพเจฐเจจ เจนเจจ เจ…เจคเฉ‡ เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจ‰เจฆเฉ‡เจธเจผ เจจเจนเฉ€เจ‚ เจนเจจ, เจชเจฐ เจ—เฉ‹ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจ…เจจเฉเจญเจต เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจธเจผเจฌเจฆเจพเจ‚ เจฆเจพ เจนเฉฑเจ•เจฆเจพเจฐ เจนเฉˆเฅค เจœเจพเจฃ เจฆเฉ‡ เจตเจพเจ…เจฆเฉ‡ เจ•เจฐเฉ‹ (เจฒเจ—เจญเจ—: 2015 เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจฒเฉ‡เจ–) เจ—เฉฐเจญเฉ€เจฐ เจธเจ•เฉ‡เจฒเฉ‡เจฌเจฒ เจ•เฉ‹เจก เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเจธเจฟเฉฑเจง เจญเจพเจธเจผเจพเฅค เจญเจพเจธเจผเจพ เจ—เฉ‚เจ—เจฒ เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจˆ เจ—เจˆ เจธเฉ€, เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจน เจธเจฐเจ—เจฐเจฎเฉ€ เจจเจพเจฒ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจคเจฒ เจฒเจพเจˆเจจ, เจฎเฉˆเจ‚ เจ‡เจฎเจพเจจเจฆเจพเจฐเฉ€ เจจเจพเจฒ เจธเฉ‹เจšเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ—เฉ‹ เจญเจพเจธเจผเจพ เจฆเจพ เจกเจฟเจœเจผเจพเจˆเจจ เจธเจฎเจพเจฐเจŸ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐเจพเจ‚ เจฒเจˆ เจฎเจพเฉœเจพ เจนเฉˆ.

เจ•เจฎเจœเจผเฉ‹เจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐเจพเจ‚ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ?

เจ—เฉ‹ เจธเจฟเฉฑเจ–เจฃเจพ เจฌเจนเฉเจค เจ†เจธเจพเจจ เจนเฉˆ, เจ‡เฉฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ เจ•เจฟ เจœเจพเจฃ-เจชเจ›เจพเจฃ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจผเจพเจฎ เจฒเฉˆ เจ—เจˆ, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‰เจคเจชเจพเจฆเจ• เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉ‹เจก เจ•เจฐ เจธเจ•เจฆเจพ เจธเฉ€เฅค เจฎเฉˆเจ‚ เจ—เฉ‹ เจธเจฟเฉฑเจ–เจฃ เจฒเจˆ เจตเจฐเจคเฉ€ เจ—เจˆ เจ•เจฟเจคเจพเจฌ เจจเฉ‚เฉฐ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ—เฉ‹ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจฆเฉ€ เจœเจพเจฃ-เจชเจ›เจพเจฃ (เจ…เจจเฉเจตเจพเจฆ), เจ‡เจน เจ”เจจเจฒเจพเจˆเจจ เจ‰เจชเจฒเจฌเจง เจนเฉˆเฅค เจ•เจฟเจคเจพเจฌ, เจœเจฟเจตเฉ‡เจ‚ เจ—เฉ‹ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš, เจชเฉœเฉเจนเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ, เจšเฉฐเจ—เฉ€เจ†เจ‚ เจ•เฉ‹เจก เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจฒเจ—เจญเจ— 150 เจชเฉฐเจจเฉ‡ เจนเจจ เจœเฉ‹ เจ‡เฉฑเจ• เจตเจพเจฐ เจตเจฟเฉฑเจš เจชเฉœเฉเจนเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‡เจน เจธเจพเจฆเจ—เฉ€ เจชเจนเจฟเจฒเจพเจ‚ เจคเจพเจœเจผเจ—เฉ€ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€ เจจเจพเจฒ เจญเจฐเฉ€ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจธเฉฐเจธเจพเจฐ เจตเจฟเฉฑเจš. เจชเจฐ เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจœเจฒเจฆเฉ€ เจœเจพเจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจน เจตเจฟเจšเจพเจฐ เจชเฉˆเจฆเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ: "เจ•เฉ€ เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเจพ เจนเฉˆ?"

เจ—เฉ‚เจ—เจฒ เจฆเจพ เจฆเจพเจ…เจตเจพ เจนเฉˆ เจ•เจฟ เจ—เฉ‹ เจฆเฉ€ เจธเจพเจฆเจ—เฉ€ เจ‡เจธเจฆเฉ€ เจตเจฟเจ•เจฐเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ เจนเฉˆ เจ…เจคเฉ‡ เจญเจพเจธเจผเจพ เจตเฉฑเจกเฉ€เจ†เจ‚ เจŸเฉ€เจฎเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจธ 'เจคเฉ‡ เจธเจผเฉฑเจ• เจนเฉˆเฅค เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเจจ เจœเฉ‹ เจœเจพเจ‚ เจคเจพเจ‚ เจ—เฉเฉฐเจฎ เจนเจจ เจœเจพเจ‚ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจนเจจเฅค เจ…เจคเฉ‡ เจ‡เจน เจธเจญ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฟเจธเจผเจตเจพเจธ เจฆเฉ€ เจ•เจฎเฉ€ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจ‡เจธ เจงเจพเจฐเจจเจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เจฟ เจ‰เจน เจ•เฉเจ เจตเฉ€ เจธเจนเฉ€ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเจจ. เจธเจพเจฆเจ—เฉ€ เจฆเฉ€ เจ‡เจน เจ‡เฉฑเจ›เจพ เจญเจพเจธเจผเจพ เจฆเฉ‡ เจกเจฟเจœเจผเจพเจˆเจจเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจธเฉเจšเฉ‡เจค เจซเฉˆเจธเจฒเจพ เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจน เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจเจฃ เจฒเจˆ เจ•เจฟ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจ•เจฟเจ‰เจ‚ เจธเฉ€, เจธเจพเจจเฉ‚เฉฐ เจตเจฟเจ•เจพเจธเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจน เจœเจพเจฃ เจตเจฟเฉฑเจš เจ•เฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจนเฉ‡ เจธเจจเฅค

เจคเจพเจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจ‡เฉฐเจจเจพ เจธเจฐเจฒ เจ•เจฟเจ‰เจ‚ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ†? เจ‡เฉฑเจฅเฉ‡ เจนเจตเจพเจฒเฉ‡ เจฆเฉ‡ เจ‡เฉฑเจ• เจœเฉ‹เฉœเฉ‡ เจจเฉ‚เฉฐ เจนเจจ เจฐเฉ‹เจฌ เจชเจพเจˆเจ• (เจฒเจ—เจญเจ—: เจ—เฉ‹ เจญเจพเจธเจผเจพ เจฆเฉ‡ เจธเจนเจฟ-เจฐเจšเจจเจพเจ•เจพเจฐเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ•):

เจ‡เฉฑเจฅเฉ‡ เจฎเฉเฉฑเจ– เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ (เจฒเจ—เจญเจ—: Googlers) เจ–เฉ‹เจœเจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจนเจจเฅค เจ‰เจน, เจ‡เฉฑเจ• เจจเจฟเจฏเจฎ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡, เจ•เจพเจซเจผเฉ€ เจœเจตเจพเจจ เจนเจจ, เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจธเจผเจพเจ‡เจฆ เจ‰เจนเจจเจพเจ‚ เจจเฉ‡ เจœเจพเจตเจพ, เจœเจพเจ‚ C/C++, เจœเจพเจ‚ เจชเจพเจˆเจฅเจจ เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เฉ€เจคเจพ เจนเฉ‹เจตเฉ‡เฅค เจ‰เจน เจตเจงเฉ€เจ† เจญเจพเจธเจผเจพ เจจเจนเฉ€เจ‚ เจธเจฎเจ เจธเจ•เจฆเฉ‡, เจชเจฐ เจจเจพเจฒ เจนเฉ€ เจ…เจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‰เจน เจตเจงเฉ€เจ† เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจฌเจฃเจพเจ‰เจฃเฅค เจ‡เจธ เจฒเจˆ เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ€ เจญเจพเจธเจผเจพ เจ‰เจจเฉเจนเจพเจ‚ เจฒเจˆ เจธเจฎเจเจฃ เจ…เจคเฉ‡ เจธเจฟเฉฑเจ–เจฃ เจฒเจˆ เจ†เจธเจพเจจ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค
 
เจ‰เจน เจœเจพเจฃเฉ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจฎเฉ‹เจŸเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ C เจฆเฉ‡ เจธเจฎเจพเจจ เจฌเฉ‹เจฒ เจฐเจฟเจนเจพ เจนเฉˆ. เจ—เฉ‚เจ—เจฒ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจ†เจชเจฃเฉ‡ เจ•เจฐเฉ€เจ…เจฐ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจœเจฒเจฆเฉ€ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจคเจฎเจ• เจญเจพเจธเจผเจพเจตเจพเจ‚, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉ€ เจชเจฐเจฟเจตเจพเจฐ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจชเฉเจฐเฉ‹เจ—เฉเจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจคเฉ‡เจœเจผ เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจญเจพเจธเจผเจพ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ•เฉฑเจŸเฉœเจชเฉฐเจฅเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€เฅค

เจ•เฉ€? เจ‡เจธ เจฒเจˆ เจฐเฉŒเจฌ เจชเจพเจˆเจ• เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เจนเจฟ เจฐเจฟเจนเจพ เจนเฉˆ เจ•เจฟ เจ—เฉ‚เจ—เจฒ เจฆเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ‡เฉฐเจจเฉ‡ เจšเฉฐเจ—เฉ‡ เจจเจนเฉ€เจ‚ เจนเจจ, เจ‡เจธ เจฒเจˆ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‡ เจฎเฉ‚เจฐเจ–เจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจญเจพเจธเจผเจพ เจฌเจฃเจพเจˆ เจนเฉˆ (เจฒเจ—เจญเจ—: dumb down) เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน เจ•เฉเจ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเฅค เจ†เจชเจฃเฉ‡ เจนเฉ€ เจธเจพเจฅเฉ€เจ†เจ‚ เจตเฉฑเจฒ เจ•เจฟเจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจพ เจนเฉฐเจ•เจพเจฐเฉ€ เจจเจœเจผเจฐ เจ† เจฐเจฟเจนเจพ เจนเฉˆ? เจฎเฉˆเจ‚ เจนเจฎเฉ‡เจธเจผเจพ เจ‡เจน เจตเจฟเจธเจผเจตเจพเจธ เจ•เฉ€เจคเจพ เจนเฉˆ เจ•เจฟ Google เจฆเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฐเจคเฉ€ 'เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจšเจฎเจ•เจฆเจพเจฐ เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจฒเฉ‹เจ•เจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจšเฉเจฃเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจฏเจ•เฉ€เจจเจจ เจ‰เจน เจ•เฉเจ เจนเฉ‹เจฐ เจฎเฉเจธเจผเจ•เจฒ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒ เจธเจ•เจฆเฉ‡ เจนเจจ?

เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเจพเจฆเจ—เฉ€ เจฆเฉ€เจ†เจ‚ เจ•เจฒเจพเจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚

เจธเจงเจพเจฐเจจ เจนเฉ‹เจฃเจพ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเจฟเจœเจผเจพเจˆเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฏเฉ‹เจ— เจŸเฉ€เจšเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉเจ เจธเจงเจพเจฐเจจ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจเจพ เจ”เจ–เจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเจฆเฉ‹เจ‚ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ (เจœเจพเจ‚ เจตเฉ€ เจชเฉเจฐเจ—เจŸ) เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ•เจˆ เจตเจพเจฐ เจ‡เฉฑเจ• เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจธเจพเจงเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจœเจŸเจฟเจฒเจคเจพ เจ…เจคเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐเจคเจพ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ€เจ†เจ‚ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเจจ, เจชเจฐ เจ‡เฉฑเจ• เจฎเฉฑเจง เจญเฉ‚เจฎเฉ€ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจญเจพเจธเจผเจพ เจธเจผเจพเจจเจฆเจพเจฐ เจเจฌเจธเจŸเจฐเฉˆเจ•เจธเจผเจจ เจฌเจฃเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจธเจฎเจเจฃ เจ…เจคเฉ‡ เจตเจฐเจคเจฃ เจตเจฟเฉฑเจš เจ†เจธเจพเจจ เจนเจจเฅค

เจฌเจนเฉเจค เจญเจพเจตเจชเฉ‚เจฐเจค เจจเจนเฉ€เจ‚

เจธเจพเจฆเจ—เฉ€ เจชเฉเจฐเจคเฉ€ เจ†เจชเจฃเฉ€ เจตเจšเจจเจฌเฉฑเจงเจคเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจ—เฉ‹ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจฐเจšเจจเจพเจตเจพเจ‚ เจฆเฉ€ เจ˜เจพเจŸ เจนเฉˆ เจœเฉ‹ เจฆเฉ‚เจœเฉ€เจ†เจ‚ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉเจฆเจฐเจคเฉ€ เจธเจฎเจเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจตเจฟเจšเจพเจฐ เจœเจพเจชเจฆเจพ เจนเฉˆ, เจชเจฐ เจ…เจญเจฟเจ†เจธ เจตเจฟเฉฑเจš เจ‡เจธเจฆเจพ เจจเจคเฉ€เจœเจพ เจตเจฐเจฌเฉ‹เจœเจผ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจ•เจพเจฐเจจ เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ - เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฒเจˆ เจฆเฉ‚เจœเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจเจพ เจ†เจธเจพเจจ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจชเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เจน เจธเจฐเจฒเจคเจพ เจธเจฟเจฐเจซ เจชเฉœเฉเจนเจจเจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจจเฉเจ•เจธเจพเจจ เจชเจนเฉเฉฐเจšเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค เจ—เฉ‹ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจธเฉฐเจ–เฉ‡เจช เจธเจผเจฌเจฆ เจจเจนเฉ€เจ‚ เจนเจจ: เจœเจพเจ‚ เจคเจพเจ‚ เจฌเจนเฉเจค เจ•เฉเจ เจœเจพเจ‚ เจ•เฉเจ เจตเฉ€ เจจเจนเฉ€เจ‚เฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจ•เฉฐเจธเฉ‹เจฒ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจœเฉ‹ stdin เจชเฉœเฉเจนเจฆเฉ€ เจนเฉˆ เจœเจพเจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เฉ€:

package main

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

func main() {

    flag.Parse()
    flags := flag.Args()

    var text string
    var scanner *bufio.Scanner
    var err error

    if len(flags) > 0 {

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

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

        scanner = bufio.NewScanner(file)

    } else {
        scanner = bufio.NewScanner(os.Stdin)
    }

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

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

    fmt.Println(text)
}

เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจ•เฉ‹เจก เจœเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เฉ‡ เจ†เจฎ เจนเฉ‹เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ—เฉ‹ เจฆเฉ€ เจœเจผเจฌเจฐเจฆเจธเจคเฉ€ เจตเจฐเจฌเฉ‹เจธเจฟเจŸเฉ€ เจฐเจพเจน เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจจเจพเจฒ เจ•เฉ‹เจก เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจจเจคเฉ€เจœเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเจฟเฉฑเจš เจ‰เจธเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจนเฉฑเจฒ เจนเฉˆ 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);
    }
}

เจ…เจคเฉ‡ เจนเฉเจฃ เจ•เฉŒเจฃ เจœเจผเจฟเจ†เจฆเจพ เจชเฉœเฉเจนเจจเจฏเฉ‹เจ— เจนเฉˆ? เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ€ เจตเฉ‹เจŸ เจกเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจตเจพเจ‚เจ—เจพเฅค เจ‰เจธเจฆเจพ เจ•เฉ‹เจก เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจชเฉœเฉเจนเจจเจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจฆเจพ เจตเจงเฉ‡เจฐเฉ‡ เจธเจชเจธเจผเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค D เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจงเจพเจฐเจจเจพเจตเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ (เจฒเจ—เจญเจ—: เจตเจฟเจ•เจฒเจชเจ• เจซเฉฐเจ•เจธเจผเจจ เจ•เจพเจฒ ะธ เจชเฉˆเจŸเจฐเจจเจ—เฉ‹ เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡, เจชเจฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เฉเจ เจตเฉ€ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจจเจ•เจฒ เจฆเจพ เจจเจฐเจ•

เจ—เฉ‹ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเจธเจฟเฉฑเจง เจธเฉเจเจพเจ… เจธเจพเจงเจพเจฐเจจเจคเจพ เจนเฉˆเฅค เจ‡เจน เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจก เจฆเฉ€ เจฌเฉ‡เจฒเฉ‹เฉœเฉ€ เจ•เจพเจชเฉ€ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉ‚เจฐเจจ เจ…เฉฐเจ•เจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจ•เจฟเจธเจฎ เจฒเจˆ เจ‡เจธเจฆเฉ‡ เจฎเฉ‚เจฒ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจชเฉ€-เจชเฉ‡เจธเจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจฒเจพเจ—เฉ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ; เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจคเจฐเฉ€เจ•เจพ เจจเจนเฉ€เจ‚ เจนเฉˆ:

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 int16Sum(list []int16) (uint64) {
    var result int16 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

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

func main() {

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

    fmt.Println(int8Sum(list8))
    fmt.Println(int16Sum(list16))
    fmt.Println(int32Sum(list32))
    fmt.Println(int64Sum(list64))
}

เจ…เจคเฉ‡ เจ‡เจน เจ‰เจฆเจพเจนเจฐเจฃ เจนเจธเจคเจพเจ–เจฐเจฟเจค เจ•เจฟเจธเจฎเจพเจ‚ เจฒเจˆ เจตเฉ€ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€เฅค เจ‡เจน เจชเจนเฉเฉฐเจš เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจจเจพ เจฆเฉเจนเจฐเจพเจ‰เจฃ เจฆเฉ‡ เจธเจฟเจงเจพเจ‚เจค เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ‰เจฒเฉฐเจ˜เจฃเจพ เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจกเจฐเจพเจˆ), เจธเจญ เจคเฉ‹เจ‚ เจฎเจธเจผเจนเฉ‚เจฐ เจ…เจคเฉ‡ เจธเจชเฉฑเจธเจผเจŸ เจธเจฟเจงเจพเจ‚เจคเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ•, เจœเจฟเจธ เจจเฉ‚เฉฐ เจจเจœเจผเจฐเจ…เฉฐเจฆเจพเจœเจผ เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเจพ เจธเจฐเฉ‹เจค เจนเฉˆเฅค เจ—เฉ‹ เจ…เจœเจฟเจนเจพ เจ•เจฟเจ‰เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ? เจ‡เจน เจญเจพเจธเจผเจพ เจฆเจพ เจ‡เฉฑเจ• เจญเจฟเจ†เจจเจ• เจชเจนเจฟเจฒเฉ‚ เจนเฉˆเฅค

เจกเฉ€ 'เจคเฉ‡ เจ‰เจนเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ:

import std.stdio;
import std.algorithm;

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

เจธเจงเจพเจฐเจจ, เจธเจผเจพเจจเจฆเจพเจฐ เจ…เจคเฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจฌเจฟเฉฐเจฆเฉ‚ เจคเฉฑเจ•. เจ‡เฉฑเจฅเฉ‡ เจตเจฐเจคเจฟเจ† เจ—เจฟเจ† เจซเฉฐเจ•เจธเจผเจจ เจนเฉˆ reduce เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจ•เจฟเจธเจฎ เจ…เจคเฉ‡ เจ…เจจเฉเจฎเจพเจจ เจฒเจˆเฅค เจนเจพเจ‚, เจ‡เจน เจ—เฉ‹ เจธเฉฐเจธเจ•เจฐเจฃ เจจเจพเจฒเฉ‹เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉˆ, เจชเจฐ เจธเจฎเจพเจฐเจŸ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐเจพเจ‚ เจฒเจˆ เจธเจฎเจเจฃเจพ เจ‡เฉฐเจจเจพ เจฎเฉเจธเจผเจ•เจฒ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ•เจฟเจนเฉœเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃเจพ เจ†เจธเจพเจจ เจ…เจคเฉ‡ เจชเฉœเฉเจนเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ?

เจธเจงเจพเจฐเจจ เจ•เจฟเจธเจฎ เจฆเจพ เจธเจฟเจธเจŸเจฎ เจฌเจพเจˆเจชเจพเจธ

เจฎเฉˆเจ‚ เจ•เจฒเจชเจจเจพ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ—เฉ‹ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจฆเฉ‡ เจนเฉ‹เจ เจฎเฉ‚เฉฐเจน 'เจคเฉ‡ เจเฉฑเจ— เจ†เจ‰เจฃเจ—เฉ‡ เจ…เจคเฉ‡ เจšเฉ€เจ• เจฐเจนเฉ‡ เจนเฉ‹เจฃเจ—เฉ‡, "เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจ—เจฒเจค เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹!" เจ–เฉˆเจฐ, เจ‡เฉฑเจ• เจ†เจฎ เจซเฉฐเจ•เจธเจผเจจ เจ…เจคเฉ‡ เจ•เจฟเจธเจฎเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจŸเจพเจˆเจช เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจคเฉ‹เฉœเจฆเจพ เจนเฉˆ!

เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฎเฉ‚เจฐเจ– เจญเจพเจธเจผเจพ เจซเจฟเจ•เจธ เจฆเฉ€ เจ‡เจธ เจ‰เจฆเจพเจนเจฐเจจ 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ‹:

package main

import "fmt"
import "reflect"

func Reduce(in interface{}, memo interface{}, fn func(interface{}, interface{}) interface{}) interface{} {
    val := reflect.ValueOf(in)

    for i := 0; i < val.Len(); i++ {
        memo = fn(val.Index(i).Interface(), memo)
    }

    return memo
}

func main() {

    list := []int{1, 2, 3, 4, 5}

    result := Reduce(list, 0, func(val interface{}, memo interface{}) interface{} {
        return memo.(int) + val.(int)
    })

    fmt.Println(result)
}

เจ‡เจน เจฒเจพเจ—เฉ‚ Reduce เจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจ‰เจงเจพเจฐ เจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€ Go เจตเจฟเฉฑเจš เจฎเฉเจนเจพเจตเจฐเฉ‡ เจธเฉฐเจฌเฉฐเจงเฉ€ เจœเฉˆเจจเจฐเจฟเจ•เจธ (เจฒเจ—เจญเจ—: เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจจเฉเจตเจพเจฆ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเจฟเจ†, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจ–เฉเจธเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€)เฅค เจ–เฉˆเจฐ, เจœเฉ‡เจ•เจฐ เจ‡เจน เจฎเฉเจนเจพเจตเจฐเฉ‡ เจตเจพเจฒเจพ เจนเฉˆ, เจคเจพเจ‚ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจฎเฉเจนเจพเจตเจฐเฉ‡ เจตเจพเจฒเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ‡เจ–เจฃ เจคเฉ‹เจ‚ เจจเจซเจผเจฐเจค เจ•เจฐเจพเจ‚เจ—เจพเฅค เจตเจฐเจคเฉ‹เจ‚ interface{} - เจ‡เฉฑเจ• เจนเจพเจธเจพ, เจ…เจคเฉ‡ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจธเจฟเจฐเจซเจผ เจŸเจพเจˆเจชเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฌเจพเจˆเจชเจพเจธ เจ•เจฐเจจ เจฒเจˆ เจนเฉˆเฅค เจ‡เจน เจ‡เฉฑเจ• เจ–เจพเจฒเฉ€ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจนเฉˆ เจ…เจคเฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจนเจฐ เจ•เจฟเจธเฉ‡ เจฒเจˆ เจชเฉ‚เจฐเฉ€ เจ†เจœเจผเจพเจฆเฉ€ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจฆเฉ€ เจ‡เจน เจธเจผเฉˆเจฒเฉ€ เจฌเจนเฉเจค เจฌเจฆเจธเฉ‚เจฐเจค เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจธเจญ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจเจ•เจฐเฉ‹เจฌเฉˆเจŸเจฟเจ• เจ•เจพเจฐเจจเจพเจฎเฉ‡ เจฒเจˆ เจฐเจจเจŸเจพเจˆเจฎ เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจฐเฉŒเจฌ เจชเจพเจˆเจ• เจ‰เจนเจจเจพเจ‚ เจตเจฟเจ…เจ•เจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจœเฉ‹ เจ‡เจธเจฆเฉ€ เจฆเฉเจฐเจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจธเจจเฉ‡ เจ†เจชเจฃเฉ€ เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจฐเจŸ เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจนเฉˆเฅค

เจ‡เจน เจ‡เฉฑเจ• เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจธเฉฐเจฆ เจนเฉˆ เจœเฉ‹ เจธเจพเจตเจงเจพเจจเฉ€ เจจเจพเจฒ เจตเจฐเจคเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ. เจ‡เจธ เจคเฉ‹เจ‚ เจชเจฐเจนเฉ‡เจœเจผ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจธเจ–เจผเจคเฉ€ เจจเจพเจฒ เจœเจผเจฐเฉ‚เจฐเฉ€ เจจเจพ เจนเฉ‹เจตเฉ‡เฅค

เจฎเฉˆเจ‚ เจ‡เจธ เจฌเจ•เจตเจพเจธ เจฆเฉ€ เจฌเจœเจพเจ เจกเฉ€ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸเจธ เจฒเจตเจพเจ‚เจ—เจพ. เจ•เฉ‹เจˆ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เจนเจฟ เจธเจ•เจฆเจพ เจนเฉˆ interface{} เจตเจงเฉ‡เจฐเฉ‡ เจชเฉœเฉเจนเจจเจฏเฉ‹เจ— เจœเจพเจ‚ เจŸเจพเจˆเจช เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค?

เจจเจฟเจฐเจญเจฐเจคเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฆเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚

เจ—เฉ‹ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฌเจฟเจฒเจŸ-เจ‡เจจ เจจเจฟเจฐเจญเจฐเจคเจพ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจนเฉˆ เจœเฉ‹ เจชเฉเจฐเจธเจฟเฉฑเจง เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจฌเจฃเฉ€ เจนเฉ‹เจˆ เจนเฉˆ VCS. เจ—เฉ‹ เจฆเฉ‡ เจจเจพเจฒ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจŸเฉ‚เจฒ เจ‡เจนเจจเจพเจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก, เจฌเจฟเจฒเจก เจ…เจคเฉ‡ เจ‡เฉฐเจธเจŸเฉŒเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉˆ, เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจจเฉเจ•เจธ เจนเฉˆ! เจนเจพเจ‚, เจ‡เจน เจธเฉฑเจš เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ—เฉ‹ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ—เฉ€เจฅเจฌ เจœเจพเจ‚ เจฌเจฟเฉฑเจŸเจฌเจ•เฉ‡เจŸ เจตเจฐเจ—เฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ…เจคเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉ€ เจ•เฉ€เจฎเจค 'เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจธเจพเจฆเจ—เฉ€. เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเฉ‡ เจซเฉˆเจธเจฒเฉ‡ เจฆเฉ‡ เจคเจฐเจ• เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเจพเจ‚เฅค

เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจนเฉฑเจฒ เจฌเจพเจฐเฉ‡ เจธเจตเจพเจฒ เจชเฉเฉฑเจ›เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ—เฉ‹ เจตเจฟเจ•เจพเจธ เจŸเฉ€เจฎ เจฌเจฃเจพเจˆ เจ—เจˆ เจซเฉ‹เจฐเจฎ เจฅเจฐเจฟเฉฑเจก, เจœเจฟเจธ เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ•เจฟ เจ‰เจน เจ‡เจธ เจฎเฉเฉฑเจฆเฉ‡ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจนเฉฑเจฒ เจ•เจฐเจจ เจœเจพ เจฐเจนเฉ‡ เจธเจจเฅค เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจฟเจธเจผ เจธเฉ€ เจ•เจฟ เจ‡เฉฑเจ• เจฆเจฟเจจ เจคเฉเจนเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจชเฉ‚เจฐเฉ€ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ "เจœเจฟเจตเฉ‡เจ‚ เจนเฉˆ" เจ›เฉฑเจก เจฆเจฟเจ“เฅค เจ‰เจน เจ•เฉ€ เจธเฉ‹เจš เจฐเจนเฉ‡ เจนเจจ? เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจผเจพเจจเจฆเจพเจฐ เจŸเฉˆเจ—เจฟเฉฐเจ— เจ…เจคเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจธเจฎเจฐเจฅเจจ เจฆเฉ‡ เจจเจพเจฒ เจธเจผเจพเจจเจฆเจพเจฐ เจธเฉฐเจธเจ•เจฐเจฃ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ—เฉ‹ เจธเจฟเจฐเจœเจฃเจนเจพเจฐ เจ…เจฃเจกเจฟเฉฑเจ  เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจธเจฟเจฐเจซ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจธเจผเฉ€ เจคเฉ‹เจ‚ เจธเฉฑเจญเจฟเจ†เจšเจพเจฐเจ• เจธเจฎเจพเจจ

เจฎเฉ‡เจฐเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจ—เฉ‹ เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‡ เจ†เจชเจฃเฉ€ เจธเจพเจฐเฉ€ เจ‰เจฎเจฐ C เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจธเฉ€ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจœเฉ‹ เจ•เฉเจ เจจเจตเจพเจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจธเจจเฅค เจญเจพเจธเจผเจพ เจจเฉ‚เฉฐ เจตเจพเจงเฉ‚ เจชเจนเฉ€เจ†เจ‚ เจจเจพเจฒ C เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจฎเฉ‚เจฒ.: เจธเจฟเจ–เจฒเจพเจˆ เจฆเฉ‡ เจชเจนเฉ€เจ). เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจตเฉ€ เจจเจตเฉ‡เจ‚ เจตเจฟเจšเจพเจฐ เจจเจนเฉ€เจ‚ เจนเจจ, เจธเจฟเจตเจพเจ เจธเจฎเจพเจจเจคเจพ เจฒเจˆ เจธเจฎเจฐเจฅเจจ (เจœเฉ‹ เจ•เจฟ, เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, เจธเจผเจพเจจเจฆเจพเจฐ เจนเฉˆ) เจ…เจคเฉ‡ เจ‡เจน เจธเจผเจฐเจฎเจจเจพเจ• เจนเฉˆ. เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ˜เฉฑเจŸ เจตเจฐเจคเฉ‹เจ‚ เจฏเฉ‹เจ—, เจฒเฉฐเจ—เฉœเฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจธเจผเจพเจจเจฆเจพเจฐ เจธเจฎเจพเจจเจคเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ•เฉเจฐเฉ‡เจ•เจฟเฉฐเจ— เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจนเฉˆ เจ•เจฟ เจ—เฉ‹ เจ‡เฉฑเจ• เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจคเจฎเจ• เจญเจพเจธเจผเจพ เจนเฉˆ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเฉ€ เจฆเฉ€ เจšเฉเฉฑเจช เจกเจฐเจพเจ‰เจฃเฉ€)เฅค เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจคเจฎเจ• เจธเจผเฉˆเจฒเฉ€ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฒเจฟเจ–เจฃเจพ เจ–เจคเจฎ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจชเฉเจฐเจพเจคเจจ เจ…เจคเฉ‡ เจชเฉเจฐเจพเจฃเจพ เจฎเจนเจฟเจธเฉ‚เจธ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจœเจพเจฃเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ†เจฌเจœเฉˆเจ•เจŸ เจ“เจฐเฉ€เจเจ‚เจŸเจก เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจ‡เฉฑเจ• เจธเจฟเจฒเจตเจฐ เจฌเฉเจฒเฉ‡เจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจเจฌเจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจจเจ•เฉˆเจชเจธเฉ‚เจฒเฉ‡เจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ†เจชเจฃเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจฒเจˆ เจธเจพเจฆเจ—เฉ€

เจ—เฉ‹ เจจเฉ‚เฉฐ เจธเจงเจพเจฐเจจ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ เจ…เจคเฉ‡ เจ‡เจน เจ‰เจธ เจŸเฉ€เจšเฉ‡ 'เจคเฉ‡ เจธเจซเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ•เจฎเจœเจผเฉ‹เจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐเจพเจ‚ เจฒเจˆ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจ‡เฉฑเจ• เจŸเฉˆเจชเจฒเฉ‡เจŸ เจตเจœเฉ‹เจ‚ เจชเฉเจฐเจพเจฃเฉ€ เจญเจพเจธเจผเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจเฅค เจ‡เจน เจธเจงเจพเจฐเจจ เจšเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฐเจจ เจฒเจˆ เจธเจงเจพเจฐเจจ เจธเจพเจงเจจเจพเจ‚ เจจเจพเจฒ เจชเฉ‚เจฐเจพ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจชเฉœเฉเจนเจจเจพ เจ†เจธเจพเจจ เจ…เจคเฉ‡ เจตเจฐเจคเจฃ เจตเจฟเฉฑเจš เจ†เจธเจพเจจ เจนเฉˆเฅค

เจ‡เจน เจธเจฎเจพเจฐเจŸ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐเจพเจ‚ เจฒเจˆ เจฌเจนเฉเจค เจนเฉ€ เจœเจผเฉเจฌเจพเจจเฉ€, เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจ…เจคเฉ‡ เจฎเจพเฉœเจพ เจนเฉˆเฅค

ะกะฟะฐัะธะฑะพ mersinvald เจธเฉฐเจชเจพเจฆเจจ เจฒเจˆ

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹