世上最奇葩的6種編程語言,你知道幾種?

曾有一段時間,動態類型語言(也稱為腳本語言)紅極一時。它們易於編寫、易於運行。對呀,為什麼在使用一個變數之前要聲明呢? 為什麼我們一定要一直使用那些注釋呢?所以,當時像 Perl,Python,PHP 和 Ruby 這樣的語言變得非常流行。

但現在已經不一樣了。 現在,只有 Python 還在繼續壯大。其它的腳本語言正逐漸掉出 TIOBE 編程語言排行榜的前20名。因為腳本語言中大多數錯誤都是在運行時才顯示出來。由於大家對質量的要求越來越高,現在幾乎沒人敢用腳本語言編寫重要的大型軟體系統。像 Java 這樣的腳本語言,因為在網路編程中無法避免會使用到,因此也不得不變得更安全可靠。

對於一個 Web 開發人員來說,沒有什麼比花費幾個小時修復 bug 更挫敗的了。我常常會陷入卡住的編程狀態,完全不知道自己在做什麼,就好像我使用的編程語言是外星語一樣。

如果我所描述狀況你覺得很熟悉,那麼希望這篇文章能讓你樂一樂。下文提到的這些「奇葩」編程語言,實際上並沒有什麼正兒八經的用途,只是為了逗你一笑或證明一些概念。但是,它們,真的,很好笑!

1. Ook!

如果你曾感覺自己就像一隻傻傻敲擊鍵盤的猴子,那麼 Ook!就是為你而設計的語言。這是一種主要為靈長類動物,特別是猩猩,設計的語言。 在 Ook!語言里,你只有三個語法元素可以使用:

Ook.

Ook?

Ook!

這兒有一些使用 Ook! 的例子:

你…你懂了嗎?我…我也不懂…

2. Piet

欣賞藝術人一定會喜歡 Piet 這門編程語言。受到抽象藝術家彼埃·蒙德里安(Piet Mondrian)的啟發,Piet 是一種將編程轉換成抽象幾何繪畫的語言。程序由20種不同的顏色組成,然後由編譯器根據十六進位值讀取運行。

我們來看幾個 Piet 程序員給的瘋狂例子:以下都是輸出 Hello World! 的代碼。

簡陋版 Hello World

進階版 Hello World

藝術版 Hello World

大師版 Hello World

同樣一個語句,怎麼差這麼多。事實證明,即使是在 Piet 語言里,程序員的能力也是有高低之分的~

3. Whitespace

十分不幸,這種編程語言所做的正如其名:Whitespace 程序是用……空白格(whitespace)編寫的。 Whitespace 官網上有對該語言使用方式的詳細描述。

大多數現代編程語言並不考慮空格字元(空格,製表符以及換行符),忽略它們,就好像它們不存在一樣。 我們認為,這對這些十分友好的字元成員十分不公正。是否因為它們是隱形的,就應該被忽略呢? Whitespace 就是一種想要糾正這種不公平的編程語言。在 Whitespace 語言里,任何非空白字元都是被忽略的,只能使用空格、製表符和換行符來編寫程序。

以下是用 Whitespace 編寫的 Hello World :

4. Shakespeare

莎士比亞(Shakespeare)正如其名,是以偉大劇作家莎士比亞的作品為基礎的編程語言。在莎士比亞語言中,每個程序都有一個標題、幕、場景和角色,用來組合成精彩的源代碼,讓它們讀起來很有趣。

這裡有一幕用莎士比亞語言編寫的 「Hello World」 :

5. reMorse

reMorse是一種看似莫爾斯電碼的語言。這種簡單而富有挑戰性的語言很容易讓我們聯想到潛艇和電報。 以下是 「Hello World」 的 reMorse 語言版本:

對於我們其他人(除了業餘無線電專家),這種語言還是挺複雜的。 從以上例子都可以看出,連作者都懶得寫完 Hello World 的代碼,你就知道 reMorse 是一個多麻煩的語言了。

6. False

帶著點負面的意義,False 是一種即使是最聰明的程序員也不願意使用的編程語言。 基於 Forth 語言,False 使用基於標點符號的語法(我的媽!),專門用來破壞編程體驗。

False 開發者本人是這樣說的:

我設計的這個語言有兩個目標:用混淆的語法讓每個人都看不懂,並設計一個執行能力極小的強大語言。

然而,False 並不是奇葩語言中最荒謬的一種,實際上,它是可以為現實世界目的服務的,因為它的操作是合理的,而且這個語言也不是非常複雜。 也許有一天,有人會用 False 語言來創造一個有用的真實世界的應用程序,也說不定呢。

參考文獻

【1】10 Most Bizarre Programming Languages Ever Created

【2】TIOBE Index for November 2017: What happened to the ing languages?

小棧編程教育

Scratch 零基礎趣味編程課

我的世界 Python 趣味零基礎編程課

Java 網頁全棧成人班

諮詢報名 & 意向合作

微信/Ministack

微博/小棧學編程

電話 / 010 - 57137023

Scratch | Python | Java

推薦閱讀:

運動課:孩子運動不足,會影響大腦發育
安博教育提示職場菜鳥注意了,這五個雷區千萬別踩!
最新山東單招面試自我介紹範文
被尚德忽悠報名交費,退課未能退款的同學們
運動課:如何利用家長接送孩子的黃金時間,促進續班?

TAG:編程語言 | 教育培訓 | 少兒編程 |