写了两年多的js了吧,一开始的目标并没有很学术,我只想安安静静做个很厉害的开发者。但是总是沉溺在一种语言里,会让人误以为这种语言很厉害,就像只在村子里混的话,我觉得我自己可以逆天,村外有人,编程世界也需要出去走走,所以我想写一下学习js这段时间所看到的东西,作为出发前的反省

我是Javascript

javascript作为一种解释型语言,执行效率很低,虽然在google v8的推进下,性能提高了几十倍,但是依然是要比中低级语言的性能差很多,所以网页性能很难上去,浏览器呈现网页的能力还是有限的,webAssembly成为突破这种有限的可能。对了,说起我的身世,很重要的是二十多年前,一个伟大的程序员为了完成老板的任务用十天的时间制造了我,所以,你们会知道我其实本身会有很多自打出身就拥有的毛病,比如我是解释型和弱类型的,再比如我只是写在浏览器的脚本文件里的,所以大家起初使用我都是比较混乱的。还有typescript,nodejs,coffeescript,react,angular,vue什么的都是在说我。后来你会明白说web好像就是再说我一样

浏览器的不服输

回顾一下web和h5

以前的网页都是静态页面,php和jsp的后端开发们替前端们写页面和js脚本,这些都是因为js很菜,网页搞不了什么名堂。

世界在改变,浏览器执行代码和cpu执行代码都是执行代码,凭什么js要输,所以nodejs v8 h5出现了。

技术和经济的互相推动

h5规范一出现,canvas和vedio就淘汰了flash,网页三剑客什么的都变成了历史故事。

而v8的出现导致了前端渲染和单页应用,渲染不再是php和jsp做的事情了。

nodejs让js的开发变得工程化,同时也挺身成为了一个不错的后台语言。

当然这些事情都被营销者们看在眼里,他们注视着这些变化,去探究里边的每一个商机。

市场所赋予的名利 

网页传播成本很低,网页的生产成本也很低,网页能做这么多事情,这便是一个伟大的商机

这个商机包括建站开发,h5开发,丰富的网页应用以及小程序应用

商业的发展和技术的发展总是互相驱动的,有人投资就有人搞事情,技术的发展制造的商机也会让投资者更加愿意投入资金进去,这是一个良性循环

所以这便迎来了h5最火爆的时期

短短的三四年时间里 js从一个无人问津,被当作玩具的语言跻身成为了一个很受欢迎,需求巨大的语言

js的获取的名利让更多的人介入其中,也让他得以蓬勃发展,比如nodejs,react,angular,天才华裔尤雨溪,rn,webpack,css3,h5,ecma2015-2018等等等等

哦对了,比较可怕的是webVR也出来了,想当年我们浏览网页只是为了百度百科,现在都可以玩vr游戏了,发展的很牛逼吧

执行效率的提升

不管什么执行效率,这些对于开发者以外的所有人来说都只是两个字,体验,

执行效率和网速,带宽和宽带,光纤,js还是jsp .net除了开发者以外,其他人一概不会思考,反应在浏览器上就是打开的快不快。

什么canvas flash vedio,响应式,组件化对于用户来说也只是炫不炫

什么UI UE UX 对用户都是舒不舒服

至此感谢http协议 ws协议 GPU以及英伟达 英特尔 AMD 光纤传输 广电总局为提高执行效率在背后作出的贡献

其实说白了就是js效率的提升,从另一个层面上来看是网速变快了和CPU 变强大了 GPU加速渲染了

入侵了APP和后端

这种名利和发展也让js得到了前所未有的经济驱动,js似乎不希望自己只是混迹在浏览器圈子里的人物了,nodejs和react分别作为js的代表在后端界和app界获得了崇高的地位。

这两个事情也让js赢得了新的名利,一切都可以用js完成,桌面端,app端,浏览器端,后端都有我的身影。

所以js工程师也变得更加受欢迎,因为想要开发一个应用程序,我只需要招js就好了。

全栈在js上变得似乎很实际

CPU可以做的浏览器应该都能做 

说到这里,js似乎可以做很多事情了,很多人会觉得我为我是一个jser而自豪,我为我学到了世界上最划算的知识而感到庆幸

加入当时的js设计者可以让js的诟病少点,执行效率高一些的话,那么js或许要远远不止现在的火爆,获取很多年前就风靡了,而不需要等到网络大发展和硬件大发展之后。

其实js并不是那么强,比如LOL不能用js开发吧,有人说一切都有可能,现在的webVR不是js写的么

其实说js不能写LOL,不是说js的API不够,也不是说js写不了炫酷的效果,只是说js性能的问题会导致他总是开发一些性能要求并不高的东西

这也可以看出js出于本身语言特性的原因导致的瓶颈

我相信js可能写出在任何环境场合平台运行的hello world,但我不相信js可以写出比它性能高的语言写的性能更好的程序

开始提到了webAssembly,这玩意呢,可以让其他语言被浏览器执行,效率很高很高,这是一个是性能的突破口

还有一个突破口诸如typescript,dart之类的,当然也很难比c++快,对吧

不幸的消息是这些是浏览器端应用丰富的一个途径,但也是js地位在浏览器端被动摇的极大可能

javascript的可能

js的可能总是那么有趣,我不会怀疑它的乐趣,但会怀疑它的地位,或许终究会被取代,也可能获得了新的方式,也或者性能的大发展,让开发语言之间的。就像加入过有钱,服务器足够多的话,那么数据库的很多优化好像就没必要了

js仍然是一个不二选择,因为它很优秀

我眼中javascript的这些年的更多相关文章

  1. 【历史】JavaScript和Java没啥关系!————JavaScript简史

    文章的开始先上张图: 图片拍摄自北京图书大厦,代表着现在国内应该是绝大部分书店的现状--Javascript书籍放在Java类当中.甚至很多业内人也一直认为Javascript是Java语言在浏览器内 ...

  2. 如何理解javaScript对象?

    在我们生活中,常常会提到对象一词,如:你找到对象了吗?你的对象是谁呀?等等. 在我们家庭中,有男友的女青年都会说我有对象了,那么她的对象是XX(她的男友). 夫妻间呢?都会说我的爱人是谁谁谁,现在我们 ...

  3. Javascript定义类(class)的三种方法

    将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言.如果你忘了填写用户名,它就跳出一个警告. 如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途.程序员用它完成越来越 ...

  4. 谈谈我眼中的CSDN吧

    昨天逛博客园看到了这篇曝光率很高的文章:博客搬家——从CSDN到博客园,一篇短短的文章竟然招致这么多人的讨论,可能程序员就喜欢“Java好还是PHP好”这类型的问题吧,好无聊.由于我一直在使用CSDN ...

  5. 转载:开发者眼中最好的 22 款 GUI 测试工具

    对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...

  6. JavaScript DOM编程艺术学习笔记(一)

    嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...

  7. 2016年度 JavaScript 展望(下)

    [编者按]本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是<jQuery UI 实践> 一书的作者. 本文系 OneAPM 工程师编译呈 ...

  8. [转]Javascript定义类的三种方法

    作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 将近2 ...

  9. 全栈工程师眼中的HTTP

    HTTP,是Web工程师每天打交道最多的一个基本协议.很多工作流程.性能优化都围绕HTTP协议来进行,但是我们对HTTP的理解是否全面呢?如果前端工程师和后台工程师坐在一起玩捉鬼游戏,他们对HTTP的 ...

随机推荐

  1. 20140425 malloc和new不同 dynamic何时返回0

    1.malloc/free和new/delete区别 http://blog.csdn.net/hackbuteer1/article/details/6789164 相同点:都可用于申请动态内存和释 ...

  2. 干货:Java正确获取客户端真实IP方法整理

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  3. Android笔记之从图库选择图片

    Demo链接:https://pan.baidu.com/s/1T4T2pTEswmbcYYfpN3OwDw,提取码:pzqy 参考链接:[Android Example] Pick Image fr ...

  4. LightOJ 1245 - Harmonic Number (II)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1245 题意:仿照上面那题他想求这么个公式的数.但是递归太慢啦.让你找公式咯. ...

  5. 如何读懂Web服务的系统架构图

    Web服务的一个重要特点就是流量大.数据多,仅靠一台服务器肯定难以支撑大规模的服务. 所以我们经常会看到诸如以下的一些术语,教人好生不懂: *:系统架构.物理架构.Web服务基础设施 *:应用服务器 ...

  6. shell 命令 用户管理

     1. 查看保存用户相关信息的文件 [ cat /etc/passwd ]  [linux    :    x    :   1000  :   1000   :   linux,,,   :    ...

  7. JS事件 鼠标移开事件(onmouseout)鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。

    鼠标移开事件(onmouseout) 鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序. 当把鼠标移动到"登录"按钮上,然后再移开时,触发onmouseout ...

  8. 转: https原理:证书传递、验证和数据加密、解密过程解析

    原本连接:http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很 ...

  9. AOP与IOC的概念(即spring的核心)

    a) IOC:Spring是开源框架,使用框架可以使我们减少工作量,提高工作效率并且它是分层结构,即相对应的层处理对应的业务逻辑,减少代码的耦合度.而spring的核心是IOC控制反转和AOP面向切面 ...

  10. java 和 IntelliJ IDEA 的一些配置

    jdk 的下载与配置https://jingyan.baidu.com/article/ca41422fe3b7261eae99edc6.html intellij IDEA软件java项目No SD ...