如何用JavaScript 搞定嵌入式开发

JavaScript026

如何用JavaScript 搞定嵌入式开发,第1张

作者:知乎用户

链接:https://www.zhihu.com/question/29170563/answer/94419176

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

用一个 JavaScript 平台来做嵌入式开发,确实是简单的事情复杂化了。

表面上来看,所谓用 JavaScript 来点亮一个 LED 什么的,代码是简单了,但是它简单,是基于一个复杂的平台基础上的,很多产品如何搭载和使用这个平台本身就是很难解决的问题,这个问题比用什么语言编程复杂多了。

譬如,一个设备,电路板只有一个硬币大小,为了配合设备的结构,形状也有特定要求,有3个按键,控制一个可调光的 LED ,以及开关机,用电池供电,具备低电量提醒和自动休眠功能,必须尽可能延长电池使用时间。

这就是在嵌入式开发中遇到的需求,一个 PIC12 单片机就可以解决。

而为了让一套 JavaScript 平台运行在上面,我要不要设计一个专门的软硬件环境?那徒增了很多不必要的工作量,仅仅是为了用另一种语言,更抽象地控制一个 LED 灯?

还是说你能帮我设计这套平台,那么怎么收费?如果我要出货 100 万套,成本控制,生产,各种 EMC 之类的测试,都是你帮我解决吗?

那不是变成了外包了吗?

嵌入式开发门槛太高,最大的问题在于和实体世界太接近,无法做太多抽象,不同的需求,最佳解决方案会根据实际情况产生非常大的差异;越是抽象了,就离嵌入式越远,抽象本身就是和嵌入背道而驰的。

而且,对硬件做抽象,那不就是相当于重新走了一次发明软件的路了吗?

电脑就是一种经过抽象的“嵌入式设备”。我要做一个产品,直接把一部 PC 塞进去是不是更好?

或者其他运行 Linux 的设备,我喜欢用什么语言,什么环境开发不可以? JavaScript 可以,Python 可以,或者其他什么 ooxx 语言都可以。

所以是没必要的?那当然不是,部分细分市场的需求还是可以满足的。

像 http://ruff.io 这种,虽然对于真正的嵌入式开发领域而言基本没什么意义,但是却为初学者和一般爱好者提供了一个相当不错入门环境。

三种嵌入式开发

第一种单片机

第二种是DSP

这2类编程一般用C,偶尔用汇编。这2类做的系统有的是裸机,有的运行实时操作系统。但是不要被操作系统这几个字迷惑了,他跟Windows,linux之类的差别非常大,怎么说呢,举个例子吧,我们部门做dsp的,他们写程序用c,但是不同于我们学习的C,因为他们没有标准库,没有浮点数运算,基本不用乘法(没有硬件乘法器,一般用移位),然后内存非常小,一般就几k,这种条件下不大可能写的出js虚拟机,就算google逆天写出来了,ram也不够用,他们经常用掉90%多内存,然后我听他们讨论最多的就是内存不够。哦,对了,他们操作系统用的是ucos,这个系统是开源的,有兴趣你可以去看下,5500行代码,有个德国人移植到Windows上了,csdn上有下载,不过是用lcc编译器编译的,改一点点就可以用vc或者gcc编译,当然,这个和在dsp上运行有本质区别,他是用多线程模拟硬件时钟中断的。

第三类是ARM M系列

其实也是单片机,功能稍微强大点。

第四类是ARM9系列 ,ARM A系列

这类可以运行高级操作系统了,比如linux,android,虽然性能和资源比pc差很多,但是编程方式已经差不多了。我们部门就用ARM9,运行linux,有屏幕的设备界面用qt,没界面的一般用php或者是cgi提供网页(web服务器用boa),逻辑一般用c,不过现在貌似要全面切换成qt和lua。

java开发的前景好一点。Java开发和嵌入式开发都是不错的选择,嵌入式开发会更容易一点。千锋教育就有线上免费Java线上公开课。首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择。Java语言的应用领域包括Web开发、Android开发和大数据开发等领域,这些领域也都有大量的岗位需求。从行业发展趋势来看,随着5G标准的落地以及产业互联网的发展,未来物联网领域的发展前景将非常广阔,而嵌入式开发作为物联网开发的重要组成部分,必然会迎来更多的机会。如果想了解更多相关知识,建议到千锋教育了解一下。千锋教育目前在18个城市拥有22个校区,年培养优质人才20000余人,与国内20000余家企业建立人才输送合作关系,院校合作超600所。

很多想要学习编程的小伙伴在入行前,都会纠结选择什么的样编程语言去学习,到底是选C++还是选JavaScript?Python和Java哪个更有前途呢?

编程语言与应用场景有密切的关联关系,每一种编程语言都有自己的应用领域和特点,所以不能单纯的说学哪个语言最好,但是如果没有具体的场景要求,那么可以根据目前的流行程度和发展前景选择要学习的编程语言。

目前最为流行的编程语言有Python、Java、C、C++、PHP、JavaScript、Go、C#等,这些编程语言往往都有广泛的应用场景,同时在整个IT领域也有大量的用户和成功案例,选择这些编程语言会明显降低开发风险,同时在组建开发团队时也比较容易。

要说最热门,莫过于Java和C/C++了,从目前就业情况来看,这三大编程语言远超其他语言,除了这三大热门语言,从目前的应用情况和发展前景来看,Python、JavaScript和Go语言也具有一定的优势:

第一:最不缺人的编程语言:Java

Java拥有世界上数量最多的程序员。你说他们是农民也好,但数量放在那里,最明显的效果就是公司招人的时候会比较容易地招到Java程序员。试想如果你想要做一套软件,你有一个很棒的技术方案需要用C++,Scala或Ruby等语言实现,但招不到足够的人手,那么计划多半泡汤。这时候你的应用Java也能做到,并且很轻松就能招到足够的人,那么你选择Java的可能性就要大一些。

第二:实力派语言:C/C++

C语言是面向过程的语言,常用来编写操作系统,在嵌入式方面无可取代。C++常被称为贵族语言。因为C++的开发周期长,成本也比较高,一般大型企业会采用C++进行项目开发,所以学习C++的就业方向大多是大公司。

1)C/C++可以潜入任何现代处理器中,几乎所有的操作系统都支持C/C++,跨平台性非常好。

2)C语言体型小巧,简洁高效并且接近汇编语言,C++功能在C的基础上增加面向对象的特点,代码可读性好,运行效率高。

3)运行效率高,高效安全。

4)语言简洁,编写风格自由。

5)大项目上具有优势。

第三:新晋小花:Python

近年来Python语言伴随着大数据和人工智能的发展得到了广泛的应用,上升趋势非常明显,整个IT领域有大量的程序员开始陆续转向Python开发,这其中就有不少Java程序员,因为不少Java开发工作Python同样能够完成,比如Web开发、大数据开发和后端开发,同时Python还能够完成人工智能开发和嵌入式开发。虽然Python在性能上较Java还有一定的差距,但是在很多场景下,性能的差距并不是选择语言的唯一标准,Python语言在开发周期和日后维护方面都具有一定的优势。站在开发人员的角度来看,Python语言在很多情况下要明显“轻一些”。

第四:JavaScript应用领域逐渐拓展

JavaScript是传统前端开发不可替代的技术之一,但是目前JavaScript不仅仅用于前端开发,JavaScript也正广泛应用于后端开发(Nodejs)和嵌入式开发领域。而且目前有大量的开发项目在采用JavaScript编写,这会对JavaScript的普及应用带来积极的意义。

第五:Go语言发展前景广阔

Go语言是近些年来出现的少有的优秀语言之一,Go语言主打性能,所以在大数据时代背景下,Go语言的发展前景还是非常广阔的。

那么想要学习Web前端应该选哪个编程语言?为什么?

很多招聘网站表示现在找一个好的程序员很难,而且通过数据显示,现在编程语言中JavaScript占据很大的比例,JavaScript对于互联网从业人员来说,异常重要,对于Web前端开发人员更是如此。所以,如果你是一个web前端开发人员,那么你一定要去学习JavaScript。

JavaScript是一种动态编程语言,主要用于增添网站的交互性。

这门语言通常被认为“对初学者很友好”,因此进一步提高了它在开发者社区中的使用量。

Javascript听起来跟Java有关系,其实并没有任何关系,只是名字像而已。就好比雷峰塔和雷锋的关系一样,虽然只差一个字。Js最广泛的应用毫无疑问是在web前端。简单的说,网站给你传过来的是一堆用各种标签表示格式的文档,

而Js负责操纵这些文档实现一些客户端动态效果。Js的领地还不仅如此,现在的Node.js还可以用于服务器端的开发。

JavaScript主要被用来实现网站页面上的动态逻辑。

JavaScript是浏览器的脚本语言,一般和Html,CSS这些一起学,主要做网站的前端开发,展现各种酷炫的画面。随着物联网和移动设备越来越流行,React

和AngularJS等JavaScript前端框架具有巨大的未来潜力。

一般大公司对前端开发工程师的JavaScript技能则更加看重,前端开发者学习了JavaScript,再也不用担心发展前景问题了!熟练掌握JavaScript语言,更是自身的一种竞争优势。

以上就是小编今天为大家分享的关于2019年流行的编程语言有哪些?入门Web前端学那个编程语言更好?的文章,希望本篇文章能够对想要学习web前端技术的小伙伴们有所帮助。想要了解更多web相关知识的小伙伴记得关注北大青鸟web前端培训官网哦!

*声明:内容与图片均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。