近日有媒體稱,一款面向智能物聯(lián)網(wǎng)和編程教育的國產(chǎn)編程語言出世,名為木蘭。消息一出,引起了開發(fā)者社區(qū)的討論。但有人發(fā)現(xiàn),下載的程序包解包后——是個 Python?
隨著人機交互頻次的日益增長,編程正成為這個時代“第三重要的基礎(chǔ)學(xué)科”,從 C、C++到 Python、Julia,不同的編程語言因其本身的特性和功能而有著龐大的開發(fā)社區(qū)。
此外,一旦某個編程語言在一個領(lǐng)域建立了自己的生態(tài)系統(tǒng),那么它的地位幾乎很難撼動,如谷歌公司在云計算領(lǐng)域推出的Go語言、蘋果公司自行設(shè)計的Swift語言、Oracle控制的Java語言標(biāo)準(zhǔn)等等。
日前,有媒體報道稱中國科學(xué)院計算技術(shù)研究所(以下簡稱中科院計算所)計算機體系結(jié)構(gòu)國家重點實驗室表示,由該實驗室編譯組主導(dǎo)研發(fā)的國產(chǎn)編程語言“木蘭”(Mulan:Module Unit Language)正式發(fā)布,“木蘭”定位于面向智能物聯(lián)應(yīng)用、采用最新編程語言設(shè)計理念和編譯技術(shù)的程序設(shè)計語言,開發(fā)團隊致力于將其打造為“智能物聯(lián)時代的C語言”。
報道還稱,“木蘭”是由編譯實驗室完全自主設(shè)計、開發(fā)和實現(xiàn)的編程語言,與之配套的編譯器與集成開發(fā)工具也完全由團隊自主實現(xiàn),是真正掌握核心技術(shù)的編程語言。
目前,木蘭語言已可以下載。下載地址:dongshouke.com
報道一出,便引起了開發(fā)者們注意,開發(fā)者們紛紛前往下載使用和研究,然而解包結(jié)果發(fā)現(xiàn),其實這是個 Python 3.7?
開發(fā)者發(fā)布學(xué)習(xí)嘗鮮筆記: 和python幾乎一樣 !
對于完全自主設(shè)計的“國產(chǎn)編程語言”,大家的期待都非常大,網(wǎng)友@沉迷單車的追風(fēng)少年 就在第一時間前往官網(wǎng)下載。
下載完成后卻發(fā)現(xiàn)圖標(biāo)有點不太對勁。
這不明顯是pyinstall打包的嗎?該網(wǎng)友吐槽到:我發(fā)布pyqt的軟件都知道換個圖標(biāo),這么大的項目連圖標(biāo)都不換?
打開之后就是類似python一樣的對話框
提供了這么多函數(shù),和python幾乎一樣啊
試一下反向破譯一下,以為會加密,畢竟是一個商用軟件,我們自己寫pyqt有時候都加密
但是,結(jié)果一點加密都沒有,直接破解了:
就是python寫的啊。
同樣在在知乎上也有很多開發(fā)者對此進行討論。
很多開發(fā)者發(fā)現(xiàn)解包后的木蘭語言其實就是建立在 Python 之上,將 Python 構(gòu)建的環(huán)境、包和項目都編譯成一個可執(zhí)行文件。所以似乎木蘭只是在頂層做了一個接口,將底層編譯、優(yōu)化等眾多工作都交給了原版 Python?
如下所示為 EXE 文件的解包結(jié)果(采用 PyInstaller Extractor):
從解包結(jié)果可知,「木蘭」語言是通過 Pyinstaller 將 Python 文件打包成 EXE 可執(zhí)行文件。
其實之前我們比較熟悉的文言編程語言,它就非常明確只關(guān)注語法和前端,把所有底層操作都留給了 JavaScript 或 Python。
開發(fā)者社區(qū):槽點略多
一位開發(fā)者從以下三個角度評價了木蘭語言:
1. 能否滿足實際需求:一門編程需要需要很多特性,使其能夠勝任一些場景中的工作。但是目前似乎沒有看到木蘭語言體現(xiàn)的特性。
2. 是否融入開源社區(qū):不開源的語言很難進步。
3. 是否適合青少年編程:作為教育語言,不像圖形符號語言那樣直觀。而學(xué)生學(xué)成后在工作中依然需要重新學(xué)習(xí)編程語言。