趙澤睿
關(guān)鍵詞:法典化公平提示原則 代碼 軟件工程 數(shù)字時(shí)代 算法
法典擔(dān)負(fù)著重建社會(huì)共識(shí)、聚力社會(huì)發(fā)展的歷史重任。在當(dāng)前推進(jìn)數(shù)字化轉(zhuǎn)型的背景下,討論數(shù)字時(shí)代的法典化對(duì)建設(shè)數(shù)字中國(guó)與中國(guó)特色社會(huì)主義法治體系均具有重要意義。在此意義上,民法典并非法典化運(yùn)動(dòng)的結(jié)束,實(shí)則其他部門法法典化的開始。習(xí)近平總書記在中央全面依法治國(guó)工作會(huì)議上指出:“民法典為其他領(lǐng)域立法法典化提供了很好的范例,要總結(jié)編纂民法典的經(jīng)驗(yàn),適時(shí)推動(dòng)條件成熟的立法領(lǐng)域法典編纂工作。”全國(guó)人大常委會(huì)也將“啟動(dòng)環(huán)境法典、教育法典、行政基本法典的編纂工作”列入其2021年的立法工作計(jì)劃。刑法、刑事訴訟法、行政法、環(huán)境法、知識(shí)產(chǎn)權(quán)法與教育法領(lǐng)域的學(xué)者也紛紛就如何推進(jìn)該領(lǐng)域的法典化展開研討,法典化一時(shí)間成為法學(xué)學(xué)者們共同關(guān)注的話題。
在此背景下,國(guó)內(nèi)法典化的現(xiàn)有研究主要分為以下三類。第一類聚焦具體領(lǐng)域的法典化實(shí)踐。其包括在已有法典的民法領(lǐng)域探討民法典對(duì)我國(guó)民法實(shí)踐的影響及進(jìn)一步完善法典的路徑, 以及在未有法典的行政法、環(huán)境法、教育法等領(lǐng)域探討法典化的意義與必要性,并提出具體的法典編纂建議。第二類則聚焦法典化運(yùn)動(dòng)的比較研究。其主要通過對(duì)比我國(guó)當(dāng)下的法典編纂與歷史上羅馬、法國(guó)和德國(guó)的法典化運(yùn)動(dòng)存在的異同,為我國(guó)未盡的法典化運(yùn)動(dòng)提供歷史經(jīng)驗(yàn),并據(jù)此闡釋我國(guó)法典化運(yùn)動(dòng)的歷史特殊性。第三類則聚焦法典與法典化的概念分析和類型化研究。其通過歷史梳理與類型劃分的方式,闡明法典及法典化的概念含義、價(jià)值追求、立法技術(shù)與內(nèi)部機(jī)理。
這些討論大多面向歷史且站在立法者的視角,探究法典化運(yùn)動(dòng)是否可能或者如何形成一套具備完整性、體系性、邏輯性和普遍性的法典。但這些討論忽略了兩個(gè)關(guān)鍵問題:一是法典編纂后該如何保障其后續(xù)不斷修訂的動(dòng)態(tài)發(fā)展過程合理且正當(dāng);二是法典化運(yùn)動(dòng)未來該如何結(jié)合數(shù)字技術(shù)進(jìn)行發(fā)展,即如何彰顯數(shù)字時(shí)代法典化的時(shí)代特征。對(duì)此,本文將以法律的公平提示原則為核心,論述法典化在化簡(jiǎn)分散立法的復(fù)雜性時(shí)所面臨的發(fā)展悖論,以及在數(shù)字時(shí)代的法典化中提出“法律即代碼”觀念的時(shí)代意義。同時(shí),本文也將結(jié)合軟件工程學(xué)的基礎(chǔ)概念、理論和技術(shù),從法律的公平提示原則推導(dǎo)出“法律即代碼”的實(shí)現(xiàn)路徑與落實(shí)方案,為計(jì)算法學(xué)視野下的立法研究提供方向。最后,本文將結(jié)合當(dāng)下熱議的“代碼即法律”觀念與本文提出的“法律即代碼”觀念,進(jìn)一步將法律的公平提示原則發(fā)展為代碼的公平提示原則,將國(guó)家治理的法典編纂與修訂原則延伸為平臺(tái)自治的代碼設(shè)計(jì)與修訂原則,為解決代碼黑箱問題提供一種程序性視角。
一、“法律即代碼”對(duì)法典化的意義
“法典(Code),是指在某一個(gè)法律主題之下將既有的和新設(shè)的規(guī)范進(jìn)行體系化集成之后形成的具有單一性和完整性的法律文本。而法典化,則是指國(guó)家推進(jìn)并形成法典的事業(yè)。”法典化的興起是為了應(yīng)對(duì)分散立法所引發(fā)的法律冗雜化和碎片化,以實(shí)現(xiàn)法律的公平提示原則。然而持續(xù)不斷的立法與修法讓內(nèi)容繁多、結(jié)構(gòu)復(fù)雜的法典本身也成為法律適用復(fù)雜性的來源,無法高效、動(dòng)態(tài)管理繁多法律文本的法典化運(yùn)動(dòng)反而阻礙了法律公平提示原則的實(shí)現(xiàn),進(jìn)而形成了法典化的發(fā)展悖論。因此,數(shù)字時(shí)代的法典化應(yīng)當(dāng)提出“法律即代碼”的觀念,并利用軟件工程學(xué)中處理代碼文本的數(shù)字技術(shù)實(shí)現(xiàn)法典化的數(shù)字化,據(jù)此打破法典化的發(fā)展悖論,保障數(shù)字時(shí)代法典化中的公平提示原則。
(一)作為法典化動(dòng)因的公平提示原則
公平提示原則是指“政府在依據(jù)一項(xiàng)法律規(guī)則要求其公民承擔(dān)相應(yīng)的法律責(zé)任之前,公民必須被告知并理解該法律規(guī)則”。其在歷史發(fā)展中演化出了對(duì)法律的三項(xiàng)核心要求。其一,法律的發(fā)布要求。政府必須正式頒布其所適用的法律規(guī)則。其二,法律的公民認(rèn)知要求。政府有義務(wù)積極地讓公民認(rèn)知并理解其所頒布的法律內(nèi)容。其三,法律的清晰度要求。政府有義務(wù)保障其所頒布的法律明確清晰,避免含糊或不連貫的規(guī)定縱容權(quán)力濫用。公平提示原則最早在雅典的希臘獲得關(guān)注,當(dāng)時(shí)的公眾普遍要求政府公布其法律,進(jìn)而導(dǎo)致“政府應(yīng)當(dāng)正式頒布其法律”成為法治國(guó)家的標(biāo)準(zhǔn)做法。多位著名法學(xué)家也在不斷強(qiáng)調(diào)這項(xiàng)蘊(yùn)含于法治文明根基的基本原則。約翰·洛克在其《政府論》中便論述了法律的發(fā)布要求對(duì)社會(huì)運(yùn)作的重要性,其認(rèn)為法律的正式頒布與公民對(duì)這些法律的認(rèn)識(shí)將保障公民對(duì)其自由和財(cái)產(chǎn)的信心,進(jìn)而確保社會(huì)運(yùn)作的高效與穩(wěn)定。杰里米·邊沁則在其著述中進(jìn)一步明確了法律的公民認(rèn)知要求,其認(rèn)為公平提示原則遠(yuǎn)不止賦予了政府頒布法律的義務(wù),更要求政府積極努力地將法律告知公民,只有公民認(rèn)識(shí)到法律,才算滿足公平提示原則的要求。而公平提示原則中的清晰度要求則最早由塞繆爾·普芬多夫提出, 其認(rèn)為法律的公平提示原則不僅要求政府要讓其公民知道法律的存在,還要能讓公民明確知道法律的具體含義,因此法律的頒布若要有意義就必須清晰明確。這些關(guān)于公平提示原則的思想論述為當(dāng)代憲法的禁止溯及既往、禁止司法創(chuàng)造和禁止正當(dāng)程序模糊等重要條款奠定了理論基礎(chǔ)。
而保障法律的公平提示原則也是法典化運(yùn)動(dòng)興起的主要?jiǎng)右蛑???v觀歷史,各國(guó)進(jìn)行法典化運(yùn)動(dòng)的目的皆是解決分散立法在社會(huì)變動(dòng)中不斷冗雜化和碎片化而引發(fā)的法律適用復(fù)雜和理解爭(zhēng)議增多等破壞法律公平提示原則的問題。例如,1794年普魯士立法機(jī)構(gòu)以追求法典的清晰易懂與完整性為目標(biāo),頒布了被認(rèn)為是定義了現(xiàn)代法典體系性特征的普魯士法,此時(shí)的公平提示原則為18、19世紀(jì)的法學(xué)家們追求法典體系內(nèi)部的邏輯性、一致性和完整性提供了正當(dāng)性依據(jù)。甚至在20、21世紀(jì)的德國(guó)環(huán)境法法典化過程中,如何通過法典化運(yùn)動(dòng)解決過去立法分散引發(fā)的適用復(fù)雜與理解爭(zhēng)議等破壞法律公平提示原則的問題,再次成為德國(guó)法學(xué)家的熱議話題。英、美等普通法系國(guó)家的法典編纂雖然在技術(shù)層面與大陸法系國(guó)家不同,但其同樣也是為了在法律不斷冗雜化與碎片化的趨勢(shì)下保障法律的公平提示原則。如美國(guó)國(guó)會(huì)于1795年授權(quán)第一次聯(lián)邦法規(guī)匯編便是為了讓法律更加簡(jiǎn)單明了,以此便于公眾獲知法律,解決因司法意見堆積導(dǎo)致的法律解釋分歧與爭(zhēng)議。正如韋伯在探究法典化運(yùn)動(dòng)背后的社會(huì)原因時(shí)所總結(jié)的:“法典化運(yùn)動(dòng)的興起,是因?yàn)榉ǖ鋼碛校ɑ蛘咧辽俳o人一種擁有的印象)非凡的清晰度和精準(zhǔn)的可理解性。”
無論大陸法系還是英美法系,隨著法治的不斷完善與發(fā)展,國(guó)家都需要以一種能夠促進(jìn)理解和樹立權(quán)威的樣式呈現(xiàn)一套公認(rèn)的法律權(quán)威文本,以此塑造期望和規(guī)范行為。這也解釋了為何我國(guó)當(dāng)下開始在多個(gè)領(lǐng)域開展法典化運(yùn)動(dòng)。隨著我國(guó)法治建設(shè)的推進(jìn),正式頒布的法律法規(guī)數(shù)量不斷增多、領(lǐng)域不斷擴(kuò)張,立法的冗余與碎片化為政府適用法律與公民理解法律帶來了困難,為了保障法律的公平提示原則,法典化運(yùn)動(dòng)必不可少。例如,我國(guó)現(xiàn)有的行政法數(shù)量繁多且混亂,出現(xiàn)了彼此間重復(fù)、矛盾的嚴(yán)重現(xiàn)象,而這正是我國(guó)學(xué)者推動(dòng)行政法典編纂的正當(dāng)性理由。
(二)法典化的發(fā)展悖論與“法律即代碼”的意義
但是法典化運(yùn)動(dòng)并非一勞永逸的事業(yè),法典為了適應(yīng)社會(huì)發(fā)展需要不斷地?cái)U(kuò)充與修訂,而法典的擴(kuò)充與修訂過程反而會(huì)產(chǎn)生新的復(fù)雜性,這些復(fù)雜性不斷積累將會(huì)產(chǎn)生一套沒有任何個(gè)人可以完全理解的法典,進(jìn)而破壞法典化的初衷———法律的公平提示原則。 因?yàn)榉ǖ錇榱俗非笸暾?、體系性、邏輯性和普遍性,其在動(dòng)態(tài)發(fā)展過程中必然會(huì)面臨著大量法律文本的冗雜問題,這將會(huì)對(duì)法律的適用造成如下三方面的重要影響:其一,過于龐大、復(fù)雜的法典會(huì)導(dǎo)致公民的訴訟成本不斷增加并造成法治效率低下。對(duì)此,美國(guó)一些針對(duì)民事訴訟成本的實(shí)證調(diào)研顯示,在美國(guó)推動(dòng)法典化進(jìn)程后,花費(fèi)在與法治相關(guān)的時(shí)間、人力和金錢成本不斷增加,并在當(dāng)代的法治社會(huì)形成了數(shù)額龐大的必要開銷,這對(duì)大型公司都造成了巨大負(fù)擔(dān)。其二,隨著法典規(guī)模的擴(kuò)大,法律條文之間的相互作用導(dǎo)致立法機(jī)構(gòu)與司法機(jī)構(gòu)無法有效協(xié)同地使用法典。已有學(xué)者指出,目前主流的以等級(jí)化格式和編號(hào)、主題分類和交叉引用為特征的系統(tǒng)化法典編纂雖然降低了立法機(jī)構(gòu)的制定成本,但法院獲知特定案件所涉及的法律的信息成本正在指數(shù)式地增長(zhǎng)。這會(huì)逼迫繁忙的法官更多地關(guān)注法典單個(gè)字詞和法條,而忽視整個(gè)法律的整體政策目標(biāo),同時(shí)也會(huì)誘發(fā)過度犯罪等一系列的司法負(fù)面效應(yīng)。其三,由于法典對(duì)普遍性、完整性和體系性的追求,法典對(duì)絕大多數(shù)公民來說會(huì)變得越來越不透明,公民難以完整、正確地理解法律。對(duì)此,一些學(xué)者已經(jīng)哀嘆普通公眾在缺少律師的情況下已難以理解復(fù)雜的現(xiàn)有法律。而當(dāng)法典的復(fù)雜程度超出一般公眾所能理解的范疇后, 法典化運(yùn)動(dòng)便猶如羅馬皇帝尼祿(Nero)將其法律列于高塔之上一般,因公民無法看懂與理解而變得毫無價(jià)值。這三個(gè)影響將會(huì)導(dǎo)致法典在動(dòng)態(tài)發(fā)展的過程中逐漸脫嵌于社會(huì),最終形成法典化的發(fā)展悖論。
因此,為了在數(shù)字時(shí)代的法典化進(jìn)程中打破法典化的發(fā)展悖論,需要將法律文本類比為代碼文本, 利用數(shù)字時(shí)代興起的軟件工程在法典編纂和修訂的動(dòng)態(tài)發(fā)展過程中保障法律的公平提示原則,形成“法律即代碼”的法典化觀念。在數(shù)字社會(huì)中,大型軟件的代碼庫通常有數(shù)百萬行的長(zhǎng)度,為了有效管理這些代碼庫使其正常運(yùn)作,軟件工程學(xué)積累了大量用來分析大型軟件代碼庫演變和結(jié)構(gòu)的概念、理念和技術(shù)。“法律即代碼”的觀念將基于法典化和代碼庫在大規(guī)模文本管理需求方面的一致性,把這些軟件工程學(xué)中的代碼庫管理理念與技術(shù)引入法典編纂與修訂技術(shù)之中,將法律的公平提示原則從法典化的興起動(dòng)因轉(zhuǎn)變?yōu)榉ǖ浠瘎?dòng)態(tài)發(fā)展的約束原則,實(shí)現(xiàn)法典化的數(shù)字轉(zhuǎn)型。對(duì)此,下文將進(jìn)一步論述這種旨在打破法典化發(fā)展悖論的“法律即代碼”觀念具有何種內(nèi)涵、如何實(shí)現(xiàn),以及對(duì)數(shù)字社會(huì)中“代碼即法律”的二元共治研究有何影響。
二、數(shù)字時(shí)代法典化中“法律即代碼”的內(nèi)涵
結(jié)合法律的公平提示原則,數(shù)字時(shí)代法典化中的“法律即代碼”觀念是指,基于法律與代碼在功能與文本管理需求方面的一致性,對(duì)法律文本的法典編纂和修訂要充分利用軟件工程學(xué)中對(duì)大型代碼庫的管理概念、理念與技術(shù),實(shí)現(xiàn)易懂的文本表達(dá)、合理的結(jié)構(gòu)安排、顯著的變動(dòng)提示和簡(jiǎn)潔的交叉引用四個(gè)維度的法典數(shù)字化轉(zhuǎn)型,以此保障法律的公平提示原則(法律的發(fā)布、公民認(rèn)知和清晰度要求)。在此,本文將對(duì)“法律即代碼”觀念的正當(dāng)性依據(jù),以及“法律即代碼”內(nèi)涵的四個(gè)維度展開論述。
(一)法律與代碼的功能與文本管理需求的一致性
自雷登伯格提出“代碼就是法律”的論述后,關(guān)于法律與代碼之間的比較研究日益增多。無論是將代碼比作網(wǎng)絡(luò)空間中的法律,以此論述網(wǎng)絡(luò)空間規(guī)制方式與現(xiàn)實(shí)空間的差異,還是將法律比作社會(huì)系統(tǒng)的代碼,以此從結(jié)構(gòu)層面借鑒代碼設(shè)計(jì)的基本原則來觀察與認(rèn)識(shí)法律,均是基于法律與代碼在功能層面上的相似性展開研究的。在功能層面上,代碼與法律都是由一系列規(guī)則組成,這些規(guī)則都是為了管理某些操作,法律管理人的交互操作,代碼管理計(jì)算機(jī)的交互操作。例如,代碼規(guī)定了計(jì)算機(jī)在接收到某種數(shù)據(jù)并將其輸入后得出某種數(shù)據(jù)并將其輸出的規(guī)則,法律規(guī)定了特定人(除了自然人,也包括法人、國(guó)家等擬制人)在某種環(huán)境或行為輸入后輸出特定權(quán)力或權(quán)利的規(guī)則。因此,在功能層面上,代碼和法律具有共同的特征。
隨著軟件工程對(duì)代碼文本的需求規(guī)模增大,以及社會(huì)發(fā)展對(duì)法律文本的需求規(guī)模增加,大規(guī)模的代碼文本和法律文本都將面臨著復(fù)雜化引發(fā)的可理解性降低等類似的缺陷,進(jìn)而也就有了建立和管理軟件代碼庫與編纂和修訂法典的一致性需求。就如法律需要公民理解一樣,軟件工程團(tuán)隊(duì)在人員流動(dòng)中為了能持續(xù)維護(hù)和更新軟件,需要保障其代碼文本能夠被其他人員所理解。從促進(jìn)成員對(duì)規(guī)則認(rèn)知的需求層面,“代碼和法律作為實(shí)現(xiàn)特定目標(biāo)的指令集,均需要通過過濾信息、建構(gòu)模型來降低認(rèn)知負(fù)擔(dān)、提高認(rèn)知效率”。至少在如下兩個(gè)方面,軟件工程和法典化有著相同的大規(guī)模文本管理需求:其一,文本的簡(jiǎn)潔性。在軟件工程中,軟件代碼庫的大小是評(píng)估開發(fā)和維護(hù)它所需工作的常用指標(biāo)。每行代碼都可能包含錯(cuò)誤或不必要的復(fù)雜性。因此,大量的代碼對(duì)應(yīng)更大、更復(fù)雜的軟件,而這些軟件可能會(huì)有更多的漏洞。同樣,立法應(yīng)當(dāng)使用簡(jiǎn)短的句子,而不是復(fù)雜或復(fù)合的句子。冗長(zhǎng)的法律文本需要更多的時(shí)間來閱讀、解釋和修改。其二,文本的可讀性。軟件開發(fā)公司通常需要在使代碼可讀和易于理解方面投入大量資金,因?yàn)檐浖こ虉F(tuán)隊(duì)通常需要集結(jié)新的團(tuán)隊(duì)成員、修復(fù)漏洞和重構(gòu)現(xiàn)有代碼,這些任務(wù)都需要深入理解其他人編寫的代碼,而這些人通常不再能夠提供支持或說明。同樣,法律應(yīng)該易于閱讀和理解,以便公民能夠理解他們的權(quán)利和義務(wù),也讓律師、立法者、法官和陪審員能夠更有效地履行他們的職責(zé)。例如,美國(guó)參議院的立法起草手冊(cè)也強(qiáng)調(diào)可讀性。題為“關(guān)注讀者”的第107節(jié)規(guī)定:“草案必須為讀者所理解。本手冊(cè)中的規(guī)則應(yīng)以使草案更清晰、更容易理解的方式應(yīng)用?!辈槐匾膹?fù)雜法律可能會(huì)干擾商業(yè)、經(jīng)濟(jì)增長(zhǎng)和司法公正,甚至?xí)茐姆傻墓教崾驹瓌t。
因此,可以說,法律和代碼作為均需要溝通與認(rèn)知方能有效運(yùn)作的規(guī)則系統(tǒng),其在大規(guī)模的文本管理需求方面是一致的,而這種一致性為法典化引入軟件工程學(xué)的理念與技術(shù)、實(shí)現(xiàn)法律的公平提示原則提供了聯(lián)結(jié)紐帶。
(二)“法律即代碼”內(nèi)涵的四個(gè)維度
在軟件工程學(xué)中,為了應(yīng)對(duì)大規(guī)模代碼文本的復(fù)雜性所引發(fā)的軟件更新與維護(hù)困境,軟件工程師們會(huì)從四個(gè)角度來量化和化簡(jiǎn)大型代碼庫中的文本復(fù)雜性:文本表達(dá)、結(jié)構(gòu)安排、版本變化和引用網(wǎng)絡(luò)。這為我們理解軟件工程學(xué)如何將法律公平提示原則轉(zhuǎn)化為“法律即代碼”的四個(gè)維度(法律要利用軟件工程實(shí)現(xiàn)易懂的用詞表達(dá)、合理的結(jié)構(gòu)安排、顯著的變動(dòng)提示和簡(jiǎn)潔的交叉引用)提供了方向。
首先,“法律即代碼”意味著數(shù)字時(shí)代的法典化應(yīng)當(dāng)利用軟件工程追求更加易懂的文本表達(dá)。軟件工程學(xué)需要保障其代碼的文本表達(dá)具有統(tǒng)一性、公認(rèn)性、簡(jiǎn)潔性和語境性,以保障代碼文本符合軟件工程學(xué)中最廣泛的常識(shí)性認(rèn)知。這一點(diǎn)對(duì)于如何在法典編纂和修訂過程中保障法律的公平提示原則也同樣重要。這意味著法典編纂和修訂過程中應(yīng)當(dāng)利用軟件工程實(shí)現(xiàn)文本表達(dá)的統(tǒng)一性、公認(rèn)性、簡(jiǎn)潔性和語境性。統(tǒng)一性是指,法典在統(tǒng)合各項(xiàng)法律規(guī)則及增刪修改時(shí)應(yīng)當(dāng)保持用詞的統(tǒng)一, 避免出現(xiàn)對(duì)同一對(duì)象在不同規(guī)則中用多個(gè)同義詞表達(dá)或是多個(gè)對(duì)象用同一詞表達(dá)等容易讓公民誤解的情形。公認(rèn)性是指,法典中的用詞定義應(yīng)當(dāng)以公眾可接觸的客觀工具(如詞典)而非學(xué)理觀點(diǎn)為準(zhǔn),這些工具應(yīng)當(dāng)是最能反映普通人而非普通律師、法官或立法者的理解。簡(jiǎn)潔性是指,法典文本應(yīng)當(dāng)以盡可能簡(jiǎn)單的詞語來表達(dá),因?yàn)椴槐匾膹?fù)雜詞匯將會(huì)干擾商業(yè)、經(jīng)濟(jì)增長(zhǎng)和司法公正。注重語境則是要求立法者在編纂和修改法典、司法者在解釋適用法典時(shí)應(yīng)當(dāng)通過注意鄰近的條款來確定文本的用詞與含義。因?yàn)榛菊Z言學(xué)理論認(rèn)為,單詞和短語的意義只存在于上下文中,更一般地說,公民只能通過參考上下文來理解特定的規(guī)則用詞含義。由此可以看到,為了保障公民對(duì)法律文本的精準(zhǔn)理解,法典在編纂及修訂的動(dòng)態(tài)發(fā)展過程中,創(chuàng)設(shè)與變動(dòng)任意規(guī)則的用詞需要借鑒客觀的工具并考慮其對(duì)其他規(guī)則(相同用詞的規(guī)則、同一對(duì)象的規(guī)則、上下鄰近的規(guī)則等)的影響,而這些需求是可以通過有效利用軟件工程來解決的。
其次,“法律即代碼”意味著數(shù)字時(shí)代的法典化應(yīng)當(dāng)利用軟件工程追求更加合理的結(jié)構(gòu)安排。一項(xiàng)評(píng)判軟件系統(tǒng)是否達(dá)標(biāo)的要求是其是否能夠通過合理的結(jié)構(gòu)安排讓軟件工程師們迅速找到影響某一操作的所有相關(guān)代碼。這種結(jié)構(gòu)的合理性將會(huì)大幅影響軟件系統(tǒng)的后續(xù)維護(hù)與更新成本。同樣的道理,一部好的法典應(yīng)當(dāng)是能夠通過合理的結(jié)構(gòu)安排讓公民便捷地找到特定案件相關(guān)的所有法律規(guī)則。然而,無論是法典編纂前的分散立法,還是法典規(guī)模擴(kuò)張后的復(fù)雜法典,若不對(duì)法律規(guī)則進(jìn)行持續(xù)性的結(jié)構(gòu)管理將會(huì)導(dǎo)致影響同一案件的相關(guān)規(guī)則分散于法典的不同部分,即法律系統(tǒng)的“熵增定律”。當(dāng)法律規(guī)則的分布過于無序與混亂時(shí),公民便難以通過法律文本來全面、準(zhǔn)確地理解法律。該問題在美國(guó)的法典化進(jìn)程中較為突出,由于立法機(jī)關(guān)很少或根本不關(guān)注現(xiàn)有法典的整體結(jié)構(gòu),而不斷將新的法律笨拙地塞進(jìn)法典已有的標(biāo)題之中,導(dǎo)致同一案件的相關(guān)法律文本可能有數(shù)千頁之隔。然而,管理規(guī)模龐大的法典文本結(jié)構(gòu)并非易事。當(dāng)一項(xiàng)新的法律涉及的主題較小且狹窄時(shí),現(xiàn)有的法典編纂技術(shù)較易將新法納入法典文本之中。但如果新法的規(guī)則數(shù)量較多、涉及多個(gè)主題,甚至包含了多個(gè)位階規(guī)則時(shí),新法的納入就將變得尤其復(fù)雜。因此,為了保障法典動(dòng)態(tài)發(fā)展中的公平提示原則,數(shù)字時(shí)代法典化中的“法律即代碼”要求法典在編纂與修訂過程中利用軟件工程持續(xù)地改進(jìn)其結(jié)構(gòu)安排,以促進(jìn)公眾對(duì)法律具有更全面的理解。
再有,“法律即代碼”意味著數(shù)字時(shí)代的法典化應(yīng)當(dāng)利用軟件工程追求更加顯著的變動(dòng)提示。軟件工程為了保持系統(tǒng)的穩(wěn)定性并降低更新成本,會(huì)盡可能地減少每次更新所變動(dòng)的代碼行數(shù),并以顯著的方式標(biāo)注此次更新的地方,以促進(jìn)其他軟件工程師對(duì)軟件更新的理解。同樣,法典的編纂與修訂過程中,基于法律的公平提示原則應(yīng)當(dāng)盡量減少文本的變動(dòng),并以顯著的方式向公民提示其變動(dòng)部分,以幫助公民理解法律條款的演變。然而,當(dāng)法典文本的規(guī)模日益龐大時(shí),每一次文本修正都將給公民完整理解當(dāng)下有效的法律帶來巨大的信息成本。例如,美國(guó)國(guó)會(huì)甚至專門設(shè)立了眾議院法律修訂顧問辦公室,要求其及時(shí)更新法典文本并編寫相關(guān)材料來幫助用戶查找、跟蹤和理解法典的更新內(nèi)容,如發(fā)布新舊法典的比較文本、編寫立法歷史、標(biāo)注有效日期、制作法律條款的狀態(tài)標(biāo)簽和索引等。軟件工程中則有許多高效、便捷的數(shù)字技術(shù)來幫助人們迅速理解文本的變動(dòng)狀態(tài),例如下文將會(huì)介紹的版本控制系統(tǒng)。因此,“法律即代碼”要求數(shù)字時(shí)代的法典修訂充分利用軟件工程技術(shù),以合理、及時(shí)的方式來展現(xiàn)法典文本的整體變動(dòng),以便公眾能準(zhǔn)確、方便地理解法律,避免過時(shí)規(guī)定所產(chǎn)生的深遠(yuǎn)累積效應(yīng)。
最后,“法律即代碼”意味著數(shù)字時(shí)代的法典化應(yīng)當(dāng)利用軟件工程追求更加簡(jiǎn)潔的引用網(wǎng)絡(luò)。在軟件系統(tǒng)中,代碼之間存在著產(chǎn)生依賴性與復(fù)雜性的龐大引用網(wǎng)絡(luò)結(jié)構(gòu),而任何軟件工程都要求軟件工程師在必要時(shí)才使用交叉引用,并利用模塊化思想化簡(jiǎn)引用結(jié)構(gòu),以避免產(chǎn)生不必要的系統(tǒng)依賴性和復(fù)雜性。因?yàn)檫@種交叉引用產(chǎn)生的依賴性與復(fù)雜性將會(huì)導(dǎo)致系統(tǒng)更加脆弱,一旦網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)代碼出現(xiàn)問題,將會(huì)影響整個(gè)網(wǎng)絡(luò)代碼的功能運(yùn)作。同理,為了避免內(nèi)容的重復(fù)、促進(jìn)立法的便捷,法典中的條款會(huì)經(jīng)常相互參照與引用,進(jìn)而產(chǎn)生一種相互依賴的引用網(wǎng)絡(luò),但規(guī)模龐大的引用網(wǎng)絡(luò)也會(huì)導(dǎo)致理解與適用法典的復(fù)雜化與困難化。這種引用網(wǎng)絡(luò)的規(guī)模越大,法典的復(fù)雜程度也就越高,公民想要獲知完整法律引用鏈的知識(shí)成本也就越大(尤其是公民可能需要探索多條不同的引用途徑),并且法典在后續(xù)發(fā)展過程中對(duì)引用鏈任意部分的修訂都會(huì)導(dǎo)致未知的、非預(yù)期的下游影響。據(jù)悉,美國(guó)法典發(fā)展至今,最長(zhǎng)的法律引用鏈條需要經(jīng)過32個(gè)引用步驟才能“游走”完。法典的引用網(wǎng)絡(luò)規(guī)模也成為許多學(xué)者對(duì)法典復(fù)雜性進(jìn)行實(shí)證研究的基本指標(biāo)之一。為了避免法典因過于復(fù)雜而難以為公民所完整理解,“法律即代碼”要求法典在動(dòng)態(tài)發(fā)展的過程中利用軟件工程的理念與技術(shù)不斷簡(jiǎn)化法典中的引用網(wǎng)絡(luò),以避免法典黑箱的形成。
綜上所述,為了保障法典在動(dòng)態(tài)發(fā)展中不脫嵌于社會(huì),國(guó)家必須有效管理大規(guī)模的法典文本,以滿足法律公平提示原則所提出的三項(xiàng)基本要求(發(fā)布、認(rèn)知與清晰度)。在數(shù)字時(shí)代的背景下,隨著以編寫和管理大量代碼文本為專長(zhǎng)的軟件工程學(xué)的不斷發(fā)展,基于代碼與法律的功能相似性與文本管理需求一致性,提出“法律即代碼”的觀念并利用軟件工程學(xué)理念與技術(shù)保障法典在動(dòng)態(tài)發(fā)展中的公平提示原則,將成為數(shù)字時(shí)代法典化的時(shí)代特征。
三、“法律即代碼”的實(shí)現(xiàn)路徑
在明確了“法律即代碼” 的具體內(nèi)涵后, 本文將引用軟件工程學(xué)中較為基礎(chǔ)的概念(“圈復(fù)雜度”)、理念(“模塊化”思想)和技術(shù)(版本控制系統(tǒng))來展示“法律即代碼”觀念的可行性。這三個(gè)例子在軟件工程學(xué)中僅是最為基礎(chǔ)的部分,但其對(duì)數(shù)字時(shí)代法典化的推動(dòng)作用足以表明“法律即代碼”這個(gè)觀念的未來發(fā)展?jié)摿Α?/p>
(一)衡量文本表達(dá)復(fù)雜性的“圈復(fù)雜度”
目前,衡量法律文本表達(dá)復(fù)雜度的主要指標(biāo)是文本語句的長(zhǎng)度,即字?jǐn)?shù)越少的法典表達(dá)越好。然而,軟件工程學(xué)的研究表明,文本的長(zhǎng)度并非衡量文本表達(dá)復(fù)雜度的唯一或最佳指標(biāo),因?yàn)槠錈o法衡量不同文本表達(dá)對(duì)整體文本結(jié)構(gòu)的復(fù)雜性影響。最典型的例子便是一個(gè)連續(xù)由25個(gè)“IFOTHEN”的條件語句所構(gòu)成的50行代碼將會(huì)產(chǎn)生多達(dá)3350萬條不同的執(zhí)行路徑,其相比代碼數(shù)達(dá)500行但僅有5個(gè)條件語句的代碼,所產(chǎn)生的可執(zhí)行路徑數(shù)量要多得多?!尺@意味著在軟件工程中,過多地嵌套條件語句也會(huì)導(dǎo)致給定輸入的可執(zhí)行路徑成倍增加,進(jìn)而增加了軟件的復(fù)雜度與出錯(cuò)率。同樣,法律文本的表達(dá)也充斥著大量的條件陳述和例外情況(如“如果”“除外”“但”“規(guī)定”“何時(shí)”“何地”“除非”“盡管”“在任何情況下”等表達(dá)),但過多地條件語句將會(huì)增加公民對(duì)基本規(guī)則的理解難度,甚至過多的例外表達(dá)會(huì)讓公民覺得基本規(guī)則是錯(cuò)誤的。例如,美國(guó)法院在平臺(tái)革命期間不斷對(duì)通信規(guī)范法第230條中的網(wǎng)絡(luò)平臺(tái)責(zé)任豁免創(chuàng)設(shè)例外情況,以此限縮網(wǎng)絡(luò)平臺(tái)的責(zé)任豁免范圍,但過多的例外情況反而讓網(wǎng)絡(luò)平臺(tái)公司與公眾覺得該條款已無效用。同樣,美國(guó)綜合撥款法案的文本字?jǐn)?shù)非常龐大,但因?yàn)闂l件語句使用較少導(dǎo)致文本間的耦合性較低,公民對(duì)其理解較為簡(jiǎn)單,因?yàn)槠渲恍枰P(guān)注相關(guān)的少數(shù)條款就能預(yù)料法律適用情況。而美國(guó)的患者保護(hù)和平價(jià)醫(yī)療法雖然文本字?jǐn)?shù)遠(yuǎn)少于綜合撥款法案,但充斥著大量條件語句和相互引用,導(dǎo)致其文本間耦合性較大,公民理解非常困難,有時(shí)公民需要讀懂整部法案才能了解其情況的法律適用可能性。
因此,軟件工程學(xué)中用于衡量條件語句引入對(duì)整個(gè)系統(tǒng)影響的“圈復(fù)雜度”指標(biāo)有助于為立法者在權(quán)衡法典編纂與修訂時(shí)是否要用條件語句來進(jìn)行表達(dá)提供更加精準(zhǔn)、客觀的指標(biāo)?!叭?fù)雜度”(有時(shí)稱為“McCabe復(fù)雜度”)是指一段代碼中的可執(zhí)行路徑數(shù),即運(yùn)行該代碼所必須作出決策的次數(shù)。因此,可以將“法典的圈復(fù)雜度”指標(biāo)定義為“一段法律文本的決策路徑數(shù)(或者說條件語句數(shù)),即法官在適用該法律時(shí)所必須作出是否滿足法定條件的決策次數(shù)”。在立法者與學(xué)者引入這項(xiàng)指標(biāo),并利用計(jì)算機(jī)統(tǒng)計(jì)不同法典編纂或修訂方案的圈復(fù)雜度后,便可直觀地比較不同法典編纂或修訂方案之間的復(fù)雜性。當(dāng)法典的某一修正方案以條件語句的方式引入一段新的法律后所產(chǎn)生的圈復(fù)雜度遠(yuǎn)大于以列舉方式引入的圈復(fù)雜度時(shí), 這代表著用條件語句來增加或修訂既有法典將會(huì)產(chǎn)生巨大的復(fù)雜性。這種復(fù)雜性在當(dāng)下只關(guān)注文本長(zhǎng)度的立法研究中是很難被直觀發(fā)現(xiàn)的。通過引入圈復(fù)雜度的概念和指標(biāo),能夠有利于立法者和學(xué)者大規(guī)模地量化與比較不同法典編纂或修訂方案在司法實(shí)踐中所必須面臨的復(fù)雜性,進(jìn)而有利于立法者與學(xué)者作出有利于保障公平提示原則的立法決策或意見。
(二)簡(jiǎn)化系統(tǒng)結(jié)構(gòu)與引用網(wǎng)絡(luò)的“模塊化”理念
基于“模塊化”的“面向?qū)ο缶幊獭崩砟钍钱?dāng)代大型軟件系統(tǒng)編程的基本編寫模式,也是許多開創(chuàng)性計(jì)算機(jī)科學(xué)論文和教科書的焦點(diǎn)。其核心思想是通過將軟件劃分為不同的模塊以簡(jiǎn)化模塊之間的接口,讓系統(tǒng)的整體結(jié)構(gòu)和引用網(wǎng)絡(luò)簡(jiǎn)潔化。例如,功能強(qiáng)大的文字處理應(yīng)用程序(如Microsoft%word)具有許多功能,包括格式化、引用管理、檢查拼寫和語法以及文檔打印選項(xiàng)。為了管理這種復(fù)雜的結(jié)構(gòu)與引用網(wǎng)絡(luò),大型軟件系統(tǒng)被劃分為模塊化子系統(tǒng)(如開始模塊、插入模塊、設(shè)計(jì)模塊、布局模塊等)。更小、更敏捷的軟件工程師團(tuán)隊(duì)分別負(fù)責(zé)不同的模塊。由此,每個(gè)團(tuán)隊(duì)只需了解與其模塊交互的其他模塊的輸入輸出行為,進(jìn)而大幅降低了大型軟件的開發(fā)與維護(hù)成本,并提升軟件系統(tǒng)的魯棒性。在“模塊化”理念的指引下,好的軟件系統(tǒng)很容易被劃分成不同的模塊,模塊之間的接口相對(duì)稀疏和簡(jiǎn)單。同樣,好的法典也應(yīng)當(dāng)很容易被劃分為不同的模塊,模塊之間條文的相互引用應(yīng)當(dāng)盡量稀疏和簡(jiǎn)單。
簡(jiǎn)要地理解“模塊化”理念的一種方法是將軟件系統(tǒng)看作一個(gè)網(wǎng)絡(luò),其中代碼文本所用到的函數(shù)或變量看作網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn),如果節(jié)點(diǎn)a引用了節(jié)點(diǎn)b,則a和b之間存在一條連接。“模塊化”理念的核心在于如何調(diào)整節(jié)點(diǎn)來降低連接的數(shù)量并簡(jiǎn)化網(wǎng)絡(luò)的結(jié)構(gòu)。如原本的代碼中存在相互引用的函數(shù)或變量a、b、c、d、e(見圖1),其有6條連接。此時(shí)若把函數(shù)或變量a和e歸為同一函數(shù)或變量ae(見圖2),則軟件中的代碼連接數(shù)將會(huì)減少至4條,且結(jié)構(gòu)也從一個(gè)復(fù)雜結(jié)構(gòu)簡(jiǎn)化為兩個(gè)簡(jiǎn)單結(jié)構(gòu)的疊加。
基于這種“模塊化”的理念,軟件工程學(xué)對(duì)于任何給定的軟件代碼庫,都可以構(gòu)造和分析其聚合的節(jié)點(diǎn)和邊。由此產(chǎn)生的網(wǎng)絡(luò)結(jié)構(gòu)可以深入了解軟件系統(tǒng)的性質(zhì),例如它的健壯性以及它的漏洞可能存在的位置。網(wǎng)絡(luò)圖還可以提供軟件系統(tǒng)中存在的不同類別的模塊。特定模塊所屬的網(wǎng)絡(luò)部分可以提供關(guān)于模塊如何與系統(tǒng)其余部分相關(guān)的信息。而在法典化研究中引入模塊化概念,有助于計(jì)算法學(xué)利用軟件工程方法將法典中各個(gè)條款之間的關(guān)聯(lián)可視化。從公眾的角度,這種基于模塊化思想的可視化實(shí)證研究能夠便于公民與法官直觀地了解法典文本的整體引用網(wǎng)絡(luò),讓其能更加便捷地找到具體案件所可能涉及的相關(guān)法條,并方便學(xué)者精準(zhǔn)、直觀地了解法典的大規(guī)模文本在演變過程中的整體結(jié)構(gòu)變化。從立法者的角度,引入模塊化概念并基于此形成的可視化實(shí)證研究能夠?yàn)榉ǖ湓谛抻喌倪^程中如何合理地調(diào)整篇、章結(jié)構(gòu)與引用方式,來減少必要的引用、簡(jiǎn)化法典的整體結(jié)構(gòu)提供重要參考。例如,美國(guó)已有學(xué)者基于模塊化概念與軟件工程技術(shù)對(duì)美國(guó)各個(gè)法典的引用網(wǎng)絡(luò)進(jìn)行了可視化的呈現(xiàn)與比較。我國(guó)在法典化過程中也可以利用軟件工程的方式進(jìn)行類似的計(jì)算法學(xué)研究,這也有利于將知識(shí)圖譜技術(shù)引入法典化的公平提示原則保障機(jī)制之中,成為數(shù)字時(shí)代法典化的技術(shù)特征之一。
(三)可視化文本變動(dòng)的“版本控制系統(tǒng)”
在大型軟件代碼庫中,會(huì)有許多軟件工程師同時(shí)處理代碼,所以需要有確保代碼更改不會(huì)破壞功能或產(chǎn)生沖突的機(jī)制。為此,軟件工程實(shí)踐通常采用“版本控制系統(tǒng)”來處理這些問題。而受軟件工程啟發(fā)的法律版本控制系統(tǒng)可能是未來管理法典變更的合理方法。版本控制系統(tǒng)的“跟蹤任務(wù)”功能可以實(shí)時(shí)提示所有軟件工程師系統(tǒng)目前作出了哪些更改,是誰作出了更改,什么時(shí)候進(jìn)行的更改,以及其更改的理由?!?0R〕在此,本文僅以版本控制系統(tǒng)更改文本的方式,闡述其對(duì)數(shù)字時(shí)代法典化中公平提示原則保障的借鑒意義。
在代碼庫上工作時(shí),軟件工程師通常會(huì)添加、刪除、修改、重新排序或重組代碼行。而有效保障多人同時(shí)協(xié)作的關(guān)鍵在于他們能夠基于版本控制系統(tǒng)對(duì)文本更改的可視化進(jìn)行溝通。具體來說,盡管編輯軟件代碼可能涉及許多高級(jí)思維過程,但它們?cè)诎姹究刂葡到y(tǒng)中可以通過兩項(xiàng)簡(jiǎn)單操作(添加和刪除代碼行)與他人溝通其編程的思路。因?yàn)榘姹究刂葡到y(tǒng)會(huì)不斷地對(duì)同一文檔的兩個(gè)版本進(jìn)行比較,即即時(shí)性的“對(duì)比”。當(dāng)團(tuán)隊(duì)成員在版本控制系統(tǒng)中進(jìn)行代碼更改時(shí),團(tuán)隊(duì)的其他成員可以很容易地識(shí)別更改位置以及這些更改是什么(主要是通過查看紅線比較)。此外,版本控制系統(tǒng)對(duì)更改行數(shù)的標(biāo)識(shí)可以直觀地表明修訂是大還是小, 無須人力專門對(duì)修訂前與修訂后的文本進(jìn)行單獨(dú)比對(duì)?;诎姹究刂葡到y(tǒng)來即時(shí)性地對(duì)比文檔的兩個(gè)版本是軟件工程師共同編寫與修訂軟件代碼的基本習(xí)慣。對(duì)此,我們可以反思現(xiàn)有法律修正案的頒布方式———僅公布修改的文本內(nèi)容,即“將XX條改為XX條,修改為:‘XXXX”?,F(xiàn)有的這種修正案頒布方式需要對(duì)當(dāng)下文本有較為全面和完整的認(rèn)識(shí)才能快速理解修正案對(duì)法律的影響,這對(duì)非專業(yè)的公民來說存在著較大認(rèn)知成本,對(duì)律師與法官來說也需要花費(fèi)大量的時(shí)間成本去跟蹤和自行比對(duì)法典的修訂。利用軟件工程學(xué)中的版本控制系統(tǒng)進(jìn)行法典的編纂與修訂,一方面有利于公眾參與法典編纂與修訂時(shí)的相互溝通,另一方面也有利于公眾對(duì)法典編纂與修訂后的有效法律進(jìn)行直觀、快速地認(rèn)知。當(dāng)然,這種用于法典化運(yùn)動(dòng)的版本控制系統(tǒng)需要法學(xué)專家與計(jì)算機(jī)專家的共同努力,將法典的編纂和修訂程序納入軟件程序之中。
此外,為了快速尋找到相關(guān)文本,軟件工程師在日常工作中也會(huì)經(jīng)常利用版本控制系統(tǒng)的查找工具。這些查找工具既有助于立法者在創(chuàng)設(shè)規(guī)則時(shí)統(tǒng)一表達(dá)用詞,也能幫助公民快速尋找到其所需的相關(guān)法律文本。與互聯(lián)網(wǎng)搜索引擎幫助用戶在線查找相關(guān)文檔,或“查找文件”程序幫助計(jì)算機(jī)用戶在自己的計(jì)算機(jī)上查找文檔的方式類似,版本控制系統(tǒng)會(huì)幫助工程師自動(dòng)、快速搜索代碼庫中的特定術(shù)語或其頻率,以幫助他們完成工作。原則上,這些搜索技術(shù)也可以用于減少立法者與公眾對(duì)法典中大規(guī)模文本的認(rèn)知成本,尤其是在立法者修訂涉及多個(gè)領(lǐng)域的相關(guān)條文時(shí),這些查找工具將會(huì)為立法者與公眾整體性地理解法律提供助益。
上述三個(gè)例子僅是軟件工程學(xué)中保障代碼庫可理解性較為淺顯的概念、理念和技術(shù),但足以揭示將軟件工程學(xué)引入數(shù)字時(shí)代法典化研究的重要性與可行性,即“法律即代碼”的未來發(fā)展?jié)摿?。?dāng)然,“法律即代碼”的理念除了能在法典化研究中發(fā)揮重要作用,也能為數(shù)字社會(huì)治理中的“代碼即法律”研究提供新的思路與視角。
四、“法律即代碼”與“代碼即法律”
隨著社會(huì)的數(shù)字化轉(zhuǎn)型,法律與代碼的二元共治理念已經(jīng)為社會(huì)所接受。而法典化過程中因復(fù)雜性引起的黑箱問題也同時(shí)出現(xiàn)在了軟件工程的治理領(lǐng)域,“法律即代碼”的觀念據(jù)此與“代碼即法律”的觀念發(fā)生耦合。社會(huì)公眾對(duì)數(shù)字空間中具有強(qiáng)制性效力的代碼產(chǎn)生了可理解性的需求,約束法典化運(yùn)動(dòng)的公平提示原則自然發(fā)展為了代碼的公平提示原則,即公民行為在受到代碼的規(guī)制前,必須被告知并理解該代碼中的相關(guān)規(guī)則。大型軟件系統(tǒng)中的代碼黑箱問題也就不再僅僅是工程師們所關(guān)注的技術(shù)問題,而成為政府、企業(yè)與公眾所共同關(guān)心的社會(huì)熱點(diǎn)。這種代碼黑箱問題會(huì)導(dǎo)致人們難以理解代碼規(guī)制社會(huì)的具體邏輯,進(jìn)而無法對(duì)代碼產(chǎn)生信任,甚至?xí)?dān)憂和恐懼在數(shù)字社會(huì)中被代碼暗中操控。此時(shí),代碼之治所遇到的黑箱問題實(shí)質(zhì)上與法典化所面臨的復(fù)雜性問題具有一致性, 而從法律的公平提示原則出發(fā)研究代碼之治的規(guī)制問題自然也就成為一個(gè)重要視角。
對(duì)此, 一些學(xué)者試圖將法律公平提示原則的三項(xiàng)實(shí)體性要求直接適用于代碼之治的規(guī)制之上,即追求代碼的公開發(fā)布、公民認(rèn)知和清晰明確。例如,有學(xué)者提出了設(shè)立以實(shí)現(xiàn)代碼公開為目標(biāo)的解釋權(quán)和排他權(quán),前者要求軟件開發(fā)者能夠以用戶理解的方式讓他們認(rèn)知代碼文本,后者通過排他權(quán)保障軟件開發(fā)者的商業(yè)利益,據(jù)此鼓勵(lì)他們公開代碼文本。然而,這些觀點(diǎn)受到了不同程度的批評(píng),單純的代碼公開已被認(rèn)定為一種無益于代碼公平提示原則的規(guī)制方式。但有趣之處在于,這些批評(píng)的理由與當(dāng)代批評(píng)法典化運(yùn)動(dòng)無益于法律公平提示原則的理由類似。如軟件的代碼文本與法典的法律文本均因文本規(guī)模較大、用語專業(yè)晦澀和引用結(jié)構(gòu)復(fù)雜,導(dǎo)致單純地公開發(fā)布文本也無益于相關(guān)利益者理解其涉及的具體代碼或法律的內(nèi)涵,因?yàn)槠渫暾?、?zhǔn)確理解相關(guān)代碼或法律的認(rèn)知成本已遠(yuǎn)超其收益。而對(duì)于旨在加強(qiáng)更寬泛意義上代碼公開的解釋權(quán),有一部分學(xué)者也指出,其并非是圍繞代碼文本的解釋, 而是圍繞軟件開發(fā)者與其他利益相關(guān)者之間如何達(dá)成代碼規(guī)制信任的解釋,這已不再局限于單純的代碼公開,而是涉及溝通問題。這些通過延伸解釋權(quán)來保障代碼公平提示原則的主張已經(jīng)不再停留于代碼的公開,而是轉(zhuǎn)變?yōu)樗伎既绾卧诓煌瑧?yīng)用場(chǎng)景下促進(jìn)公眾參與和充分溝通來保障代碼之治的正當(dāng)性與合理性。這些恰恰也是法典化研究目前所追求的目標(biāo)———如何促進(jìn)公眾參與和充分溝通來保障法典編纂和修訂的正當(dāng)性與合理性。因此,在“法律即代碼”和“代碼即法律”兩種觀念的耦合作用下,公平提示原則作為法典化與代碼之治中共通的核心原則,為計(jì)算法學(xué)的法典化研究和代碼治理研究指明了一個(gè)全新的路徑,即促進(jìn)多方關(guān)于法律/代碼溝通的程序視角。
在基于法律程序的溝通視角下,代碼的公平提示原則作為代碼之治的正當(dāng)化機(jī)制將通過法律程序的創(chuàng)設(shè)而非實(shí)體性要求來實(shí)現(xiàn)?;诜沙绦?qū)Ψǖ涞木幾?、修訂和適用分別創(chuàng)設(shè)了立法程序和司法程序,基于法律程序的代碼之治可以為代碼的研發(fā)決策、適用決策和自動(dòng)化決策分別創(chuàng)設(shè)狹義的技術(shù)性正當(dāng)程序、算法論證程序和嵌入性正當(dāng)程序。如狹義的技術(shù)性正當(dāng)程序?qū)⒛抗饩劢褂谲浖こ處熍c平臺(tái)需求方之間針對(duì)代碼研發(fā)的溝通過程,要求軟件工程師在作出相應(yīng)的決策時(shí)作出可使其他軟件工程師和需求方理解與認(rèn)可的人類間溝通。這在代碼即法律的數(shù)字社會(huì)以前,是由計(jì)算機(jī)的職業(yè)倫理所規(guī)定,但在進(jìn)入代碼即法律的數(shù)字社會(huì)后,研發(fā)大型平臺(tái)軟件系統(tǒng)的工程師們就必須有一套法律程序來保障他們與平臺(tái)需求方之間的溝通,進(jìn)而保證大型平臺(tái)的軟件至少包含具有平臺(tái)所設(shè)想的價(jià)值與理念。當(dāng)然這種狹義的技術(shù)性正當(dāng)程序只保障了代碼在軟件工程師與平臺(tái)需求方之間的正當(dāng)性,為了進(jìn)一步將其正當(dāng)性從平臺(tái)需求方擴(kuò)展至平臺(tái)用戶,需要類似于法律論證程序的算法論證程序?!八惴ㄕ撟C程序”是指,算法應(yīng)用主體按照特定標(biāo)準(zhǔn)和條件整理利益相關(guān)方通過一定順序、方式和步驟得出的意見后,對(duì)其算法應(yīng)用的決定(即選擇某項(xiàng)數(shù)據(jù)處理或代碼構(gòu)建的邏輯規(guī)則作為決策規(guī)則嵌入特定社會(huì)領(lǐng)域)作出可使利益相關(guān)方理解與認(rèn)可的溝通過程。而當(dāng)代碼構(gòu)建的系統(tǒng)具有擬主體性且能夠自行進(jìn)行決策后,聚焦于人機(jī)溝通的嵌入式正當(dāng)程序也就成為了自動(dòng)化決策中保障代碼公平提示原則的重要機(jī)制。對(duì)算法論證程序和嵌入式正當(dāng)程序,已有專門論文進(jìn)行討論,就不再贅述。但在此已可以看出,提出“法律即代碼”觀念的意義將會(huì)不局限于打破法典化的發(fā)展悖論,其更有將數(shù)字時(shí)代法典化中的公平提示原則引入代碼治理領(lǐng)域之中,并為計(jì)算法學(xué)在立法研究和算法規(guī)制研究方面指明了“溝通—程序”的研究方向。
結(jié)語
隨著我國(guó)法典化運(yùn)動(dòng)的興起,各領(lǐng)域?qū)W者紛紛著手從學(xué)理角度探求一部完整性、體系性和普遍性的法典文本。然而,法典化運(yùn)動(dòng)并非一項(xiàng)一勞永逸的事業(yè),隨著社會(huì)的發(fā)展,法典在出臺(tái)后必然會(huì)面臨持續(xù)性的修訂,若不對(duì)法典文本的動(dòng)態(tài)發(fā)展加以約束,將會(huì)形成一個(gè)任何個(gè)體都無法完全理解的法律黑箱。為了打破這種法典化的發(fā)展悖論,提出“法律即代碼”的觀念,并據(jù)此引入軟件工程學(xué)的理念與方法是數(shù)字時(shí)代法典化的必需?;诜膳c代碼在功能與文本管理需求方面的一致性,“法律即代碼”的觀念,是指對(duì)法律文本的法典編纂和修訂要充分利用軟件工程學(xué)中對(duì)大型代碼庫的管理概念、理念與技術(shù),實(shí)現(xiàn)易懂的文本表達(dá)、合理的結(jié)構(gòu)安排、顯著的變動(dòng)提示和簡(jiǎn)潔的交叉引用四個(gè)維度的法典數(shù)字化轉(zhuǎn)型,以保障法律的公平提示原則(法律的發(fā)布、公民認(rèn)知和清晰度要求)。在軟件工程學(xué)中,“圈復(fù)雜度”的概念有助于重塑我們對(duì)法典文本復(fù)雜性的理解,“模塊化”思想的理念則有助于我們可視化與簡(jiǎn)化法典文本的引用結(jié)構(gòu),版本控制系統(tǒng)的技術(shù)則有助于我們高效地理解與管理文本的變動(dòng)情況。這些基礎(chǔ)概念、理念和技術(shù)對(duì)數(shù)字時(shí)代法典化的推動(dòng)作用足以表明“法律即代碼”這個(gè)觀念的未來發(fā)展?jié)摿?。而“法律即代碼”的觀念同樣也會(huì)與“代碼即法律”的二元共治理念產(chǎn)生耦合,將法典化中的法律公平提示原則轉(zhuǎn)化為代碼的公平提示原則,并指出計(jì)算法學(xué)在立法研究和算法規(guī)制研究方面的可行方向,即促進(jìn)多方關(guān)于法律/代碼溝通的程序治理。此處的“程序”將會(huì)是法律程序與算法程序之和,是法學(xué)研究與計(jì)算機(jī)科學(xué)研究的交叉應(yīng)用。