程式設計語言是人們和計算機進行互動的重要工具。從 C、C++到 Python、Julia,不同的程式設計語言因其本身的特性和功能而有着龐大的開發社群。近日有國内報道稱,中國科學院計算技術研究所(中科院計算所)旗下的計算機體系結構國家重點實驗室編譯組主導開發了一門新的程式設計語言:木蘭(Mulan:Module Unit Language)。
據相關報道稱,該程式設計語言由編譯組完全自主設計、開發和實作。與之配套的編譯器與內建開發工具也完全由團隊自主實作的,是真正掌握核心技術的程式設計語言。但機器之心并未在中科院計算所官網找到相關資訊。
報道一出,便引起了開發者社群的注意,已有很多開發者進行了使用和研究。解包結果發現,其實這是個 Python 3.7?
目前,木蘭語言已可以下載下傳。
下載下傳位址:
http://www.dongshouke.com/download/ulang-0.2.2.exe「程式設計教育入手,面向物聯網智能」
據釋出的消息稱,這門程式設計語言面向未來的智能物聯網。
在智能物聯應用領域,尚無一款專用的程式設計語言。在既有的語言系統中做智能應用開發,需要多個工程師、跨多種語言實作,導緻開發效率低下。「木蘭」就緻力于打造物聯網智能執行平台,并為編寫的應用程式提供執行環境。
在物聯網領域,目前沒有專用的程式設計語言。現有的物聯網應用開發過程中,需要多個工程師合作,通過跨語言的方式實作應用,這樣一來效率也比較低。出于提升效率,打造物聯網智能執行平台的目的,木蘭應運而生。
但是,由于這門語言的生态尚不成熟,是以在早期培育生态的階段,木蘭将會更多地被用于青少年程式設計教育入手培育生态。據稱,以「木蘭」為基礎延伸的自主研發程式設計軟體、人工智能教材、教學裝備等已投入到中國小、幼稚園使用。
據官網介紹,「木蘭」是專為人工智能教育而生的中國自主知識産權程式設計語言,由中科智芯自主研發。由于其目的是以教育為主,是以從設計上有意避開了一些程式設計語言的複雜特性,如程式設計的環境調試等,意在讓學生在學習程式設計之初時不被細節所牽絆。開發團隊更傾向使「木蘭」突出易了解、易學習、易閱讀、易維護的特性,同時該語言目前支援跨平台,對 Android、UNIX、Windows 可相容。
單從軟體角度看,就目前程式設計教育市場而言,類似的程式設計軟體不占少數,并且為降低教育門檻同樣使用圖形化程式設計。是以就實質的差異點相比較,還是得将聚焦點回歸到程式設計語言「木蘭」上。
木蘭語言是什麼樣的
對于「國産語言」,大家的期待都非常大,很多開發者都下載下傳了 ulang-0.2.2.exe「木蘭」語言環境。打開木蘭語言環境後,首先呈現的是類似指令行的程式設計環境,我們會發現它的函數很多都和 Python 一緻。在程式設計界面中,鍵入 help 就能看到一些相關資訊,不過我們并沒有找到更多的程式設計語言文檔。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5CZzYjYxIWMiN2YmlTZlVTOhBjY0YzNldjZkJDM3gjNk9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.jpg)
Welcome to ulang's REPL..
Type 'help' for more informations.
a = ['hello', 'world']
print(a)
[hello, world]>
print(typeof(a))
list>
print(cos(90))
-0.4480736161291701>
print(cos(45))
0.5253219888177297>
print(cos(0))
1.0>
從解包到熱議
在知乎上,很多開發者發現解包後的木蘭語言其實就是建立在 Python 之上,将 Python 建構的環境、包和項目都編譯成一個可執行檔案。是以似乎木蘭隻是在頂層做了一個接口,将底層編譯、優化等衆多工作都交給了原版 Python?
如下所示為 EXE 檔案的解包結果(采用 PyInstaller Extractor):
從解包結果可知,「木蘭」語言是通過 Pyinstaller 将 Python 檔案打包成 EXE 可執行檔案。
其實之前我們比較熟悉的
文言程式設計語言,它就非常明确隻關注文法和前端,把所有底層操作都留給了 JavaScript 或 Python。如果隻考慮面向少兒程式設計,把 Python 環境打包到一個可運作的檔案,那麼這可能是沒問題的。如果說要是建構一種自主産權的程式設計語言,那麼要考慮的東西實在是太多了,語言有什麼特性、編譯怎麼優化、運作速度怎麼保證等等都是艱巨的問題。
對于文言程式設計開源項目,我們認為它是非常好的嘗試,能在閑暇時間寫一些炫酷的文言代碼。但這樣的語言是不能用于生産或研究環境的,隻能是一種娛樂性的小項目。如果說是想要針對特定領域做一種新語言,底層優化與設計肯定是需要單獨做的,這樣的産品才能稱得上有特色的自主程式設計語言。
開發者社群:槽點略多
一位開發者從以下三個角度評價了木蘭語言:
1. 能否滿足實際需求:一門程式設計需要需要很多特性,使其能夠勝任一些場景中的工作。但是目前似乎沒有看到木蘭語言展現的特性。
2. 是否融入開源社群:不開源的語言很難進步。
3. 是否适合青少年程式設計:作為教育語言,不像圖形符号語言那樣直覺。而學生學成後在工作中依然需要重新學習程式設計語言。
更多相關讨論可檢視連結:
https://www.zhihu.com/question/366509495其它很多開發者也都發表了自己的看法,不論是吐槽語言本身的設計,還是吐槽程式設計語言的周邊資料。與此同時,從大家的評論中可以看出,我們希望在程式設計語言、系統架構等底層架構與工具上,做出真正的貢獻。這些貢獻可以需要很長的時間來沉澱,很多的工程來優化,但這才是我們該努力攻破的。
2019機器之心人工智能六大年度獎項評選結果正式公布!關注創業先鋒,聚焦産品案例。點選查閱完整評選結果,及各獲選企業、産品/解決方案、應用案例2019年度總結。