Ruff:软件定义硬件

Ruff CEO Roy 曾在博客中写到:

市面上没有一款工具能让我快速开发出智能硬件应用。 树莓派固然很好,但是我依然要写 C 写驱动、搞定内存管理、进程调度、异步 I/O 的这些问题。 对于我这样一个不擅长嵌入式开发的人来说,光是一个对 GPIO 口进行高电平变低电平的操作就让我觉得不知其然更不知其所以然。

我需要这样的一个工具,我的朋友需要,还有千千万万想玩硬件的互联网工程师需要,那为什么不自己做一个出来呢?

就是带着这样一种想法,Roy 找到了曾经的同学 DK,邀请他来一起做这件事。而当时的 DK 正在做一家游戏公司,听完 Roy 的想法后,不久便决定放弃游戏公司,拉上当时公司的 CTO 老牛一起开始做这件更大的事情。

好了,有了一个伟大的想法,就差一名 CTO 了。 对于 CTO 的人选,Roy 想起了曾和自己同任 QCon 出品人、MOCO 框架作者、Oracle Duke 选择奖获得者——郑晔老师。当时刚好郑晔在上海,于是 Roy 和 DK 轮番上阵,把郑晔所在公司附近的一个商场里的所有餐厅都吃了三次以上,最后 Roy 用一段 Lisp 代码秀了一个 Demo 之后,郑老师被感动了,觉得这是一个伟大的事,值得自己全身心去投入。

团队齐了,下面就是找钱了,天使投资人里面谁能看懂开发者服务的项目呢? Roy 想到了蒋涛,自己曾和他吃过一顿面,也算得上有一面之缘。 蒋涛听罢,只问了一句:“你们公司注册了没有?” 在得知公司还没注册后便说:“个人账号拿来,我明天给你打钱。”

这便是 Ruff 的开始,一个梦想的起航。

在那之后,他们做了这些事。

选择JavaScript 作为程序设计语言

Any application that can be written in JavaScript, will eventually be written in JavaScript..

​ ——Jeff Atwood

Ruff 选择了程序员基数庞大、唯一的全栈语言 JavaScript 作为程序设计的语言。对硬件进行了抽象,使用了基于事件驱动、异步 I/O 的模型,使硬件开发变得轻量而且高效。一个软件开发工程师,通过 Ruff 可以成为一个全栈工程师。

提供一个让开发更为简单的工具

通过 Ruff,开发者无需成为上懂应用开发,中懂网络,下懂 CPU 的全能者,也无需看复杂的电路图和数据手册。一个只有软件开发经验的开发者可以轻松开发硬件,驱动程序员则可以编写驱动,发布到软件仓库。

提供一个物联网开发平台

Ruff 为开发者提供了完善的开发服务。从项目生产、软件包管理、应用管理、外设管理到固件管理等一系列现代软件开发方式。PC 端完成开发,无需烧板子,提升开发者的开发效率。

开放的软件仓库,无限拓展。驱动、软件包、通信、协议等不断拓展软件仓库内容。

提供完善的测试框架,支持 assert、test、mock 等模块支持,在开发机上测试逻辑,硬件测试也能 TDD。

Ruff 在去年得到了景林资本的 Pre-A 轮融资后,加速发展。今年1月 Ruff 发布了第一个公开发布版本,一个前端开发者拿到 Ruff 后,很快就写了一个小应用,用打火机点亮网页上的一盏灯。当看到这个应用的时候,Ruff 团队更加坚信“让软件定义硬件”是正确的。

经过几次的更新后,Ruff 1.0 开发套件在5月6日正式开始发售。

还在写软件的你,为何不拿起 Ruff 尝试着玩起硬件?用 Ruff 写出你自己的硬件应用,让软件定义硬件。