你怎麼看把Lisp作為開發語言的物聯網平台?

視頻封面Smartmatrix(中文字幕)視頻 最近在indiegogo上出現了一款名為Zero Plus (Zero+)的物聯網開發平台,其獨特之處就是使用Lisp作為其開發語言。

我問過一些玩開源硬體和智能家居的朋友,他們說用Lisp語言絕對是最大的敗筆 :(

不過看看其在indiegogo上的介紹,感覺還不錯,有幾個比較有意思的特點:

1. Zero+使用的編程語言是Lisp,這種在人工智慧領域常用的編程語言,和人類語言比較相似,可以自定義編程語法,形成屬於你自己的個性化編程語言。

2. Web IDE提供調試列印,設置斷點,單步執行,查看代碼段,查看數據變數等調試功能。

3. 免編譯,免燒錄,免重啟。在終端和雲端都運行著由SmartMatrix團隊開發的Lisp解釋器,在Web IDE里你可以定義雲端和硬體終端的執行邏輯。特別值得注意的是,這裡提到了定義雲端執行邏輯,說明該平台使用了雲端的計算能力,並不像常見的平台只提供存儲和推送功能。

4. 把Zero+連接入網路,在世界上任何可以聯網的地方,打開Web IDE就可以對Zero+進行編程和調試。

我試著玩了一下Lisp的方言Racket,感覺Lisp還是很強大的。

大家來談談對這個平台的看法吧!或者談的更廣泛一點,大家認為好的物聯網開發平台應該是啥樣子,有哪些特點?


開發語言不是問題,現在用ASM做物聯網開發的也大有人在(追求高性能與硬體上的低成本)。我現在做物聯網開發用的是C++,為什麼會用C++呢?因為性能好,可以到內存級別的管理。

為什麼追求性能呢?因為我現在開發用的開發板,內存只有2KiB,時鐘頻率16MHz,AVR,快閃記憶體倒有32KiB。我要在這塊板子上實現數據採集與聯網上傳(通過GPRS網路),對象new多了會溢出重啟,導致我寫起來都兢兢戰戰的。

你的朋友覺得Lisp是敗筆,應該是認為解釋型語言在嵌入式執行效率不高,但是這塊開發板主頻高達360MHz,內存也有64MiB,應付起性能要求不高( 物聯網開發一般數據的分析處理都在伺服器上跑 )的物聯網開發來自然不是問題。

不過這樣就帶來了另一個問題,360MHz,64MiB內存,肯定不便宜吧,如果量產的話,成本高企。我覺得這才是問題所在,畢竟大家做嵌入式、智能硬體、物聯網都是想賺錢的。所以量產時,都要選擇不影響質量情況下的最低配置(例如好多路由器,主頻也是300MHz左右,內存就1~4MiB),這時候大家差不多都是用C/C++來做了,個別極端的就用ASM。

用Lisp的話,可能原來2KiB內存、16MHz就可以跑的東西,量產時硬要給上32KiB內存、96MHz才能跑(這個數我隨便說的),奢侈!

這個適合個人開發者自己玩。


這個服務是我們團隊負責設計的,

首先回答一下;

核心關鍵點是簡約的lisp虛擬機能夠適配大部分硬體和系統;

其次,是通過本地或者 服務端進行調度各個硬體的gpio和 i2c spi 串口等操作;

最後,可以遠程靈活封裝各種硬體介面服務;遠程分散式調試


作為有lisp使用經驗的開源硬體關注者,冒昧說一下。

這個東西顯然是直接在硬體上實現了個repl嘛...所謂的無需燒錄什麼的完全來源於此。

不過單單是這點的話就沒有什麼意思啦...燒錄在調試工具大大發展的現在並不是什麼痛點。

以我使用樹莓派的經驗(我也只有這個經驗),我十分期待能通過repl直接調gpio口...這會很強大有木有!因為lisp的code既是代碼也是數據結構,所以通過gpio傳來的東西天生就可以帶有一定結構而不是需要你自己去解析的序列化數據:這在人工智慧方面的作用不小,對於我所研究的數據分析方面,也可以減少相當大的工作量。

還記得多個樹莓派組成的超算不?在那個超算中通過gpio傳輸的數據必然存在著對結構的處理...如果能用java的話,那個處理一定要求數據對象都實現了Serializable介面。

###爪機先這樣吧,晚上再說####


目前開來,在很多情況下使用Lisp是不可取的(如stm32平台)

不過使用Lisp不失為未來的一個方向,

現在智能硬體開發不得不說迭代是個大問題,包括硬體上的和軟體上的,

硬體上的只能期待材料學能有什麼突破,

不過作為軟體上的,如果使用lisp就可以做到更靈活的部署代碼,達到無縫的升級體驗


我只想說用lisp太興奮了,如果用其他的我可能不會買,用lisp 一定要支持,這東西開賣了嗎


所有語言在複雜到一定程度的時候都會包含一個醜陋而且不完整的 LISP ,所以直接用 LISP 是最好的

LISP 的可擴展性和靈活性不是其他常見用在開源硬體上的語言能比的,這對於這種設備來說尤為重要

最後:LISP 大法好


LISP和人類語言相似,開玩笑吧?


再重申一次:只會用語言鑒定能力的都是二流碼農,真正的程序員是不需要強調自己用什麼語言來申明優越感這個變數的喵!

好了,Lisp語言本身很不錯沒什麼大問題,但是最大問題大概是))))))))))))))))))))))))))))))))))))))))))))))))

本人也正在自己家裡玩智能家居的聯網,底層介面是OpenWRT+IPv6+UDP,好了這下徹底語言無關了喵~歡迎在編輯器里玩咱家的燈泡喵~


嵌入式軟體平台並不少見,比如.net 平台的.net mf,Jvm家族的Java ME。都是試圖隔離底層硬體對上層程序員提供統一介面的一種嘗試。理想固然美好,但都是建立在已經有人為你在硬體平台上移植好平台之後。移植代碼託管環境是一件十分十分困難的事情,沒有幾年嵌入式工作經驗是絕對做不來的。

即使有人已經為你一直好了平台,還是有可能遇到底層封裝不能滿足你需求的時候,比如我暑假花了九牛二虎之力把.net mf在stm32上的太過簡略的adc介面改成支持連續採樣,要讓一個有經驗的嵌入式工程師來做的話估計幾天就能完成,畢竟硬體這行人與人之間的開發效率比人與豬之間還要大。

一般的軟體工程師接觸到的硬體知識太少,遇上這種事多數只能讓做移植的人來修改託管環境,這樣一來二去造成開發周期長不說,不同硬體平台的特殊需求也不同,同一平台不同硬體下的統一性會大打則扣。

總的來說Lisp用來作開發語言是極好的,我舉雙手支持。但要推廣出去,還得找幾個實力強勁的軟硬體工程師為平台做幾個常見硬體平台的移植版本。微軟的.net mf平台做了十幾年才有十來個移植版本,雖然有支持vs在線調試和燒錄這麼方便的特性,還是用C#寫的代碼,但現在依然只有少數的人和組織在使用。

-----------------------------

好吧,看完視頻後發現這不是要做軟體平台而是連同硬體打包出去賣啊,我只想問一句:

這東西哪裡能買到!!


推薦閱讀:

裝修的時候,除了220v電源外再由一個變壓器集中提供5v的usb電源是否可行?
小米會不會推出智能馬桶蓋?
市面上的智能插座使用安全嗎?遠程控制的原理是什麼?
這個所謂的智能電力產品是否能被大眾所接受?
如何評價 2017 年 8 月 10 日發布的智米空調?

TAG:物聯網 | Arduino | Lisp | 智能家居 | OpenWrt |