我眼中javascript的这些年
写了两年多的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的这些年的更多相关文章
- 【历史】JavaScript和Java没啥关系!————JavaScript简史
文章的开始先上张图: 图片拍摄自北京图书大厦,代表着现在国内应该是绝大部分书店的现状--Javascript书籍放在Java类当中.甚至很多业内人也一直认为Javascript是Java语言在浏览器内 ...
- 如何理解javaScript对象?
在我们生活中,常常会提到对象一词,如:你找到对象了吗?你的对象是谁呀?等等. 在我们家庭中,有男友的女青年都会说我有对象了,那么她的对象是XX(她的男友). 夫妻间呢?都会说我的爱人是谁谁谁,现在我们 ...
- Javascript定义类(class)的三种方法
将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言.如果你忘了填写用户名,它就跳出一个警告. 如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途.程序员用它完成越来越 ...
- 谈谈我眼中的CSDN吧
昨天逛博客园看到了这篇曝光率很高的文章:博客搬家——从CSDN到博客园,一篇短短的文章竟然招致这么多人的讨论,可能程序员就喜欢“Java好还是PHP好”这类型的问题吧,好无聊.由于我一直在使用CSDN ...
- 转载:开发者眼中最好的 22 款 GUI 测试工具
对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...
- JavaScript DOM编程艺术学习笔记(一)
嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...
- 2016年度 JavaScript 展望(下)
[编者按]本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是<jQuery UI 实践> 一书的作者. 本文系 OneAPM 工程师编译呈 ...
- [转]Javascript定义类的三种方法
作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 将近2 ...
- 全栈工程师眼中的HTTP
HTTP,是Web工程师每天打交道最多的一个基本协议.很多工作流程.性能优化都围绕HTTP协议来进行,但是我们对HTTP的理解是否全面呢?如果前端工程师和后台工程师坐在一起玩捉鬼游戏,他们对HTTP的 ...
随机推荐
- 安装mongo
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_40101530/articl ...
- Day 10:函数全局变量和局部变量及函数嵌套
全局变量:在所有函数之外赋值的变量,是全局变量. 局部变量:在函数内的变量是,局部变量 一个函数被调用时,就创建了一个局部作用域.在这个函数内赋值的所有变量,存在于该局部作用域内.该函数返回时,这个局 ...
- Ubuntu安裝nginx-1.6.2
1.在執行完./configure 和make install 後出現 test -d '/usr/local/nginx/logs' || mkdir -p '/usr/local/ ...
- QT之发布
https://blog.csdn.net/qq_40194498/article/details/79926054打开windows控制台直接输入 windeployqt --help 可以知道想要 ...
- WifiManager Wifi 管理器&&知识点
WifiManager 主要使用的技术: SimpleWifi,MahaApp.Metro控件 一 网卡设置 1.获取所有网卡(NetWorkAdapter类) 方法A 通过API SELECT * ...
- Windows tasklist
TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/ ...
- Windows cd
显示当前目录名或改变当前目录. CHDIR [/D] [drive:][path]CHDIR [..]CD [/D] [drive:][path]CD [..] .. 指定要改成父目录. 键入 C ...
- day28 import,from * import *,__name__
Python之路,Day16 = Python基础16 一 module通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py"." ...
- thinkphp 批量配置
C配置方法支持批量配置,例如: $config = array('WEB_SITE_TITLE'=>'ThinkPHP','WEB_SITE_DESCRIPTION'=>'开源PHP框架' ...
- 自定义Collection View布局
转自answer-huang的博客 原文出自:Custom Collection View Layouts UICollectionView在iOS6中第一次被介绍,也是UIKit视图类中的一颗 ...