1024!_風聞
差评-差评官方账号-2018-10-25 07:28
文/差評 差評君
今天是個特殊的日子, 10 月 24 日。( 不是 25 日 ! )
差評君想了想,之前和大家分享過一些搞笑編程語言,趁着今天這個日子,再拿出來和各位程序員們一起樂一樂 ~
順帶一提,差評君今天又發現了更多的搞笑編程語言。
不少人對於程序員的印象可能是這樣的↓
但差評君發現了一門編程語言,它可以讓寫程序的人變成這樣↓
這是一門叫 ArnoldC 的編程語言
沒錯,ArnoldC 裏的 Arnold 指的是阿諾德·施瓦辛格
為毛編程語言會和電影演員扯上關係,差評君給大家介紹一下這個玩意兒你們就知道為啥這麼叫了。。。
“ ArnoldC : 一門受到阿諾德·施瓦辛格在終結者2電影中的表演而啓發的編程語言 ”
差評君為了讓不瞭解編程的差友們也能看懂,簡單説兩句啥是編程語言,有技術背景的可以考慮跳過。
編程説白了就是你寫一段話(一段代碼)去命令電腦做事兒。
概念上説來簡單,但電腦不懂人話,只懂機器語言,而且機器語言我們人類用着不太趁手,它們大多長這個樣兒↓
編程語言就是一套我們人類用起來舒服一點的命令。
一門語言還有一套對應的編譯工具,類似於一位翻譯官,把你説的命令轉成機器語言給電腦運行。
比如説你用 Python 告訴電腦輸出一句話 “ Hello World ”,你可以這麼寫:
print(“Hello World”)
其實很好理解,print 就是打印的意思,上面這句話就是讓電腦把括號裏的內容打印到顯示屏上來。
運行一下~
ArnoldC 這個語言是基於 Java 開發的,裏面的用詞****取自電影 《終結者2》 裏阿諾德·施瓦辛格的台詞,很是獵奇。。。
比如説上面那個打印命令,在 ArnoldC 裏,要寫成 TALK TO THE HAND
這個短語 “ talk to the hand ”,大意是用一種鄙視的語氣讓對方説話,類似於中文的 “ 有屁快放 ” 。。。
類似的獵奇詞句還有很多,而且全部都要大寫,給人一種霸氣外露的感覺。
每個程序最後還要致敬經典台詞,來一句 YOU HAVE BEEN TERMINATED
差評君裝了一下這個語言,按照開發者給的提示寫了個簡單程序
覺得自己敲的每一行字都自帶冷酷的語氣
然後編譯的時候報了個錯( 就是翻譯官説我下的命令有問題 )
重點是這個報錯的語氣挺有態度的。。。
差評君稍微改了改,再運行一下
成功輸出了 Hello World !
再舉個例子大家感受一下,打個比方,你想寫個程序把數字 1 到 10 打印一下
這是用 C 語言寫的,看不懂沒事兒~
( 其實這段話哪怕不會編程,只要懂英語,也不難理解,一個數一開始等於 1,當它小於等於 10 的時候就重複兩件事:1. 打印自己 2. 給原來的值加 1 )
這是用 Arnold C 寫的程序,大致直接翻譯裏面的短語
其實輸出結果是一樣的:
但是差評君寫完後面的程序,覺得自己酷到飛起~
其實呢程序員比你們想象得要會玩兒,除了這個 ArnoldC,不正經編程語言多了去了
例如 Cow 語言
沒錯,這個 Cow 就是牛。。。
這個 cow 語言和上面提到的 ArnoldC 一樣,是可以編譯並且成功運行的!
語法是根據牛的叫聲 “ moo ” 進行一些變化,例如 “ Moo ” 和 “ mOo ” 代表的是不同意思,來實現不同的命令。。。
開發人員提供的開發文檔,一本正經有沒有!
下面這個程序的源代碼可以印出一句 “ Hello World ”↓
再來看這門叫 INTERCAL 的彙編語言,它的特點是要求程序員非常有禮貌,你得加上一些 PLEASE ( 請 )。
INTERCAL 寫的 Hello World 程序
更獵奇的是,你要是 PLEASE 用得太多了,會顯得過於刻意,編譯的時候有一定幾率不給你通過。。。
還有一些語言屬於沒事兒增加難度類型的搞笑。。。
比如下面要介紹的 Brainfuck 的語言,它寫個 Hello World 的話,源代碼長這樣↓
是不是超級難,看不懂?
所以它叫 Brainfuck 嘛,就是你沒事兒寫它就好比在 gan 自己的大腦。。。
再看另一門語言, Whitespace(空格),它的特點是所有程序都是空白,編譯器只把空格和換行符號視為有效的代碼。
這是用 Whitespace 代碼寫的 Hello World
誰特麼看得出寫了啥啊?
其實要是把它選中高亮一下,還是有 “ 內容 ” 的
嗯。。。雖然這門語言看起來很難,但是寫起來一定很爽,可以啪啪啪狂敲鍵盤!
以上編程語言都有人做了完整的編譯器,真的可以拿來開發程序!
差評君再放一些奇葩語言寫的 Hello World 程序感受一下
皮卡丘專用語言
這個語言就叫 fuck ↓
還有華盛頓大學的一名教授 Doug Zongker,搞了個 Chicken 的語言
雞語言版 Hello World,也就 546 個 Chicken 吧。。。
人家搞學術的就是認真,還發表了個論文
而且還特麼被引用了 17 次 ?!!!
類似的這類編程語言叫做 esoteric programming language ,意思是 “ 深奧的編程語言 ” ,經常簡寫成 “ esolang ” 。
Esolang 的開發者們並不打算讓它們成為主流編程語言,畢竟作為工具 esolang 也太蹩腳了。。。
Brainfuck 作者寫的升級版,叫 “ ( ͡° ͜ʖ ͡°)fuck ”
這些語言雖然易用性差得一逼,但是一定是能用的,這才能保證它們還是 “ 編程語言 ” 。
這些語言為啥要拋棄可用性,做那些可有可無的事情呢?
你想想,最早古代人畫畫是為了記錄場景,可後來衍生出了印象派,野獸派等等完全和 “ 寫實 ” 脱離的繪畫流派。
Esolang 和那些後來的畫派一樣,在試圖探索藝術的邊界,只不過出發點是編程語言。
比如有一門語言 “ Shakespeare ” ,目的是使程序看起來像莎士比亞的戲劇。
一個簡單的條件判斷,都會寫成一段台詞 ( 註釋為翻譯 ):
Juliet:
Am I better than you?
//茱麗葉:我比你更好嗎?
Hamlet:
If so, let us proceed to scene III.
//哈姆雷特:如果是真的,那就讓我們來到第三場。
創作者在代碼溜的飛起的同時,一定是個戲劇愛好者。
而一門叫 “ Rockstar ” ( 搖滾巨星 ) 的語言,則通過編程語言體現了 80 年代西方搖滾樂研究。
一句簡單的,把兩個變量相乘的 Rockstar 代碼:
Put the whole of your heart into my hands.
//把你的全部心意放在我的手掌上
上一句代碼,簡直是當年流行搖滾歌詞的一個模版,體現了 80 年代流行搖滾的精髓。。。( 瞎説的 )
還有一門叫 Piet 的編程語言,則使用了深奧的視覺空間語法。
以下是它的代碼示範:
//這有什麼好寫註釋的啊喂!!!
程序是通過指針依次經過一個個色塊,來執行一項項操作的。。。
這個畫風瞭解過藝術史的差友們都知道,是荷蘭畫家蒙德里安的 “ 幾何形體派 ” , 主張幾何形體與簡單色彩構成的形式美。
講到這裏,你想到了啥?
沒錯,就是程序員們最愛的格子襯衫。
現在你懂了吧?喜歡世人嘲笑程序員不懂時尚,畢竟追求****藝術的道路是孤獨的。
關於 esolang 在藝術道路上的探索,例子有很多,差評君根本舉不完;
關於這些藝術的説法也有很多,差評君編不下去了。。。
不過 esolang 也是程序員造出來的,其實他們一點也不木訥,還充滿了藝術追求。
致敬這些偉大,有趣,同時又想改變世界的工程師, 1024 快樂~!
“ 什麼論壇?啥???沒聽過,沒見過,別亂講! ”
