写了两年多的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. 剑指offer——22表示数值的字符串

    题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.1 ...

  2. 无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll已解决

    问题 : 无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll 解决 1, 首先把C:\Windows\SysWOW64\的api-ms-win-crt- ...

  3. Zookeeper怎么实现分布式锁?

    对访问资源 R1 的过程加锁,在操作 O1 结束对资源 R1 访问前,其他操作不允许访问资源 R1.以上算是对独占锁的简单定义了,那么这段定义在 Zookeeper 的"类 Unix/Lin ...

  4. Slow HTTP POST慢速攻击

    测试工具 模拟测试工具:slowhttptest https://github.com/shekyan/slowhttptest 安装: https://github.com/shekyan/slow ...

  5. 【收集+】DDR5 vs DDR4

    Advantages of Migrating to DDR5 DDR5 is the next evolution in DRAM, bringing a robust list of new fe ...

  6. EFCore学习记录笔记

    1:连接slqlocaldb数据库 (1)在CMD下可以输入sqllocaldb info 查看本机安装的所有的localdb实例 (2)数据库连接字符串为:“Server=(localdb)\\MS ...

  7. 2019-4-29-WPF-如何判断一个控件在滚动条的里面是用户可见

    title author date CreateTime categories WPF 如何判断一个控件在滚动条的里面是用户可见 lindexi 2019-4-29 9:42:2 +0800 2019 ...

  8. GetOpenFilename的基本用法

    GetOpenFilename '一.概述基本语法 Application.GetOpenFilename 方法 显示标准的“打开”对话框,并获取用户文件名,而不必真正打开任何文件,只是把打开文件名称 ...

  9. Centos6 安装完之后,没有网络

    Virtualbox安装的centos 6.10的虚拟机,安装时,网络是NAT网络,安装完之后,将网络改为桥接网卡,启动虚拟机之后,使用 ifconfig 命令查看没有到eth0的信息,只有127.0 ...

  10. SpringBoot防止重复请求,重复表单提交超级简单的注解实现

    1. 注解接口 /** * @description 防止表单重复提交注解 */@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHO ...