編程哥爾夫

編程哥爾夫係一種休閒嘅編程比賽模式，參賽者要用最短嘅程式碼去完成題目。有時比賽嘅名會加埋個程式語言名落去，即係話只限於用呢一種語言，例如Perl golf就係淨係用Perl嘅編程哥爾夫。

歷史 
揀定一種程式語言嘅話，畀一個想要嘅輸出，能夠做到呢個輸出嘅最短程式就係呢個輸出嘅Kolmogorov複雜度，源於1963年Andrey Kolmogorov對佢嘅數學研究。不過，編程哥爾夫係進一步嘅推廣，因為佢唔單止要求一個固定嘅輸出，可以有幾組嘅輸入—輸出，並用文字向參賽者描述題目嘅要求。

「編程哥爾夫」呢個名第一次出現係同Perl語言一齊，之後演變成用Perl嚟寫一個程式嚟做RSA加密，變得更加流行，但係其實喺早期嘅APL程式員之間已經有類似嘅玩法。呢種為咗縮短程式碼無所不用其極嘅玩法嘅難度一早已經被人認知，例如一份1962年Regnecentralen GIER電腦嘅編程手冊就話：「用最短嘅程式碼嚟寫程式係一種嘥時間嘅運動」並建議實際寫程式嗰陣唔好咁做。今時今日嘅編程哥爾夫已經唔在限制於用Perl語言，甚至推動咗一啲專門用嚟玩哥爾夫嘅語言。

詞源 
編程哥爾夫呢個名係嚟自哥爾夫球呢種運動，因為同大部份嘅運動或者遊戲計分方法相反，哥爾夫球係愈低份愈好，編程哥爾夫都一樣，程式碼愈短愈好。

哥爾夫語言 
有好多種程式語言係專登為咗玩編程哥爾夫而創造出嚟嘅，例如GolfScript、Flogscript同Vyxal等等，佢哋係圖靈完整嘅語言，而且有一啲特別嘅指令可以好方便咁縮短程式碼，不過代價就係大大咁犧牲咗可讀性，所以好多都被歸類到esoteric嘅程式語言，唔適合一般產品開發用。不過，有啲設計嚟做一般用途嘅程式語言都好適合用嚟玩哥爾夫。

呢度係一段可以印圓周率頭1000個位出嚟嘅GolfScript碼：;''
6666,-2%{2+.2/@*\/10.3??2*+}*
`1000<~\;佢會「3141592653…」咁樣印1000個位出嚟。

編程哥爾夫嘅網站通常都會包括幾種哥爾夫語言畀啲參賽者用，除咗上面講過嘅幾種之外，仲有05AB1E、Husk、Pyth、CJam、Jelly等等。

編程哥爾夫嘅種類 
有啲編程哥爾夫無任何嘅限制，呢啲題目贏嘅好多時都會係啲專門嘅哥爾夫語言，亦都推動咗好多專明嘅語言誕生。另外，好多題目都有時間限制。

詩碼
 資料壓縮
 極簡化
 Perl
 Kolmogorov複雜度
 Kata (編程)

CodeGolf.StackExchange.com: Questions and answers on programming puzzles and code golf
 List of dedicated golfing languages
 regular expression golfing: a fun variant to code golf
 ShortestWikiContest
 Reverse Code Golf (xkcd)
 有測試系統嘅哥爾夫網站
 Anarchy Golf
 codegolf.club
 code.golf
 JAGC

編程比賽