从程序员的角度分析微信小程序(编程语言:用到什么学什么)

一、总结

一句话总结:微信小程序原理就是用JS调用底层native组件,和React Native非常类似。(需要时,用到时再学)

1、选择语言的时候,其实就是在做选择题。是选择便利还是选择性能

2、凡是能用JS开发的最终都会用JS开发,因为便利?

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

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

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

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

首先吐槽

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

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

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

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

下面是禅叔的观点:

小程序原理就是用JS调用底层native组件,和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这种语言扩展性极强, 性能比起其它语言只能呵呵了。 但是硬件速度会提高很快。
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………

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

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

转载于:https://www.cnblogs.com/Renyi-Fan/p/9211640.html

从程序员的角度分析微信小程序(编程语言:用到什么学什么)相关推荐

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

     从程序员的角度分析微信小程序             我赶快在书架上拿出三年前买的书,把上面的土擦干净,压压惊. 作为一个并不是资深的程序员. 从程序员的角度分析一下微信小程序,欢迎指点. 首先 ...

  2. 从一个程序员的角度看——微信小应用

    前言: 最近初步了解了一下微信小应用,APP端的同事也非常感兴趣,于是在公司内部做了一个小小的分享,分享的过程中有很多讨论内容,大家也是非常感兴趣和有自己的看法,当时"混乱"的场面 ...

  3. php程序员需要什么资质,微信小程序服务类目及资质要求

    小程序最近动作越来越多,用户流量入口多样化,小程序的资质要求其实比公众号更为严格,以下是你不可不知的.不要投入了资源.组建了小程序技术和运营团队以后,却发现关键资质还没有获得. 一个微信小程序最多关联 ...

  4. 我看小程序系列文章:1 不一样的角度 解读微信小程序

    大家好,我是Beta007. 最近一直在研究小程序,会在这里整理出一系列的文章,和大家交流. 第一篇文章首发在了知乎专栏:小楼昨夜又秋风:https://zhuanlan.zhihu.com/p/22 ...

  5. 不一样的角度 解读微信小程序

    不一样的角度 解读微信小程序 七月在夏天 · 2 天前 前段时间看完了雨果奖中短篇获奖小说<北京折叠>.很有意思的是,张小龙最近也要把应用折叠到微信里,这些应用被他称为:小程序. 含着金钥 ...

  6. 微信小程序开发系列 (二) :微信小程序的单步调试和控制器实现步骤概述

    笔者由于工作需要,曾经参加过一个微信小程序同 SAP 系统集成的项目,因此从零开始学习了微信小程序的开发知识.这里通过系列文章把自己所学分享出来,希望对相关学习者有所帮助. 本系列的前一篇文章:微信小 ...

  7. 微信小程序开发系列四:微信小程序之控制器的初始化逻辑

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 这个教程的前两篇文章,介绍了如何 ...

  8. 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版,进阶学习文末加群! 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序. ...

  9. 小程序商店刷榜_微信小程序游戏跳一跳刷榜原理解析!

    最近微信出了一个"跳一跳"的小游戏,这个游戏其实在之前有手机端版本,无奈微信借助强大的用户把这游戏又拿起来弄火了,而且通过最新版的微信可以看出,微信已经开始重视小程序的入口释放了, ...

最新文章

  1. HTML全局属性data-
  2. 关于自动化网络监控的真相
  3. android webview 网关,在Android webview中CC Avenue支付网关会话过期问题
  4. Linux下的磁盘空间管理
  5. LeetCode 1198. 找出所有行中最小公共元素(二分/合并有序链表)
  6. Eclipse添加SVN插件:导入项目+上传项目+更新项目
  7. jQuery与Ajax的应用——《锋利的jQuery》(第2版)读书笔记3
  8. Your potential, our passion
  9. 项目升级-加密的参数传递到后台然后解密(相当于重新封装下request)
  10. NEO技术文章征集大赛
  11. 2017百度之星初赛:A-1001. 小C的倍数问题
  12. git上传项目 openssh_GitHub上传项目
  13. system.data.oracleclient requires oracle client software version 8.1.7 or greater问题(转贴)
  14. 这是我转载的一篇,真的是不错《把SWF变回FLA》大家可以试试
  15. 手机忘记开机密码怎么办?我来教你
  16. 我的Mac键盘失灵了(u,i,o,j,k,l,k,m无效了)-- Mac鼠标键的开启和关闭
  17. python棋类项目规划一——五子棋游戏策划书——项目一
  18. 7-9 幂集(回溯法) (20 分)(C语言版)
  19. IOI 1994 The_Triangle 题解
  20. python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解

热门文章

  1. python解法:【PAT520砖石争霸赛】7-2真的恭喜你(10)
  2. wifi动不动就断开_WIFI经常自动断网,大多数是因为此原因
  3. springboot使用rocketmq-spring-boot-starter整合RocketMQ
  4. 2021Web前端中高级面试题复盘
  5. 罗克韦尔AB PLC 通过KEPServer实现与西门子1200PLC的以太网通信
  6. 微信小程序怎么开通(自己申请开通微信小程序的方法)
  7. C++可视化和图表库
  8. 中介兴风 深圳楼市起浪
  9. mac转换助理安装Windows11
  10. 你的生存模式正确吗?