如何看待微信小程序?
作为一个没有经验的程序员。从程序员的角度分析微信小程序,欢迎指教。
第一次吐槽
微信小程序只发了200个邀请号。果然不出我所料,张小龙没有翻我的牌。不能干湿两用吗?
我们先来了解一下什么是微信小程序。转自知乎
微信可能重申了“我们是一个交友软件”
微信也提供了很多接口和组件(不好意思,废话)。
以下是禅叔的看法:
applet的原理是用JS调用底层原生组件,和React Native很像。只是证明了任何能用JS开发的东西,最终都会用JS开发出来。
证明任何能用JS开发的东西,最终都会用JS开发。
解决方案:
根据我多年的经验,这句话是真命题。
语言设计者分为两派。有人认为程序员的语言应该防止程序员做傻事,也有人认为程序员应该可以用编程语言为所欲为。C/Java语言是前一阵营的代表,JS是后一阵营的代表。
往往第一阵营的语言强调性能,int是int,double是double,第二阵营强调方便,int是var,double或者var。
选择语言的时候,其实就是在做选择题。选择方便还是性能。
往往新的语言非常方便,因为硬件性能提高了,为了方便可以放弃性能要求。
编程语言的主要矛盾是程序开发的便利性和硬件水平之间的矛盾。
如果你能穿越回70年代(先在中南海西边买块地),当你坐在巨大的电脑前写代码的时候,不小心抖了一下小手,多打了两个空格,然后编程oom。
不要觉得以上事情不可思议。那时候内存低得可怜。每个角色都被严格定义,不允许浪费。运行java虚拟机是不可能的。怎么会有java语言?
节俭是一种美德,浪费不一定是坏事
随着硬件性能的提升,越来越多的编程语言出现,新的语言往往在性能上浪费,在方便性上提升。按照几十年前的标准,一些用新语言开发的流行应用惊人地浪费硬件资源。
这种现象不仅存在于编程语言中,而且是一种普遍的历史趋势。随着科技的发展,每一代人都在做上一代人觉得浪费的事情。你可以想象30年前打长途电话,现在别说打长途了,还有人坐飞机去预约,这在以前是很难想象的。
浪费可以分为好的浪费和坏的浪费。用更多的浪费换取简单的设计,并不是一件坏事。
如何才能充分利用新硬件更强大的性能,最有利地“废”掉它们?
这时候问题又回到了开头,证明了凡是能用JS开发的,最终都会用JS开发。
JS是一种扩展性很强的语言,性能只能和其他语言比。但是硬件的速度会迅速提高。
保罗·格拉厄姆计算出如果摩尔定律一直适用。一百年后,计算机的运行速度将是10的74倍18倍。(准确的说是73 786 976 294 838 206 464次)
总有一天,你会在选择的时候忽略性能,选择方便。
上学的时候经常去网吧玩大话西游和传说。现在任何页游都可以做出这种游戏效果。10年前,你很难想象在网络上玩这个游戏。
你现在可以试着想象一下,再过几年,打开网页就可以玩魔兽世界了。这不是不可能的。
一种强调性能的语言能生存吗?
我们都知道C/C++是一种强调性能的语言,我们玩游戏或者视频的东西都需要性能。它们会被新的语言取代吗?
我可以郑重证明不会。
虽然我上面说的Java语言属于第一阵营强调性能的语言。但与C/C++相比明显增强了便利性。
语言是发展和迭代的。随着硬件性能的提升,基本上每个节点都会产生一种新的语言,相比之前的语言,浪费了性能,增强了便利性。
但是很难取代以前的语言,对性能要求高的程序还是会出现。即使未来魔兽世界可以在网页上玩,但还是会有很多对性能要求很高的新游戏出现,比如《超级魔兽世界》、《泰坦世界》、《宇宙世界》。
微信小程序会取代其他app吗?
问题回到我们的主题微信小程序。微信小程序会取代其他app吗?
我的观点很明确,
现在不会被取代,将来会,但将来会被微信取代;未来会取代未来,但未来会出现,未来的微信取代不了。.....
其实这也不难解释,10年前我们玩不了web上的传奇,现在可以了。但是现在有了魔兽世界,10年后可能还能在网页上玩,但是那个时候肯定会有超级魔兽这样的游戏不能在网页上玩。
作为程序员,我们需要学习什么?
有人会担心,微信小程序出来了,做Android和iOS开发的会失业。
其实你放心,只要能学,就绝对不会失业。不学习,即使不推出微信小程序,也会失业。
目前小程序总是很小,场景有限。它不能完全替代APP,也可以通过小程序引导用户下载APP。就像简的书,网页能浏览不代表你不开发APP软件。
但是要认清大势,这个时候是给你学习的。
具体怎么学?
看文档学习。首先你要了解JS的语法基础,React Native的原理,学习JS,rn,H5,CSS,运营,测试,产品设计规范,平面设计,神经网络,OpenGL。.........
总之,根据具体的文件,学你所用。
作为一名程序员,你可以忘记高等数学、英语和线性代数...但是别忘了学习。