軟件工程師摻和硬件開(kāi)發(fā)钙勃?這群技術(shù)大神想用軟件定義硬件
文章來(lái)源:深圳灣
從互聯(lián)網(wǎng)到物聯(lián)網(wǎng)(Internet of Things, IoT)是大家認(rèn)可的未來(lái)方向唠帝,IoT 這個(gè)詞已經(jīng)說(shuō)了很多年,然而它并沒(méi)有人們預(yù)想的那樣迅速。
很多人只是簡(jiǎn)單地認(rèn)為「智能硬件」就是把「 I 」層面的東西與「 T 」的層面的東西結(jié)合,實(shí)現(xiàn)「軟硬結(jié)合」肠阱,就成為「 IoT 」了——以為把原有的電子產(chǎn)品裝上一個(gè) Wi-Fi 或其他通訊模塊,再連上手機(jī) app 后朴读,就是 IoT 了屹徘,或者以為做單片機(jī)開(kāi)發(fā)的人已經(jīng)把功能都做完了,只要把硬件設(shè)備聯(lián)網(wǎng)衅金,就算 IoT 了噪伊。
然而簿煌,聯(lián)網(wǎng)并不是智能硬件的全部,智能硬件應(yīng)該解決的是鉴吹,硬件和真實(shí)世界的交互啦吧。那為什么現(xiàn)在的硬件做不到呢?
首先,硬件和軟件應(yīng)用完全就是兩套詞匯表在孝。比如诚啃,做硬件的人關(guān)心的是 GPIO、I2C私沮、時(shí)序始赎、驅(qū)動(dòng)等,而做應(yīng)用的人關(guān)心的是仔燕,需求造垛、用戶體驗(yàn)、高可用性晰搀、系統(tǒng)架構(gòu)等五辽。
即便是只在硬件開(kāi)發(fā)領(lǐng)域,做系統(tǒng)的和做硬件的也是不同的話語(yǔ)體系外恕,有人關(guān)注進(jìn)程杆逗,有人關(guān)注晶振;有人關(guān)注嵌入式系統(tǒng)鳞疲,有人關(guān)注 PCB……
這就是軟硬件之間的鴻溝罪郊,讓一個(gè)人同時(shí)具備硬件和應(yīng)用兩套技能,是很高的要求尚洽。
其次悔橄,市面上快速開(kāi)發(fā)出智能硬件應(yīng)用的工具并不理想。樹(shù)莓派固然很好腺毫,但是依然需要寫(xiě) C 寫(xiě)驅(qū)動(dòng)橄维,搞定內(nèi)存管理、進(jìn)程調(diào)度拴曲、異步 I/O 的這些問(wèn)題争舞。 對(duì)于一個(gè)不懂嵌入式開(kāi)發(fā)的人來(lái)說(shuō),光是一個(gè)對(duì) GPIO 口進(jìn)行高電頻變低電頻的操作澈灼,就足以讓開(kāi)發(fā)者不知所措竞川。
再次店溢,智能硬件行業(yè),應(yīng)用數(shù)量依然太少委乌,開(kāi)發(fā)者生態(tài)沒(méi)有起來(lái)床牧。除了聯(lián)網(wǎng),開(kāi)發(fā)者想多做一點(diǎn)事情都很難遭贸「昕龋可能是因?yàn)榍度胧介_(kāi)發(fā)難的痛點(diǎn)太痛,開(kāi)發(fā)者數(shù)量和質(zhì)量都跟不上智能硬件發(fā)展下日益增長(zhǎng)的需求壕吹。
生態(tài)沒(méi)跟上著蛙,獨(dú)自作戰(zhàn)的各個(gè)廠家就要從劃一塊內(nèi)存開(kāi)始,編寫(xiě)驅(qū)動(dòng)耳贬,寫(xiě)底層程序踏堡,制作水平參差不齊的硬件應(yīng)用產(chǎn)品,效率之低可以想象咒劲。很多東西即便開(kāi)發(fā)者再熟悉顷蟆,到了一個(gè)新的環(huán)境可能就要重新做一遍,比如腐魂,常見(jiàn)的網(wǎng)絡(luò)協(xié)議要移植帐偎,常見(jiàn)的驅(qū)動(dòng)要編寫(xiě),「重復(fù)造輪子」的現(xiàn)象十分嚴(yán)重蛔屹。
就像 Nokia 和早期的功能機(jī)時(shí)代肮街,很多人都想編寫(xiě)手機(jī)應(yīng)用,但只有很少量的程序員有能力編寫(xiě)手機(jī)應(yīng)用判导。
有了 iOS 和 Android,應(yīng)用開(kāi)發(fā)的門(mén)檻降了下來(lái)昵骤,大量的程序員涌了進(jìn)來(lái)树碱,才有了我們看到的移動(dòng)互聯(lián)網(wǎng)的繁榮,也才有了微信等爆款應(yīng)用变秦。
在硬件應(yīng)用開(kāi)發(fā)領(lǐng)域成榜,有沒(méi)有類似 iOS 和 Android 的平臺(tái),可以解決同樣的問(wèn)題蹦玫,降低硬件應(yīng)用開(kāi)發(fā)的門(mén)檻赎婚,讓更多有應(yīng)用開(kāi)發(fā)能力的人進(jìn)入到這個(gè)領(lǐng)域呢刘绣?
我們遇到了 Ruff。
一個(gè)專為硬件應(yīng)用開(kāi)發(fā)而設(shè)計(jì)的 JavaScript 運(yùn)行時(shí)挣输,幫助開(kāi)發(fā)者快速的開(kāi)發(fā)出想要的智能硬件纬凤。
Any application that can be written in JavaScript, will eventually be written in JavaScript...
——Jeff Atwood
Ruff 選擇了程序員基數(shù)龐大撩嚼、唯一的全棧語(yǔ)言 JavaScript 作為程序設(shè)計(jì)的語(yǔ)言停士。對(duì)硬件進(jìn)行了抽象,使用了基于事件驅(qū)動(dòng)完丽、異步 I/O 的模型恋技,使硬件開(kāi)發(fā)變得輕量而且高效。一個(gè)軟件開(kāi)發(fā)工程師舰涌,通過(guò) Ruff 可以成為一個(gè)全棧工程師。
通過(guò) Ruff瓷耙,開(kāi)發(fā)者無(wú)需成為上懂應(yīng)用開(kāi)發(fā),中懂網(wǎng)絡(luò)刁赖,下懂 CPU 的全能者搁痛,也無(wú)需看復(fù)雜的電路圖和數(shù)據(jù)手冊(cè)。一個(gè)只有軟件開(kāi)發(fā)經(jīng)驗(yàn)的開(kāi)發(fā)者可以輕松開(kāi)發(fā)硬件宇弛,驅(qū)動(dòng)程序員則可以編寫(xiě)驅(qū)動(dòng)鸡典,發(fā)布到軟件倉(cāng)庫(kù)。
提供一個(gè)物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)
Ruff 為開(kāi)發(fā)者提供了完善的開(kāi)發(fā)服務(wù)枪芒。從項(xiàng)目生產(chǎn)彻况、軟件包管理、應(yīng)用管理舅踪、外設(shè)管理到固件管理等一系列現(xiàn)代軟件開(kāi)發(fā)方式纽甘。PC 端完成開(kāi)發(fā),無(wú)需燒板子抽碌,提升開(kāi)發(fā)者的開(kāi)發(fā)效率悍赢。
開(kāi)放的軟件倉(cāng)庫(kù),無(wú)限拓展货徙。驅(qū)動(dòng)左权、軟件包、通信痴颊、協(xié)議等不斷拓展軟件倉(cāng)庫(kù)內(nèi)容赏迟。
提供完善的測(cè)試框架,支持 assert蠢棱、test瀑梗、mock 等模塊支持烹笔,在開(kāi)發(fā)機(jī)上測(cè)試邏輯,硬件測(cè)試也能 TDD抛丽。
這是一個(gè)有意思的團(tuán)隊(duì)蒿柳,這是一個(gè)有意思的創(chuàng)業(yè)故事饶套。
Ruff 的創(chuàng)始人 Roy Li 其實(shí)有一個(gè)更被廣泛接受的 title:「黑客網(wǎng)紅」。兩年前他的簡(jiǎn)歷是這樣寫(xiě)的:Roy Li(人稱厲哥) 加拿大籍華人垒探,微信公眾號(hào)人生如戲( mintshow )作者妓蛮;黑客、開(kāi)發(fā)者圾叼、創(chuàng)業(yè)者蛤克,經(jīng)歷豐富,現(xiàn)已退休夷蚊,在加拿大開(kāi)一個(gè)團(tuán)購(gòu)網(wǎng)養(yǎng)老构挤。
上個(gè)月深圳灣邀請(qǐng) Roy 參加「WARE 2016 新硬件生態(tài)大會(huì)」,再用起「網(wǎng)紅」這個(gè) title 時(shí)惕鼓,反而被他吐槽了筋现,「我不是網(wǎng)紅,我是創(chuàng)業(yè)者」箱歧,他現(xiàn)在有了另一個(gè)更讓他驕傲的身份——Ruff 創(chuàng)始人矾飞。
Ruff 的團(tuán)隊(duì)是清一色的技術(shù)出身,核心技術(shù)團(tuán)隊(duì)更是讓很多初創(chuàng)團(tuán)隊(duì)看著流口水:
DK呀邢,Roy 的同學(xué)凰慈,曾創(chuàng)業(yè)做了一家游戲公司,聽(tīng)完 Roy 的想法后驼鹅,不久便決定放棄游戲公司微谓,拉上當(dāng)時(shí)公司的 CTO 老牛加入 Ruff。
鄭曄输钩,MOCO 框架作者豺型、Oracle Duke 選擇獎(jiǎng)獲得者。Roy 用一段 Lisp 代碼秀了一個(gè) Demo 之后买乃,鄭曄就成為了 Ruff CTO姻氨。
周愛(ài)民,國(guó)內(nèi)軟件開(kāi)發(fā)界資深架構(gòu)師剪验、軟件工程師肴焊,1996 年起開(kāi)始涉足商業(yè)軟件領(lǐng)域開(kāi)發(fā)前联,有近 20 年軟件開(kāi)發(fā)與架構(gòu)、項(xiàng)目管理娶眷、團(tuán)隊(duì)建設(shè)的經(jīng)驗(yàn)似嗤,曾任盛大網(wǎng)絡(luò)平臺(tái)架構(gòu)師、支付寶業(yè)務(wù)架構(gòu)師届宠、豌豆莢架構(gòu)師等職烁落,是 Borland Delphi 產(chǎn)品技術(shù)專家,也是 Qomo豌注、N4C 等開(kāi)源項(xiàng)目的發(fā)起者伤塌。2003 年 5 月被美國(guó) Borland 公司授予「Borland Delphi 產(chǎn)品專家」稱號(hào),并授予「論壇特別貢獻(xiàn)獎(jiǎng)」轧铁。至今已經(jīng)出版了《Delphi 源代碼分析》每聪、《JavaScript 語(yǔ)言精髓與編程實(shí)踐》、《大道至簡(jiǎn)——軟件工程實(shí)踐者的思想》齿风、《大道至易——實(shí)踐者的思想》等書(shū)药薯。如今也被 Roy 挖來(lái)了。
團(tuán)隊(duì)齊活兒了聂宾,下面就是找錢(qián)了果善,天使投資人里面誰(shuí)能看懂開(kāi)發(fā)者服務(wù)的項(xiàng)目呢诊笤? Roy 想到了 CSDN 創(chuàng)始人蔣濤系谐。 蔣濤只問(wèn)了一句:「你們公司注冊(cè)了沒(méi)有?」在得知公司還沒(méi)注冊(cè)后便說(shuō):「?jìng)€(gè)人賬號(hào)拿來(lái)讨跟,我明天給你打錢(qián)纪他。」
Ruff 的創(chuàng)始人 Roy 在博客里這樣寫(xiě)道:
「滴滴的切入點(diǎn)是讓出租車(chē)裝個(gè)軟件澜共, 諾基亞的切入點(diǎn)是讓現(xiàn)有的手機(jī)應(yīng)用開(kāi)發(fā)者做塞班開(kāi)發(fā)…… 然而這些注定不會(huì)有卵用向叉。 Uber 告訴我們,只有讓不開(kāi)出租車(chē)的人去開(kāi)出租車(chē)才能更好解決出行問(wèn)題嗦董,Airbnb 告訴我們母谎,只有讓不開(kāi)酒店的人開(kāi)酒店才能更好解決旅行住宿問(wèn)題。在塞班有了 70% 以上市場(chǎng)的情況下京革,通過(guò)讓互聯(lián)網(wǎng)的 Java 工程師進(jìn)來(lái)開(kāi)發(fā)應(yīng)用奇唤,安卓讓移動(dòng)互聯(lián)網(wǎng)全面爆發(fā)了幸斥。」
Ruff 做的事情就是讓軟件定義硬件咬扇,讓軟件開(kāi)發(fā)者可以開(kāi)發(fā)硬件甲葬。這是一個(gè)增量市場(chǎng)。
在互聯(lián)網(wǎng)領(lǐng)域冗栗,過(guò)去十多年我們看到了很多軟件開(kāi)發(fā)者演顾,借助平臺(tái)生態(tài)的發(fā)展之勢(shì),快速成長(zhǎng)起來(lái)隅居;而在硬件領(lǐng)域钠至,我們看到原有的以制造為基礎(chǔ)的硬件生態(tài),正在有更多更豐富的平臺(tái)服務(wù)商出現(xiàn)胎源,他們?cè)谕苿?dòng)著應(yīng)用開(kāi)發(fā)者更快更容易的開(kāi)發(fā)硬件棉钧,也推動(dòng)著這個(gè)生態(tài)的繁榮。
主筆:陳壹零原創(chuàng):深圳灣
轉(zhuǎn)載涕蚤、采訪宪卿、投稿、團(tuán)隊(duì)報(bào)道聯(lián)系公眾號(hào):shenzhenware