เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเปœเป‰เบฒเบญเบฑเบšเบญเบฒเบเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบญเบฒเบŠเบตเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบ (เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™)

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

เบญเบฑเบ™เบ”เบฑเบšเบชเบฒเบก - Microsoft C compiler

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

เบฎเบญเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เป‰เบญเบเบˆเบปเบšเบ›เบต 86 เบขเบนเปˆเบ—เบตเปˆ MIT, เบ‚เป‰เบญเบเบเบฑเบ‡เปœเบธเปˆเบก เปเบฅเบฐเบšเปเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™, เบ—เบฑเบ‡เปƒเบ™เบŠเบตเบงเบดเบ” เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบก. เปƒเบ™เบŠเปˆเบงเบ‡เบฅเบถเบฐเป€เบšเบดเปˆเบ‡เบฎเป‰เบญเบ™, เบ‚เป‰เบญเบเป„เบ”เป‰เบเบถเบเบ‡เบฒเบ™เบขเบนเปˆ Microsoft, เปƒเบ™เบ—เบตเบก C compiler, เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ profile, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเป„เบงเป‰เบงเบฒเบ‡เปƒเบˆเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเบกเปˆเบงเบ™เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡ compiler (เบ•เบฒเบกเบ—เบตเปˆเบ‚เป‰เบญเบเบ„เบดเบ”) - backend optimization . เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ” xXNUMX เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบ‡เบฒเบ™เบชเบฒเบ‚เบฒ.

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

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

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเปœเป‰เบฒเบญเบฑเบšเบญเบฒเบเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบญเบฒเบŠเบตเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบ (เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™)

เบšเบปเบ”เบฎเบฝเบ™เบ—เบตเปˆเบ–เบญเบ”เบ–เบญเบ™เป„เบ”เป‰

เบ”เบฑเปˆเบ‡เบ—เบตเปˆ David Patterson เปเบฅเบฐ John Hennessy เบ‚เบฝเบ™เปƒเบ™ Computer Architecture and Computer Systems Design, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบเบฒเบ™เบญเบญเบเปเบšเบšเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เป€เบฎเบฑเบ”เบงเบฝเบเป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบˆเบฐเป„เบงเป„เบ”เป‰.

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

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

เบ‚เป‰เบญเบเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป‚เบ—เบซเบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เปเบฅเบฐเบžเป‰เบญเบกเบเบฑเบšเบฅเบฒเบง, เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบžเบงเบเบกเบฑเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ. เบ‚เป‰เบญเบเบˆเบฐเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบซเบ™เป‰เบญเบ, เปเบ•เปˆเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบต. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบœเบนเป‰เบเปเปˆเบ•เบฑเป‰เบ‡ Stack Overflow Jeff Atwood เบ‚เบฝเบ™, เบชเบฑเบ”เบ•เบนเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบกเปˆเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเป€เบญเบ‡:

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบนเป‰เบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบ•เบฑเป‰เบ‡เปƒเบˆเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบกเบฑเบเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ„เบดเบ”โ€‹เบงเปˆเบฒโ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เป„เบ”เป‰โ€‹เบ”เป‰เบงเบ tape ductโ€‹, crutch homemade เปเบฅเบฐ pinch เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹. เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบกเบฑเบ™เป€เบˆเบฑเบšเบ›เบงเบ”เบเบฑเบš coders เบ—เบตเปˆเบˆเบฐเบเบญเบกเบฎเบฑเบšเบกเบฑเบ™, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆ. เปเบ•เปˆเบฅเบฐเบชเบฒเบเปƒเบซเบกเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ debugging เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบˆ. เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ, เบ—เปˆเบฒเบ™เบ„เบงเบ™เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™เบ”เป‰เบงเบเบ„เบงเบฒเบกเบฅเบฑเบ‡เป€เบฅเปเบฅเบฐเบซเบ™เป‰เบฒเบเบฝเบ”เบŠเบฑเบ‡เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบซเบกเบปเบ”เปเบฅเป‰เบง. เบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบซเบผเบฒเบเบ„เบปเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบฑเบ”เบ•เบนเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

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

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเปœเป‰เบฒเบญเบฑเบšเบญเบฒเบเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบญเบฒเบŠเบตเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบ (เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™)

เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเบชเบญเบ‡: เบเบฒเบ™เป‚เบ„เบชเบฐเบ™เบฒเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเบฑเบ‡เบ„เบปเบก

เป€เบกเบทเปˆเบญเบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ Google เปƒเบ™เบเบฒเบ™เป‚เบ„เบชเบฐเบ™เบฒเบชเบทเปˆเบกเบงเบ™เบŠเบปเบ™เบชเบฑเบ‡เบ„เบปเบก (เบˆเบทเปˆ Myspace?), เบ‚เป‰เบญเบเบ‚เบฝเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰เปƒเบ™ C ++:

for (int i = 0; i < user->interests->length(); i++) {
  for (int j = 0; j < user->interests(i)->keywords.length(); j++) {
      keywords->add(user->interests(i)->keywords(i)) {
  }
}

เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบญเบฒเบ”เบˆเบฐเป€เบซเบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบฑเบ™เบ—เบต: เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบชเบธเบ”เบ—เป‰เบฒเบเบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™ j, เบšเปเปˆเปเบกเปˆเบ™ i. เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เป€เบœเบตเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เปเบฅเบฐเบœเบนเป‰เบ—เบปเบšเบ—เบงเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰. เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐเบ„เบทเบ™เบซเบ™เบถเปˆเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ”เป‰เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐ crashed เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™.

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

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเปœเป‰เบฒเบญเบฑเบšเบญเบฒเบเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบญเบฒเบŠเบตเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบ (เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™)

เบšเบปเบ”เบฎเบฝเบ™เบ—เบตเปˆเบ–เบญเบ”เบ–เบญเบ™เป„เบ”เป‰

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

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

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆ เบšเบญเบ เบเปˆเบฝเบงเบเบฑเบš Thomas Watson, เบซเบปเบงเบซเบ™เป‰เบฒ legendary เบ‚เบญเบ‡ IBM:

เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบฅเบฑเบ”เบ–เบฐเบšเบฒเบ™เบ—เบตเปˆเบกเบตเบกเบนเบ™เบ„เปˆเบฒเบ›เบฐเบกเบฒเบ™เบซเบ™เบถเปˆเบ‡เบฅเป‰เบฒเบ™เป‚เบ”เบฅเบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”. เบšเปเบฅเบดเบชเบฑเบ” IBM - เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, Thomas Watson Sr. เบชเปˆเบงเบ™เบ•เบปเบง - เบ•เป‰เบญเบ‡เบเบฒเบ™เบขเบฒเบเป„เบ”เป‰เบกเบฑเบ™เปเบ—เป‰เป†. เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบœเบนเป‰เบ•เบฒเบ‡เบซเบ™เป‰เบฒเบเปˆเบฒเบเบ‚เบฒเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เป„เบ”เป‰เปเบฅเบฐ IBM เบชเบนเบ™เป€เบชเบเบเบฒเบ™เบชเบฐเป€เบซเบ™เบตเบฅเบฒเบ„เบฒ. เบกเบทเป‰เบ•เปเปˆเบกเบฒ, เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ„เบปเบ™เบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เบซเป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ™เบฒเบ Watson เปเบฅเบฐเบงเบฒเบ‡เบŠเบญเบ‡เบˆเบปเบ”เปเบฒเบเป„เบงเป‰เป€เบ—เบดเบ‡เป‚เบ•เบฐเบ‚เบญเบ‡เบฅเบฒเบง. เบ—เปˆเบฒเบ™ Watson เบšเปเปˆเป„เบ”เป‰เป€เบšเบทเปˆเบญเบ—เบตเปˆเบˆเบฐเป€เบšเบดเปˆเบ‡เบกเบฑเบ™ - เบฅเบฒเบงเบเปเบฒเบฅเบฑเบ‡เบฅเปเบ–เป‰เบฒเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เปเบฅเบฐเบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบˆเบปเบ”เบซเบกเบฒเบเบฅเบฒเบญเบญเบ.

Watson เบ–เบฒเบกเบชเบดเปˆเบ‡เบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ”.

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

Watson เป€เบ‚เบปเป‰เบฒเบซเบฒเบฅเบฒเบงเบ—เบตเปˆเบ›เบฐเบ•เบน, เป€เบšเบดเปˆเบ‡เบฅเบฒเบงเปƒเบ™เบชเบฒเบเบ•เบฒเปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบŠเบญเบ‡เบˆเบปเบ”เบซเบกเบฒเบเบ—เบตเปˆเบกเบตเบ„เปเบฒเบงเปˆเบฒ: "เบ‚เป‰เบญเบเบˆเบฐเบ›เปˆเบญเบเปƒเบซเป‰เป€เบˆเบปเป‰เบฒเป„เบ›เป„เบ”เป‰เปเบ™เบงเปƒเบ”? เบ‚เป‰เบญเบเบžเบฝเบ‡เปเบ•เปˆเบฅเบปเบ‡เบ—เบถเบ™เป€เบ›เบฑเบ™เบฅเป‰เบฒเบ™เป‚เบ”เบฅเบฒเปƒเบ™เบเบฒเบ™เบชเบถเบเบชเบฒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ.

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

เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เปเบฒเบญเบดเบ”: App Inventor API

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

เบฎเป‰เบฒเบโ€‹เปเบฎเบ‡โ€‹เบเบงเปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบ”เบตเบโ€‹เบงเปˆเบฒ

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

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

เบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒ, เบ”เบตเบเบงเปˆเบฒ: เบเบฒเบ™เบญเบญเบเปเบšเบšเบ„เบงเบ™เบˆเบฐเบ‡เปˆเบฒเบเบ”เบฒเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš. เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเบเปˆเบงเบฒเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš.

เบ‚เปเปƒเบซเป‰เบฅเบทเบกเบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบ—เบต. เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฅเบทเบกเบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบฅเบฒเบเบ›เบต.

เบœเบนเป‰เบ›เบฐเบ”เบดเบ”เปเบญเบฑเบš

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ Google, เบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™ เบœเบนเป‰เบ›เบฐเบ”เบดเบ”เปเบญเบฑเบš, เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบญเบญเบ™เป„เบฅเบ™เปŒเปเบšเบšเบฅเบฒเบเปเบฅเป‰เบงเบงเบฒเบ‡เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ Android เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบกเบฑเบ™เปเบกเปˆเบ™เบ›เบต 2009, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบฎเบตเบšเบฎเป‰เบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบญเบเป€เบงเบตเบŠเบฑเบ™เบญเบฑเบ™เบŸเบฒเปƒเบซเป‰เบ—เบฑเบ™เป€เบงเบฅเบฒเป€เบžเบทเปˆเบญเบงเปˆเบฒเปƒเบ™เบฅเบฐเบ”เบนเบฎเป‰เบญเบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™เปเบกเปˆเบšเบปเบ”เบชเปเบฒเบฅเบฑเบšเบ„เบนเบชเบญเบ™เบœเบนเป‰เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปƒเบ™เป€เบงเบฅเบฒเบชเบญเบ™เปƒเบ™เบฅเบฐเบ”เบนเปƒเบšเป„เบกเป‰เบ›เบปเปˆเบ‡. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบญเบฒโ€‹เบชเบฒโ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เป€เบžเบทเปˆเบญโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” spritesโ€‹, nostalgic เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ‚เบฝเบ™โ€‹เป€เบเบกโ€‹เปƒเบ™ TI-99/4โ€‹. เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰, sprite เปเบกเปˆเบ™เบงเบฑเบ”เบ–เบธเบเบฒเบŸเบดเบเบชเบญเบ‡เบกเบดเบ•เบดเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเปเบฅเบฐเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบŠเบญเบšเปเบงเบญเบทเปˆเบ™เป†. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ sprites เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบญเบฐเบงเบฐเบเบฒเบ”, เบ”เบฒเบงเป€เบ„เบฒเบฐเบ™เป‰เบญเบ, marbles, เปเบฅเบฐ rackets.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ” App Inventor เบฎเบฑเบ”เบเบธเบกเบงเบฑเบ”เบ–เบธเปƒเบ™ Java, เบชเบฐเบ™เบฑเป‰เบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบŠเปเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบขเบนเปˆเปƒเบ™เบ™เบฑเป‰เบ™. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบšเบฒเบ™เปเบฅเบฐ sprites เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบซเบผเบฒเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ sprite abstract เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” (เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก) X, Y, เบ„เบงเบฒเบกเป„เบง (เบ„เบงเบฒเบกเป„เบง) เปเบฅเบฐเบซเบปเบง (เบ—เบดเบ”เบ—เบฒเบ‡). เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™ collision, bouncing เบญเบญเบเบ‚เบญเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบˆเป, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ•เบปเป‰เบ™เบ•เปเบฅเบฐเบซเบงเปˆเบฒเบ‡เบšเบฒเบ™เปเบฅเบฐ sprite เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเปเบ•เป‰เบก - เบงเบปเบ‡เบกเบปเบ™เบซเบผเบท raster. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ” sprites เบ—เปเบฒเบญเบดเบ”, เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบˆเบฐเบฅเบฐเบšเบธ x- เปเบฅเบฐ y-coordinates เบ‚เบญเบ‡เบกเบธเบกเบŠเป‰เบฒเบเป€เบ—เบดเบ‡เบ‚เบญเบ‡เบšเปˆเบญเบ™เบ—เบตเปˆเบฎเบนเบšเบžเบฒเบšเบ•เบฑเป‰เบ‡เบขเบนเปˆ.

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

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

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

เปƒเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰ patched bug เบ™เบตเป‰โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบšเปเปˆโ€‹เบ”เบปเบ™โ€‹เบกเบฒโ€‹เบ™เบตเป‰, เบชเบดเบšโ€‹เบ›เบตโ€‹เบ•เปเปˆโ€‹เบกเบฒ. "Patched", เบšเปเปˆเปเบกเปˆเบ™ "เปเบเป‰เป„เบ‚", เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ Joshua Bloch เป€เบงเบปเป‰เบฒเบงเปˆเบฒ, APIs เปเบกเปˆเบ™เบ•เบฐเบซเบผเบญเบ”เป„เบ›. เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” OriginAtCenter เบ—เบตเปˆเบกเบตเบ„เปˆเบฒ false เปƒเบ™เป‚เบ›เบผเปเบเบผเบกเป€เบเบปเปˆเบฒเปเบฅเบฐเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”. เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบ–เบฒเบกโ€‹เบ„เปเบฒโ€‹เบ–เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เป€เบซเบ”โ€‹เบœเบปเบ™โ€‹: เบœเบนเป‰โ€‹เบ—เบตเปˆโ€‹เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบ„เบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบงเบฒเบ‡โ€‹เบˆเบธเบ”โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบขเบนเปˆโ€‹เบšเปˆเบญเบ™โ€‹เบญเบทเปˆเบ™โ€‹เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบชเบนเบ™โ€‹เบเบฒเบ‡โ€‹. เป€เบ–เบดเบ‡โ€‹เปƒเบœ? เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ„เบปเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ‚เบตเป‰เบ„เป‰เบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡ API เบ›เบปเบเบเบฐเบ•เบดเป€เบกเบทเปˆเบญเบชเบดเบšเบ›เบตเบเปˆเบญเบ™.

เบ–เบญเบ”โ€‹เบ–เบญเบ™โ€‹เบšเบปเบ”โ€‹เบฎเบฝเบ™

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบš APIs (เป€เบŠเบดเปˆเบ‡เป€เบเบทเบญเบšเบ—เบธเบเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบšเบฒเบ‡เบ„เบฑเป‰เบ‡), เบ—เปˆเบฒเบ™เบ„เบงเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบงเบดเบ”เบตเป‚เบญเบ‚เบญเบ‡ Joshua Bloch "เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡ API เบ—เบตเปˆเบ”เบตเปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™"เบซเบผเบท เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบชเบฑเป‰เบ™เบ™เบตเป‰:

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

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

เบซเบปเบงเบ‚เปเป‰เบ‚เบญเบ‡เบšเบปเบ”เบ‚เบฝเบ™เบ‚เบญเบ‡ Richard Gabriel, "Worse Is Better," เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ‚เปเป‰เป„เบ”เป‰เบ›เบฝเบšเบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปƒเบ™เบเบฒเบ™เบ•เบฐเบซเบผเบฒเบ” - เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบš - เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เบปเบ™เบญเบทเปˆเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ•เบฐเบซเบผเบญเบ”เป„เบ›เป€เบžเบทเปˆเบญเบ„เบปเป‰เบ™เบซเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบš. เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡เบฅเบฐเบซเบฑเบ” sprite, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบ–เบทเบเบ•เป‰เบญเบ‡. เบšเปเปˆเบงเปˆเบฒเปƒเบœเบˆเบฐเป€เบงเบปเป‰เบฒ, เบ‚เป‰เบญเบเป€เบ‚เบปเป‰เบฒเปƒเบˆเบœเบดเบ”เบขเปˆเบฒเบ‡เบฎเป‰เบฒเบเปเบฎเบ‡.

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

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

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

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

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