从程序员的角度分析微信小程序

昨天朋友圈被微信小程序刷爆了。java

我赶快在书架上拿出三年前买的书,把上面的土擦干净,压压惊。程序员

做为一个并非资深的程序员。 从程序员的角度分析一下微信小程序,欢迎指点。编程

首先吐槽

微信小程序只发了200个邀请号,和我预想的同样,张小龙并无翻我牌,难道就不能雨露均沾吗?小程序

先来了解下什么是微信小程序。 转自知乎微信小程序

微信也许重申了”咱们是一款约炮软件”微信

微信还提供了一大堆接口和组件(很差意思,说了句废话)。markdown

这里写图片描述

下面是禅叔的观点:网络

小程序原理就是用JS调用底层native组件,和React Native很是相似。偏偏又证实了,凡是能用JS开发的最终都会用JS开发。app

证实:凡是能用JS开发的最终都会用JS开发

解:
据我多年经验,这句话是一个真命题。
编程语言

语言的设计者是有两个派系的,有些人认为程序员语言应该防止程序员干蠢事,另外一些认为程序员应该能够用编程语言干一切他们想干的事。 C/Java语言是前一个阵营的表明, JS是后一个阵营的表明。

每每第一个阵营的语言强调性能, int就是int,double就是double 还第二个阵营就是强调便利性 ,int是var , double仍是var。

选择语言的时候,其实就是在作选择题。是选择便利仍是选择性能。

每每新出的语言便利性都很强,是由于硬件性能提升了,从而能够为了便利性放弃性能要求。

编程语言的主要矛盾就是程序开发的便利性和硬件水平的矛盾。

若是可以穿越回到70年代(首先在中南海西面买块地), 那时候你坐在庞大的计算机面前写代码的时候,无心间小手一抖,多敲俩空格,而后程序oom。
不要感受上面的事情难以想象,那时候内存低的可怜,每个字符都是严格定义的,不容许任何浪费。能运行java虚拟机都是天方夜谭,怎么可能会有java语言。

节俭是一种美德,浪费不必定是坏事情

随着硬件性能的提升,出现了愈来愈多的编程语言,新出的语言每每性能上浪费,便利性上提升。要是按照几十年前的标准衡量,有一些使用新语言开发的热门应用程序对硬件资源浪费很是惊人。

不只编程语言有这种现象,这实际是一种广泛的历史趋势, 随着技术的发展,每一代人都在作上一代人以为浪费的事情。你能够想象下30年前打个长途电话,而如今,别说长途电话了, 有的人都就坐飞机去约炮了,这个在之前很难想象。

浪费能够分红好的浪费和坏的浪费。用更多的浪费换来简单的设计,并非什么坏事。

如何才能充分利用新硬件更强大的性能最有利地“浪费”他们?

这时候问题就回到了开始, 证实:凡是能用JS开发的最终都会用JS开发

JS这种语言扩展性极强, 性能比起其它语言只能呵呵了。 可是硬件速度会提升很快。
Paul Graham算过,若是摩尔定律一直成立。一百年后计算机的运行速度是如今的74乘以10的18次方倍。(准确地说是73 786 976 294 838 206 464倍)
这里写图片描述

终有一天,你会在选择的时候忽略性能,选择便利性。

之前上学的时候,常常去网吧玩大话西游和传奇。而如今随便一个页游就能作出这种游戏效果。10年前你很难想象在网页上能玩这种游戏。

你如今就能够尝试想象一下若干年后,打开网页能玩魔兽世界。这并非不可能实现的。

强调性能的语言还可否生存

咱们都知道C/C++ 就是强调性能的语言, 咱们作游戏或者视频播放的都是要求性能的。他们会不会被新的语言取代呢?

我能够郑重证实,不会的。

虽然上面我说的Java语言属于强调性能的第一阵营的语言。可是相对于C/C++ 它显然是加强了便利性。
语言是发展的,是迭代的, 随着硬件性能提升,基本上每一个节点下都会产生新的语言,相对于以前的语言浪费性能,加强便利性。

可是很难取代以前的语言,对性能要求高的程序依然会出现的, 即便之后能够在网页上玩魔兽世界,可是还会出现 超级魔兽世界,泰坦世界, 宇宙世界 等等一大堆新的对性能要求较高的游戏。

微信小程序会取代其它APP吗?

问题回到咱们的主题微信小程序上,微信小程序会取代其它APP吗?

个人观点很明确,
如今不会取代,之后会,可是之后会出现之后的微信取代不了的;之后的之后会取代之后的,可是之后的之后会出现之后的之后的微信取代不了的 …..

其实也不难解释,10年前咱们不能在网页上玩传奇, 可是如今能够。可是如今又有了魔兽世界,也许10年后网页上就能玩了,但那时候确定还会出现 超级魔兽世界之类的游戏不能在网页上玩。

做为一个程序员,咱们须要学什么?

有的人会担忧,微信小程序出来了, 作Android、IOS开发的会不会失业啊。

其实你大可放心,只要你会学习,永远不会失业,你不学习,就算微信小程序没有推出你也会失业。

就目前而言,小程序始终是小,场景有限。还不能彻底取代APP , 还能够经过小程序引导用户下载APP。就像简书同样,网页端能浏览不表明不开发APP软件。

可是要认清大的趋势, 这段时间就是用来给你学习的。

具体怎么学啊?

看文档学习呗, 首先了解JS语法基础, 了解React Native原理,学习JS , RN,H5,CSS,运营,测试,产品设计规范,图形设计,神经网络,OpenGL………

总之,根据具体文档,用到什么学什么。

做为一个程序员,你能够忘了学习的高数,能够忘了学习的英语,能够忘了学习的线性代数…. 可是千万别忘了学习。

更多精彩请关注微信公众帐号likeDev
这里写图片描述

相关文章
相关标签/搜索