許式偉:相比 Python,我們可能更需要 Go+

ECUG(Effective Cloud User Group,實效云計算用戶組)主辦的 2021 ECUG Con 今日在上海舉辦,會上,七牛云 CEO 許式偉以“數(shù)據(jù)科學(xué)與 Go+”為主題發(fā)表了主題分享,講述了對數(shù)據(jù)科學(xué)變遷的理解,對新語言 Go+ 的設(shè)想和規(guī)劃,并大膽指出數(shù)據(jù)科學(xué)正迎來爆發(fā)期,像字節(jié)跳動一樣的新型公司只會越來越多。以下為演講內(nèi)容整理,Enjoy~

剛才在閑聊說 ECUG 變得越來越高大上,其實我也變得越來越像一個單純的講師。今年是 ECUG 社區(qū)的第 14 個年頭,這場活動也是第 14 屆 ECUG Con。其實這一屆本來應(yīng)該在去年辦,但因為疫情延后了。

其實,我在 ECUG 一直貫徹的理念有兩個:

第一,讓自己持續(xù)地寫代碼。因為每一次來 ECUG 我都很緊張,不能什么都沒有呀。所以這也是挺好的機會,能讓自己持續(xù)留在技術(shù)一線;

另外,我每年分享的主題都有一定的延續(xù)性,呈現(xiàn)了我自己對未來思考的脈絡(luò)。

去年開始,我在聊數(shù)據(jù)科學(xué),前面有三年是聊在端上的一些實踐。原因是我認(rèn)為云計算的第一個時代應(yīng)該是屬于機器計算,也就是虛擬機;第二代就是云原生,我認(rèn)為這是一場被稱為“基礎(chǔ)架構(gòu)”的革命。也就是說,第一階段是資源,第二階段是基礎(chǔ)架構(gòu)。第三個階段,我的判斷為應(yīng)用計算,這會涉及前端和后端的協(xié)同。

從去年開始,我的分享轉(zhuǎn)向了數(shù)據(jù)科學(xué),一個很重要的因素和趨勢是,數(shù)據(jù)時代的到來。尤其是 2017 年之后,數(shù)據(jù)大量地被數(shù)字化以后,在各行各業(yè)都會有涉及數(shù)據(jù)科學(xué)的廣泛應(yīng)用。

去年也是蠻巧的,我腦子一熱就搞了一個語言出來。我以前搞過蠻多語言,受眾也有一些。但是那個都很明確,從來沒有想過有一天能夠商業(yè)化。也許碰巧有一些公司用它來做商業(yè)化,但是基本上從出生那一刻開始,就不是沖著商業(yè)化去的。

2012 年我花了很多精力在布道 Go,因為當(dāng)時作為一個初創(chuàng)公司,招人太難。一個比較好的招人邏輯就是讓別人覺得你有趣,公司技術(shù)氛圍很不錯。Go+ 是我第一個認(rèn)認(rèn)真真希望能夠把它商業(yè)化的語言,但目前宣傳得還不多,1.0 還沒發(fā)布。我想講講我自己對 Go+ 和數(shù)據(jù)科學(xué)的一個思考,為什么認(rèn)為 Go+ 有商業(yè)化的機會。

我今天聊的話題大概有四個方面:

語言的發(fā)展

數(shù)據(jù)科學(xué)的發(fā)展

Go+ 的設(shè)計理念

Go+ 實現(xiàn)的迭代

1語言的發(fā)展

首先,我們講講語言的發(fā)展,程序員對這個話題非常感興趣。我把語言的發(fā)展史分為三個部分來說。

第一,靜態(tài)語言的發(fā)展史。我選的是 TOP20 的語言,這個是根據(jù)現(xiàn)在最火的語言排行榜排名選的,前 20 名的語言我排了一下大概是這樣的,最早發(fā)布的是 C,到現(xiàn)在其實還在排行榜前三的位置。第二是 C++,Objective-C、Java、C#、Go、Swift、Go+。我們可以看到一個比較有趣的現(xiàn)象,差不多每 6-8 年會出現(xiàn)一輪新的、具備影響力的靜態(tài)語言,這是生產(chǎn)力迭代的表征。

許式偉:相比 Python,我們可能更需要 Go+

第二,腳本語言的發(fā)展。你會發(fā)現(xiàn)它們非常不一樣。最早是 Visual Basic,然后是 Python、PHP、JavaScript、Ruby,腳本語言是集中大爆發(fā)的,差不多全在 Java 出現(xiàn)的前后,來自 90 年代的前 5 個年頭。這是非常有趣的一件事情,也是非常值得思考的,背后一定有一些內(nèi)在的原因。

許式偉:相比 Python,我們可能更需要 Go+

第三,數(shù)據(jù)科學(xué)相關(guān)語言的發(fā)展。但數(shù)據(jù)科學(xué)我選的是 TOP50,因為 TOP20 實在太少了。也蠻有意思的,最早的是 SQL,第二個 SAS,MATLAB、Python、R、Julia。Python 最早從來沒想過自己會是數(shù)據(jù)科學(xué)語言,但最終變成了人工智能領(lǐng)域最火的語言。

許式偉:相比 Python,我們可能更需要 Go+

這里又存在一個很明顯的特征:它的跨度跟靜態(tài)語言一樣大,所以數(shù)據(jù)科學(xué)發(fā)展其實是古老而漫長的,但發(fā)展得沒有那么快。靜態(tài)語言差不多每 6-8 年有一個迭代,但數(shù)據(jù)科學(xué)語言不是,中間跨度特別大。但我覺得現(xiàn)在正進入數(shù)據(jù)科學(xué)的加速期。

你可能會想,為什么我要分析語言發(fā)展史呢?有幾個結(jié)論是關(guān)鍵。

首先,我認(rèn)為腳本語言是特定歷史階段下的產(chǎn)物,長期來看,靜態(tài)語言更有生命力。

第二,數(shù)據(jù)科學(xué)是計算機的最初需求,最早計算機就是用來做計算的。它歷史悠久但進步緩慢,因為數(shù)據(jù)大爆發(fā)的時代一直沒有到來。

許式偉:相比 Python,我們可能更需要 Go+

2數(shù)據(jù)科學(xué)的發(fā)展

聊完語言的發(fā)展,接下來我們談?wù)剶?shù)據(jù)科學(xué)的發(fā)展。數(shù)據(jù)科學(xué)也可以分為幾個階段,第一個階段我叫做“原始時期”,也可以叫“數(shù)學(xué)軟件時代”,這個時期基本上可歸納為兩個特征,第一個是在有限領(lǐng)域里,最典型的是 BI(商業(yè)智能);第二個有限數(shù)據(jù)規(guī)模,典型就像 Excel,行列數(shù)都是非常有限的,其他的軟件也基本上是這樣的。

這個時期的數(shù)據(jù)科學(xué)特點是什么?首先它不是一個基礎(chǔ)設(shè)施,實際上是數(shù)學(xué)應(yīng)用軟件,但能力非常全,很強大,包括了統(tǒng)計、預(yù)測、洞察、規(guī)劃、決策等等。

許式偉:相比 Python,我們可能更需要 Go+

第二個時期我叫做“數(shù)據(jù)科學(xué)的基建時期”,真正讓數(shù)據(jù)科學(xué)成為了基礎(chǔ)設(shè)施,最典型的代表是大數(shù)據(jù)的興起。Map/Reduce 是 Google 2004 年發(fā)布的一篇論文,2006 年就出現(xiàn)了 Hadoop,2009 年出現(xiàn)了 Spark。我認(rèn)為這算是大數(shù)據(jù)興起的一個階段,也是數(shù)據(jù)科學(xué)基礎(chǔ)設(shè)施化的開始。這個時期跟剛才的數(shù)學(xué)軟件不一樣,是以大規(guī)模處理能力為先,并不是以功能強大為先,它的功能相對局限。

許式偉:相比 Python,我們可能更需要 Go+

深度學(xué)習(xí)的興起和大數(shù)據(jù)的興起間隔時間比較長,深度學(xué)習(xí) 2015 年開始有 TensorFlow,2017 年開始有 Torch,這是兩個知名度最高的深度學(xué)習(xí)框架,深度學(xué)習(xí)本質(zhì)就是通過數(shù)據(jù)自動推導(dǎo) y=F(x)中的 F 函數(shù)。我們平常通常都是程序員實現(xiàn)這個 F,但深度學(xué)習(xí)最核心的概念是如何讓機器自動產(chǎn)生這個 F,來達(dá)成最佳曲線擬合。它其實是基于測量結(jié)果的自動計算。

許式偉:相比 Python,我們可能更需要 Go+

假設(shè)今天沒有牛頓三大定理,但我有一堆測量數(shù)據(jù),理論上應(yīng)該能夠發(fā)現(xiàn)牛頓三大定理,這就是深度學(xué)習(xí)的核心邏輯。它跟大數(shù)據(jù)并不是相互取代的關(guān)系,而是一種能力的加強,更多其實是如何讓大數(shù)據(jù)的能力更進一步,更強悍。

有種看法認(rèn)為,今天經(jīng)濟發(fā)展背后科技的驅(qū)動因子其實核心就只有兩個,一個是計算,另外一個是數(shù)據(jù)。

數(shù)據(jù)核心就是我們今天聊的數(shù)據(jù)科學(xué),數(shù)據(jù)科學(xué)其實是到了一個新的范式,有一個詞叫“第四范式”,中國有一個公司也叫第四范式,我們認(rèn)為數(shù)據(jù)是更高階的一種生產(chǎn)能力,它跟計算相比的話站在更高層次的維度。

許式偉:相比 Python,我們可能更需要 Go+

前面是數(shù)據(jù)科學(xué)的兩個階段,那么第三個階段是什么?我覺得是數(shù)據(jù)科學(xué)的大爆發(fā)時期,也就是今天,用馬云的話說是“DT 時代”。原始時期是在有限的領(lǐng)域,有限的數(shù)據(jù)規(guī)模下去做的一種能力。未來首先是全領(lǐng)域的,首先領(lǐng)域不局限于的商業(yè)智能( BI )這樣的范疇,第二個是大規(guī)模的數(shù)據(jù),第三個是隨處可見,隨處可見包括云、智能手機、嵌入式設(shè)備等,這些都會植入我們所謂的數(shù)據(jù)智能。

許式偉:相比 Python,我們可能更需要 Go+

這就意味著,今天移動互聯(lián)網(wǎng)的興起已經(jīng)讓很多公司非常牛,互聯(lián)網(wǎng)的平民化或互聯(lián)網(wǎng)應(yīng)用的誕生,催生了 BAT。但是我們知道,現(xiàn)在新興的、比較牛的公司,像字節(jié)跳動這種,其實不是互聯(lián)網(wǎng)的成功,而是數(shù)據(jù)科學(xué)的成功。今天仍然不能說,數(shù)據(jù)科學(xué)是平民化的,它的門檻非常高。

但是我們看到,智能應(yīng)用已經(jīng)產(chǎn)生了,智能應(yīng)用不會只局限于抖音這樣一個局部領(lǐng)域的生產(chǎn)力放大,各行各業(yè)都會被數(shù)據(jù)智能,也就是剛剛我們提到的第四范式所影響。

數(shù)據(jù)和數(shù)據(jù)科學(xué),一定會成為下一代生產(chǎn)力的支撐,今天產(chǎn)生了字節(jié)跳動、快手這樣的新興的公司,但它們只是一個開始,絕對不是結(jié)局。

在數(shù)據(jù)科學(xué)的原始時期,數(shù)據(jù)只是副產(chǎn)品。大家想象一下,在 BI 領(lǐng)域,數(shù)據(jù)只是一個副產(chǎn)品,只是用于后期的運營決策。

但是今天我們看到在大量的應(yīng)用里,數(shù)據(jù)就是原材料。這是非常不一樣的狀態(tài),這也是為什么,我把它叫做數(shù)據(jù)科學(xué)大爆發(fā)時期,這是我覺得今天為什么需要 Go+ 的原因,也是其背后的歷史背景。

許式偉:相比 Python,我們可能更需要 Go+

數(shù)據(jù)科學(xué)的未來一定是通用語言和數(shù)學(xué)軟件的融合,從而完成真正意義上的數(shù)據(jù)科學(xué)的基礎(chǔ)設(shè)施化。但在今天,數(shù)據(jù)科學(xué)的基礎(chǔ)設(shè)施化還遠(yuǎn)沒有完全完成,這是我自己的判斷。

許式偉:相比 Python,我們可能更需要 Go+

3今天的 Python 已經(jīng)很好了,為何需要 Go+?

當(dāng)然很多人會有疑問:今天的 Python 已經(jīng)很好了,在深度學(xué)習(xí)領(lǐng)域已經(jīng)被非常廣泛地使用,為什么 Python 還不夠,需要 Go+?其實我是認(rèn)為,Python 是成不了基礎(chǔ)設(shè)施的,它是一個腳本語言,我認(rèn)為僅僅是特定歷史階段的需要。

數(shù)據(jù)科學(xué)本身是一種算力革命,哪怕在芯片領(lǐng)域,數(shù)據(jù)也能干翻計算,這是 Nvidia 干翻 Intel 的核心原因。上層軟件領(lǐng)域就更加如此,一定會有一個新的基礎(chǔ)設(shè)施承載者需要出現(xiàn)。

算力本質(zhì)上是一種計算密集型業(yè)務(wù),Python 的背后是 C,只靠 Python 還是不行。今天是 C 和 Python 支撐了整個深度學(xué)習(xí),但數(shù)據(jù)科學(xué)一定還要進一步下沉,下沉的結(jié)果是什么?

許式偉:相比 Python,我們可能更需要 Go+

這是我們今天需要 Go+ 的原因!前面主要講我自己為什么認(rèn)為 Go+ 有商業(yè)化的機會。當(dāng)然我所說的商業(yè)化不一定是賺錢,大家不要誤會這一點,語言可能在大多數(shù)人心目中是一個不賺錢的東西,但是這不代表它不重要,它非常重要。

4Go+ 的設(shè)計理念

聊完數(shù)據(jù)科學(xué)的發(fā)展,接下來我們聊聊 Go+ 的設(shè)計理念。Go+ 為什么是今天這個樣子?計算背后要的是程序員,而數(shù)據(jù)科學(xué)背后要的是數(shù)據(jù)科學(xué)家或者叫分析師。這兩個角色其實還是不一樣的,雖然都是技術(shù)工作。我認(rèn)為培養(yǎng)程序員是相對容易的,今天程序員的數(shù)量是非常龐大的,但數(shù)據(jù)科學(xué)家的數(shù)量相對較少,這也是為什么前幾年深度學(xué)習(xí)興起以后,所謂的 AI 工程師薪資被炒翻了,比程序員貴很多。其實就是因為數(shù)據(jù)科學(xué)家不容易找。

這個角色承載著技術(shù)和商業(yè)的連接,要找到同時具備兩種能力的人是很難的。數(shù)據(jù)科學(xué)首先是一個技術(shù)工作,要的是技術(shù)能力,又要懂商業(yè)。今天仍然沒有非常體系化的培養(yǎng)數(shù)據(jù)科學(xué)家的能力,沒有這樣一個體系方法論。

許式偉:相比 Python,我們可能更需要 Go+

那么 Go+ 的核心理念又是什么呢?

第一個,我們試圖用 Go+ 來統(tǒng)一程序員和數(shù)據(jù)科學(xué)家,讓他們之間有共同話語,讓雙方能自然對話,我覺得這是 Go+ 最核心的一個思考點。Go+ 很重要的一個核心邏輯,是用一門語言讓兩個角色進行對話。

許式偉:相比 Python,我們可能更需要 Go+

在這個基礎(chǔ)上,我們延伸了一些設(shè)計邏輯。首先,Go+ 是一個靜態(tài)語言,語法是完全兼容 Go 的;第二,形式上要比 Go 更像腳本,有更低的學(xué)習(xí)門檻。Go 雖然在靜態(tài)語言里,可能學(xué)習(xí)門檻是低的,但還不夠低,沒有 Python 那么低;第三,很自然的,我們要做一個數(shù)據(jù)科學(xué)的語言,所以它必然要有更簡潔的、數(shù)學(xué)運算上的語言文法支持;第四是雙引擎,同時支持靜態(tài)編譯為可執(zhí)行文件,也支持編譯成字節(jié)碼來解釋執(zhí)行。

許式偉:相比 Python,我們可能更需要 Go+

為什么我們會選擇語法完全兼容 Go 呢?首先我個人很堅定地認(rèn)為,靜態(tài)語言擁有更強的生命力,更能跨越歷史的周期。大家也都很容易理解,語言是需要跨越周期的,語言的生命周期通常都非常長。我們不能很局限地說,當(dāng)前在流行些什么東西,我就如何決定語言的設(shè)計,實際上我們要找到那些能夠跨越周期的元素。

許式偉:相比 Python,我們可能更需要 Go+

第二,為什么是 Go?我個人認(rèn)為,在靜態(tài)語言里,Go 的語法設(shè)計最為精簡,學(xué)習(xí)門檻也是最低的,哪怕你以前沒有學(xué)過靜態(tài)語言,也很容易學(xué)會 Go。我們公司是最早招聘 Go 程序員的,但大部分招進來的人都不會 Go。我們用 Go 的時候,世界上真沒多少人認(rèn)為 Go 是未來的流行語言。我們自己實踐的經(jīng)驗表明,Go 語言兩周的學(xué)習(xí)基本上夠了,是門檻非常低的一門靜態(tài)語言。

但從數(shù)據(jù)科學(xué)語言來講,Go 的門檻還不夠低,Go+ 雖然完全兼容 Go,但我們希望它比 Go 的門檻還要更低。所以它形式上要比 Go 更像腳本,因為腳本往往更容易理解。我們希望 Go+ 學(xué)習(xí)門檻和 Python 處于同一個層次。

去年 5、6 月份 Go+ 剛誕生,差不多 10 月份左右,我就開始讓 13-14 歲,六年級到初一這個階段的三個小孩嘗試學(xué)習(xí) Go+。這個實踐證明,這個事情是可行的。他們能理解 Go+ 的設(shè)計,能夠自如地使用 Go+ 寫代碼。這也證明了我們在 Go 的基礎(chǔ)上做的所有簡化的努力是非常劃算的。

許式偉:相比 Python,我們可能更需要 Go+

我這里簡單列了一些 Go+ 的語法,當(dāng)然不是全部,只是一些我認(rèn)為還是相對比較簡潔的表達(dá)。有理數(shù) Python 里面沒有,我們認(rèn)為有理數(shù)在數(shù)據(jù)科學(xué)里,尤其在無損數(shù)值運算里,還是會非常常見。Go+ 內(nèi)置了有理數(shù)的支持。當(dāng)然 Map、Slice 基本上 Python 都有。

許式偉:相比 Python,我們可能更需要 Go+

列表理解(List comprehesion)其實也是 Python 有的,但我們對列表理解的支持非常的完整,基本上理解了 Go+ 中 for 循環(huán)怎么寫也就理解了列表理解。更多的還是數(shù)據(jù)科學(xué)的一些常規(guī)操作的簡潔表達(dá)。以上是一個大概語法示意,如果有朋友沒看過 Go+,希望可以大概對 Go+ 有個理解。

許式偉:相比 Python,我們可能更需要 Go+

Go+ 非常有意思的一點,它是唯一一個選擇了雙引擎的語言,既支持靜態(tài)編譯,也支持可解析執(zhí)行。

為什么要做雙引擎呢?因為我認(rèn)為程序員和數(shù)據(jù)科學(xué)家的訴求是不一樣的,數(shù)據(jù)科學(xué)家喜歡單步執(zhí)行,大家可以在心中回想一下你見過的數(shù)學(xué)軟件,包括 SAS、MATLAB,數(shù)學(xué)軟件交互都是單步執(zhí)行的方式。

這并不是因為數(shù)據(jù)科學(xué)家懶。程序員理解程序邏輯是可以放在腦子里的,我們腦子里知道程序邏輯寫得對不對。但數(shù)據(jù)科學(xué)家做計算的時候,不能知道計算結(jié)果對不對,因為人的計算能力比計算機弱太多了,所以一定要單步執(zhí)行看到計算結(jié)果,才能知道自己下一步應(yīng)該怎么辦,這是數(shù)據(jù)科學(xué)家和程序員工作模式完全不同的一個點。

因為他是在做計算而不是在做一種程序邏輯,所以他很難不去做單步執(zhí)行。

但當(dāng)數(shù)據(jù)科學(xué)家建了一種模型,最終要使用了,這時他仍然希望最終交付的是最大化的執(zhí)行效率,他一定不希望代碼運行很慢,所以這個時候他就又需要靜態(tài)編譯執(zhí)行,這也是為什么 Go+ 希望設(shè)計成雙引擎,因為調(diào)試階段和生產(chǎn)使用階段,工作模式完全不一樣。

許式偉:相比 Python,我們可能更需要 Go+

5Go+ 實現(xiàn)上的迭代

聊完 Go+ 的設(shè)計理念,我們進入最后一個 session,Go+ 實現(xiàn)上的迭代。當(dāng)前 Go+ 做到了什么份上?Go+ 雖然還沒有推出 1.0 版本,但是語法目前支持百分之六七十肯定有了,語法完成度還是不錯的。

Go+ 的源代碼,通過掃描器轉(zhuǎn)成一個 Go+ 的 Token,再通過一個 parser 變成 Go+ 的抽象的語法數(shù),常見語言都是這么干的。Go+ 的抽象語法樹轉(zhuǎn)化后有兩個分支,一個生成 Go 的代碼從而使其可以靜態(tài)編譯,另外一個分支生成字節(jié)碼解析執(zhí)行,分支的多態(tài)是通過引入了一個叫執(zhí)行規(guī)范(exec.spec)的東西,其實就是一個抽象的接口。

許式偉:相比 Python,我們可能更需要 Go+

當(dāng)前,我個人在迭代的過程中發(fā)現(xiàn)了一個問題,對一個初步加入 Go+ 團隊的人來說,是需要一段時間熟悉整個業(yè)務(wù)的。Go+ 執(zhí)行規(guī)范的部分,其實是一種抽象的 SAX 接口,也就是基于事件驅(qū)動,我有一個事件發(fā)送給接受方,接受方按自己的需要處理這個事件,這在文本處理里面比較常見。

我們之前設(shè)計的接口基本上是用事件驅(qū)動的模式來把不同組件連接起來。編譯器把抽象語法數(shù)解析完發(fā)出一些事件,這些事件被兩個代碼生成的模塊接收,按照自己的需求去干活。這個模式代碼還是有點難理解,尤其是編譯器里面又做一些復(fù)雜的事情,讓代碼比較難理解。大家如果了解過 Go 背后的實現(xiàn)邏輯,類型推導(dǎo)在 Go 里面比較復(fù)雜,其實我們編譯器的復(fù)雜性大部分是由類型推導(dǎo)導(dǎo)致的。

我當(dāng)前在試圖重構(gòu)這個邏輯,想把執(zhí)行規(guī)范部分變得不再是一個抽象的接口,而是一個標(biāo)準(zhǔn)實現(xiàn)的 DOM,這個 DOM 本身包含了類型推導(dǎo)的能力,從而使得編譯器相對比較簡單。講實現(xiàn)我今天沒法講的特別細(xì),后面有機會再展開。

許式偉:相比 Python,我們可能更需要 Go+

下面我想講一下 Go+ 下一步做的重心是什么。

首先,最核心的邏輯,還是希望今年能夠發(fā)布 1.0 版本,而 1.0 版本最重要的事情是把用戶的使用范式做最大化的確認(rèn),1.0 以后我希望和 Go 差不多,后面的語法變更是比較少的。當(dāng)前最重要的工作,是明確 Go+ 需要哪些最核心的語法,并且在 1.0 版本就盡量去支持,除非有一些特定的考量比如說像 Go 的范型這種特別復(fù)雜的語法特性,留到后續(xù)的版本去支持。Go+ 也是類似的,我們可能會放棄一些特別復(fù)雜的語法特性,但是基本上盡可能把大部分我們需要的語法特性在 1.0 版本里確定下來。

Go+ 1.0 我們會先進行單引擎的迭代,先做好靜態(tài)編譯的引擎,等 1.0 發(fā)布以后再迭代腳本的引擎。這也是基于上面我們說的用戶的使用范式優(yōu)先的理念下的一個決策。

許式偉:相比 Python,我們可能更需要 Go+

最后,我們希望用商業(yè)化的方式來運作 Go+,也會招聘 Go+ 的團隊成員,歡迎大家加入 Go+ 團隊!

我認(rèn)為 Go+ 的核心是首先統(tǒng)一了程序員和數(shù)據(jù)科學(xué)家的語言,讓雙方能夠自然對話。另外我非常堅定地相信 Go+ 會是數(shù)據(jù)科學(xué)的下一個變革,我自己非常興奮能夠做這樣一件事情,也非常歡迎認(rèn)可這件事的人加入我們。

許式偉:相比 Python,我們可能更需要 Go+

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )