編程語言居然是魔法咒語!


作為一個本職是程序員的魔幻愛好人士,THE DAY,我終於意識到了!

編程語言,本質上就是一種現代魔法咒語!

如果你不懂魔法的麻瓜,沒關系,讓我一點點來揭開這個世紀大奧妙。

首先我們從最簡單的HTML 開始,這個在技術上稱之為“標記語言”,或者叫結構性語言。

<html><body><h1>召喚惡魔</h1></body></html>

煉金術

這種標記性語言,由眾多的成對標記組成,這其實是一種非常偉大的煉金術魔法!

由簡單的語言標記組成的魔法陣,在魔法陣中的所有物件都會附加特定的魔法效果,或者被轉換成其他物件。

看過鋼之煉金術師的友人們應該非常理解這種煉金術。

但是煉金術不是每個人隨隨便便就能掌握的,需要經過一段不短時間熟讀各種咒語。公開的HTML教程

除此之外,煉金術的第二個必備條件,就是 “運行環境” 

這個其實也是所有魔法都需要具備的條件,就是所在世界的基本運行法則。

眾所周知,在不同的魔法體系里面,都有這不同的世界法則,在我們這個貧瘠的位面,並沒有那些魔幻體系里具備的“魔力”“靈力”等基本要素。

所以就算你手里面拿着一本咒語百科,任意一條都不會起作用。

那么回到HTML,剛才那段咒語的執行環境什么?

聰明的小伙伴一定已經猜出來了,沒錯,就是稱之為“瀏覽器”的東西。

這是一個虛擬容器,只要使用恰當的方式,把剛才那段咒語放入這個容器中,就會實現它原本的作用。

如下:

召喚惡魔

 沒錯,這是一條把文本加粗放大的功能,當然這是一個無足輕重的小技巧而已。

但是如果你真的要把惡魔召喚出來,當然就復雜程度而言,可能會讓我們跑題太遠。

接下來讓我們玩點別的。

召喚術

讓我們召喚一只小白鴿的咒語

<p><img src="https://img2018.cnblogs.com/blog/194179/201902/194179-20190225003028071-1764286030.jpg" alt="" width="190" height="178" /></p>

從虛無之中構建物品,因為現在這個白鴿只能說是紙片白鴿,所以我們叫靜態“物品”,當然還有動態“物品”。能讓它動起來的咒語,叫“動畫編程”

這里已經脫離了煉金術的范疇了,已經不是“等價交換”。

低級別的簡易魔法咒語長度較短,高級別的魔法常常功能強大,但是咒語也會非常冗長。

在實戰中,如果所有的功能都從零開始構建,那么會耗費非常多的時間,在瞬息萬變的戰爭等同於一個固定靶子。這就是

吟唱時間

而且吟唱過程中非常容易受到干擾,這些干擾可能來自於自身能力不足,對編程技術的熟練度不夠,或者對所要達成功能理解不足,對環境理解不足等等,造成了BUG。

修復BUG的過程會繼續增加吟唱時間,也有來自於外部的干擾,比方說友軍“PM”的對話信息,來自戰場的干擾等。

那么為了解決時間上的問題,經驗老道的魔法師會事先准備一些

魔法卷軸

這些卷軸是在平常空閑之余花費更大量的時間與精力把一些實用的復雜咒語刻印在卷軸中。

在編程上稱之為“JDK” 或者工具包 或者API。實際使用時,只需要一句較短的激活咒語就能開啟很復雜的功能。

當然這些卷軸的制作者並不一定是使用者,也可能他人制作,使用者通過購買,或者免費下載。

有一些比較常見的卷軸協會,我們稱之為開源平台,可以免費獲得卷軸,而且這些卷軸的咒語細節也是開放給所有觀看者免費瀏覽,簡直良心。

那么下面我們來談另外一個話題

魔法陣

魔法陣跟咒語的區別在於一個是圖案,一個是口述語言。

那么在編程語言中用圖案的方式來實現功能的方法是什么?

沒錯!就是“可視化編程”,通過特定的工具“IDE”拖拉組件來構建應用。

各種可視化編程工具,VS, Unity3D,dreamWeaver

魔法陣的本質還是咒語,所以所有可視化編程還是可以通過手動寫代碼實現,只是開發效率上會有一定優勢。

剛才我們提到“口述語言”,實質上編程語言不需要念出來,由剛才開頭的簡易例子大家已經知道了,是需要放入到一個虛擬容器之中才能生效。

當然不同的語言也會有不同的容器。

網頁類的 包括html css js 都需要瀏覽器環境,c# 需要“.netframwork” ,java語言需要“jvm”

還有一種很特別的施法技巧,叫

默念施法

施法者可以在心里默念咒語,就可以通過不發聲並且非常快速的釋放咒語。

在編程之中,這叫做“ctrl+c ctrl+v” 通過復制粘貼快速使用一些已有代碼片段。

 

我們知道大型的禁咒魔法通常需要

多人協助施法

 

為了解決多人協作過程,並且復雜度太高的問題。

開發人員想出來一些辦法,比如“面向對象” “二十三設計模式” “面向領域” “面向方面”

這個時候會有另外一種職能被划分出來,“架構師”,大多數時架構師並不在畫面上,而是在看不見地方默默設計,推演。

 

到這里,看到這個風陣的畫面可能有些小伙伴就想起一個基本問題了。

那么對應

元素魔法師

如風火水雷等元素系的魔法,在編程上又是如何體現的?

首先在某些魔法體系里,比如西方魔幻,WOW,魔戒,龍槍系列等,元素系是屬於比較常見魔法。

通常他們的“運行環境”的基本要素就是這些游離元素“風”“火”“水”“雷”散布在整個世界,是世界的基本法則。

那么在編程里的虛擬世界之中,最最基本當然是“0”“1” , 基本元素之上還有復合型的元素,比如風+電= 雷暴 ,水+火=霧

0 與 1 會組合出另外一些邏輯性元素:“與”“或”“非”“異或”等邏輯概念,再往上一層就是由CPU指令與這些邏輯符號組合而成的"匯編語言"元素,左移,右移,存入,復制等

然后再往上一層,就到了我們熟知的高級語言范疇, 變量,數組,對象,循環等等。

 

暗黑系的破壞類魔法對應黑客,光明系的治愈性魔法對應防御類的白帽子。

專攻葯物的魔葯師對應插件開發工程師。

 

這就是現代魔法學,編程開發。

一門可以無中生有並且非常嚴謹的規則推演學科。

可以制造奇幻,也可以毀天滅地。可以點石成金,也可以瞬息千里。

太過美妙!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM