1024!
手持兩把錕斤拷
口中疾呼燙燙燙
今天是個特殊的日子, 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 快樂~!
「 什麼論壇?啥???沒聽過,沒見過,別亂講! 」
※新iphone即將正式發布 除了價格之外基本已經沒有懸念
※如何不在閑魚上被人當成鹹魚?
TAG:差評 |