近日,有媒體報(bào)道稱,一款面向智能物聯(lián)網(wǎng)和編程教育的國產(chǎn)編程語言推出,名為木蘭。消息一出,引發(fā)了開發(fā)者社區(qū)的討論。但有人發(fā)現(xiàn),下載的包解壓后,——是Python?
編程語言是人們與計(jì)算機(jī)交互的重要工具。從C和C++到Python和Julia,不同的編程語言由于各自的特性和功能而擁有龐大的開發(fā)社區(qū)。近日,國內(nèi)有報(bào)道稱,中國科學(xué)院計(jì)算技術(shù)研究所下屬計(jì)算機(jī)體系結(jié)構(gòu)國家重點(diǎn)實(shí)驗(yàn)室編譯組牽頭開發(fā)了一種新的編程語言: Mulan(模塊單元語言)。
據(jù)相關(guān)報(bào)道,該編程語言完全由編譯團(tuán)隊(duì)設(shè)計(jì)、開發(fā)和實(shí)現(xiàn)。配套的編譯器和集成開發(fā)工具也完全由團(tuán)隊(duì)獨(dú)立實(shí)現(xiàn)。它是一種真正掌握核心技術(shù)的編程語言。不過,機(jī)器之心在中科院計(jì)算技術(shù)研究所的官網(wǎng)上并未找到相關(guān)信息。
報(bào)告一出,就引起了開發(fā)者社區(qū)的關(guān)注,不少開發(fā)者已經(jīng)開始使用和研究。解壓后我們發(fā)現(xiàn)這居然是Python 3.7?
目前,木蘭語言可供下載。
下載地址:http://www.dongshouke.com/download/ulang-0.2.2.exe
“從編程教育開始,面向物聯(lián)網(wǎng)智能化”
據(jù)新聞稿稱,這種編程語言面向智能物聯(lián)網(wǎng)的未來。
在智能物聯(lián)網(wǎng)應(yīng)用領(lǐng)域,目前還沒有專門的編程語言。在現(xiàn)有語言系統(tǒng)中開發(fā)智能應(yīng)用需要多名工程師、跨多種語言實(shí)現(xiàn),導(dǎo)致開發(fā)效率低下。 “木蘭”致力于打造物聯(lián)網(wǎng)智能執(zhí)行平臺(tái),為書面應(yīng)用提供執(zhí)行環(huán)境。
在物聯(lián)網(wǎng)領(lǐng)域,目前還沒有專門的編程語言。現(xiàn)有的物聯(lián)網(wǎng)應(yīng)用開發(fā)流程需要多個(gè)工程師合作,以跨語言的方式實(shí)現(xiàn)應(yīng)用,效率較低。木蘭的誕生是為了提高效率,打造物聯(lián)網(wǎng)智能執(zhí)行平臺(tái)。
但由于該語言的生態(tài)尚未成熟,所以在培育生態(tài)的早期階段,木蘭將更多地用于青少年編程教育中培育生態(tài)。據(jù)稱,基于《花木蘭》自主研發(fā)的編程軟件、人工智能教材、教學(xué)設(shè)備等已在中小學(xué)、幼兒園投入使用。
官網(wǎng)介紹,“花木蘭”是中科智信自主研發(fā)、專為人工智能教育設(shè)計(jì)的中國自主知識(shí)產(chǎn)權(quán)編程語言。由于其目的主要是教育,設(shè)計(jì)上有意回避了編程語言的一些復(fù)雜功能,如編程環(huán)境調(diào)試等,以免學(xué)生在剛開始學(xué)習(xí)編程時(shí)陷入細(xì)節(jié)的泥潭。開發(fā)團(tuán)隊(duì)更傾向于讓《花木蘭》突出易懂、易學(xué)、易讀、易維護(hù)的特點(diǎn)。同時(shí)該語言目前支持跨平臺(tái),兼容Android、UNIX、Windows。
從軟件角度來看,就目前的編程教育市場(chǎng)而言,類似的編程軟件并不在少數(shù),而且還采用圖形化編程來降低教育門檻。因此,就實(shí)際差異而言,我們還是要把焦點(diǎn)回歸到編程語言“木蘭”上。
木蘭的語言是什么樣的?
大家對(duì)“國產(chǎn)語言”抱有很大的期待,很多開發(fā)者都下載了ulang-0.2.2.exe“木蘭”語言環(huán)境。打開木蘭語言環(huán)境后,首先出現(xiàn)的就是類似命令行的編程環(huán)境。我們會(huì)發(fā)現(xiàn)它的很多功能和Python是一致的。在編程界面中輸入help可以看到一些相關(guān)信息,但是我們沒有找到更多的編程語言文檔。
一般來說,木蘭語言除了基本的數(shù)據(jù)結(jié)構(gòu)和函數(shù)之外,還增加了一些基本的數(shù)學(xué)運(yùn)算,比如對(duì)數(shù)、指數(shù)、三角函數(shù)等,也許它們更適合一些基礎(chǔ)教育。
歡迎使用ulang 的REPL。輸入“幫助”以獲取更多信息。 a=['hello', 'world'] print(a) [hello, world] print(typeof(a)) 列表print(cos(90)) - 0.4480736161291701 print(cos(45)) 0.5253219888177297 print(cos(0) )) 1.0
從開箱到熱議
在知乎上,不少開發(fā)者發(fā)現(xiàn),解壓后的木蘭語言其實(shí)是基于Python構(gòu)建的,Python構(gòu)建的環(huán)境、包和項(xiàng)目都被編譯成可執(zhí)行文件。那么看來木蘭只是在頂層做了一個(gè)接口,將底層的編譯、優(yōu)化等諸多工作全部交給了原來的Python?
以下是EXE文件的解包結(jié)果(使用PyInstaller Extractor):
從解包結(jié)果可以看出,“花木蘭”語言使用Pyinstaller將Python文件打包成EXE可執(zhí)行文件。
事實(shí)上,我們之前比較熟悉的文言編程語言,顯然只關(guān)注語法和前端,把所有底層操作都交給了JavaScript 或Python。如果你只是考慮給孩子編程,把Python環(huán)境打包成一個(gè)可運(yùn)行的文件,那么這可能沒問題。如果想要打造一種具有自主產(chǎn)權(quán)的編程語言,需要考慮的事情太多了。語言有什么特點(diǎn),如何優(yōu)化編譯,如何保證運(yùn)行速度等等都是艱巨的問題。
關(guān)于文言編程開源項(xiàng)目,我們認(rèn)為在業(yè)余時(shí)間寫一些很酷的文言代碼是一個(gè)非常好的嘗試。但這樣的語言不能用于生產(chǎn)或研究環(huán)境,只能作為小型娛樂項(xiàng)目使用。如果要針對(duì)特定領(lǐng)域做出新的語言,底層的優(yōu)化和設(shè)計(jì)就必須單獨(dú)完成。只有這樣的產(chǎn)品才能被稱為具有特色的獨(dú)立編程語言。
開發(fā)者社區(qū):缺陷較多
一位開發(fā)者從以下三個(gè)角度評(píng)價(jià)木蘭語言:
1、能否滿足實(shí)際需求:一個(gè)程序需要很多特性才能使其能夠在某些場(chǎng)景下工作。但目前木蘭語言中似乎還沒有體現(xiàn)出這樣的特點(diǎn)。
2、是否融入開源社區(qū):不開源的語言很難進(jìn)步。
3、是否適合青少年編程:作為一種教育語言,它不像圖形符號(hào)語言那么直觀。學(xué)生畢業(yè)后工作時(shí)仍然需要重新學(xué)習(xí)編程語言。
更多相關(guān)討論請(qǐng)查看鏈接:https://www.zhihu.com/question/366509495
許多其他開發(fā)者也表達(dá)了他們的意見,無論是抱怨語言本身的設(shè)計(jì)還是編程語言的周邊材料。同時(shí)從大家的評(píng)論中也可以看出,我們希望在編程語言、系統(tǒng)框架等底層架構(gòu)和工具方面做出真正的貢獻(xiàn)。這些貢獻(xiàn)可能需要很長(zhǎng)的時(shí)間來解決,需要大量的工程來優(yōu)化,但這正是我們應(yīng)該努力克服的。