前言

JavaScript(后面统称JS)在过去五年得到飞速地增长,早期JS实现类似微博的“点赞”这样的功能都需要刷新一次页面。

后来开发者通过JS来制作SPA(单页面应用程序),在浏览器加载一次,后续视图都是通过JS动态生成的。webpack技术出现,解决了SPA页面加载过慢的问题,提升了性能与用户体验(但我觉得是因为4G和1M+宽带的普及)。

尽管JS最初是一门弱类型浏览器语言,但现在,在互联网各个领域都大展身手;毫无疑问JS已经成为一门一流的编程语言。

最近我看到斯坦福大学做的一份JS现状调查报告,调查覆盖了2万多名开发者(包括中国);这份报告向我们展示了许多信息,从流行趋势到薪资情况;话不多说,让我们看一下这份报告的细节。

前端框架部分

最受欢迎的前端框架React

React已经连续三年蝉联最受欢迎前端框架,十分受中小企业欢迎(react是要license的,很多大公司已经弃用这个框架,2018年2月份改为MIT)。

如图所示,紫色部分越多,就说明该框架就越受欢迎。

Angularjs现状

React的火热并不意味着我们可以忽略掉Angular,虽然它没有React的活力,但是却有强大的基因。

首先,它是由google团队运维的,并且同时也得到了他们得支持。Angular拥有庞大得用户群,例如openstack(Angular1)。

上图可以看出,Angular1要比Angular2更受欢迎。

实际上Angular更聚焦于企业市场,Angular2与TypeScript的结合就可以看出端倪。

不能忽视的Vuejs

国人维护开源的前端框架,短时间内就成为React的最大威胁;

实际Vuejs击败React的可能性并不大,但是Vuejs可以给我们带来更好的用户体验(毕竟有完整的中文doc)。

一些库可以让你获得更高的薪资

通过下面图表,你可以获悉,熟知哪些库可以给你带来更高的工资。

事实证明,与高工资关联的通常是一种特殊的技术,例如Reason,ClojureScript(这两个都没听说过)

这两张图表不太适用于国内市场,更高级的开发人员更倾向于尝试更多样化的库,而初级开发人员比较专注于一两种主流技术。

GraphQL一种用于API查询的语言

GraphQL一种用于API查询的语言,它对你的API数据提供了一套易于理解的完整描述,使得客户端能够准时地获得它需要的数据,而且没有任何冗余。

虽然目前使用者较少,但是我相信GraphQL是最令人感兴趣的技术之一。

JavaScript !== 前端

JS因浏览器前端而知名,但是不等于它只能做前端的相关项目;经过这么多年的迭代,Nodejs已经是流行的后端选择。

而在物联网设备中,JS也越来越趋向于主流,以后你家的电视能够运行JS代码也不要感到奇怪。

今年大受欢迎的VS code文本编辑器,也是有JS编写的,并且使用Electron做载体,在桌面运行。

世界各地JSer

当我们谈到JS,我们经常把它看作一个单一的,统一的生态系统,实际,在世界各地都有各自的主流趋势。

Vuejs在中国特别受欢迎,Angular在印度比较受欢迎,这也很合理,Angular本身就适合企业级的大项目,印度又是以技术外包而闻名。

强类型JS崛起

TypeScript,GraphQL,Reason都有共同的特点,他们都依赖于类型。

虽然JS开发人员长期以来享受着随心所欲地编写代码,这种自由是一把双刃剑:不可靠,容易出错。

近些年,这种情况得到了改善,TypeScript的出现,并且被大量地使用,这并不是巧合,而是一种进化。

总结

这项报告调查再一次显示了JS生态系统的丰富程度。

似乎经过了多年的争论和忽视 JS之后,开发者们终于找到了第三种选择:改进它。

JS基本上是能满足你任何想要实现的需求,它为语言变体和适应性敞开大门,而且这种趋势几乎没有停止的迹象。

这也许就是为什么大多数开发者都认为,尽管存在缺陷, JS语言仍然朝着正确的方向发展:

2018年JavaScript现状报告的更多相关文章

  1. JavaScript 现状:方言篇

    导读 JavaScript 和其他编程语言有一个很大的不同,它不像单纯的一个语言,而像一个由众多方言组成大家族.从 2009 年 CoffeeScript 出现开始,近几年出现了大量基于 JavaSc ...

  2. Packt发布了2018年技能提升报告

    2018年技能提升报告Skill Up 2018 - Developer Skills Report | PACKT Bookshttps://www.packtpub.com/skill-up-20 ...

  3. [转帖]2018年JVM生态系统报告出炉

    很多未解之谜终于有答案了——2018年JVM生态系统报告出炉 https://blog.csdn.net/hollis_chuang/article/details/84134298   2018年1 ...

  4. 43%非常看好TypeScript…解读“2022前端开发者现状报告”

    摘要:近日,The Software House 发布了"2022前端开发者现状报告",笔者在此对报告内容进行解读,供大家参考. 本文分享自华为云社区<"2022前 ...

  5. NOIP 2018 普及组 解题报告

    目录 标题统计 题目链接 思路 代码 龙虎斗 题目链接: 思路 代码 摆渡车 题目链接: 思路 对称二叉树 题目链接 思路: 先来解释一下为毛现在才来发解题报告: 其实博主是参加过NOIP 2018普 ...

  6. 全年DDoS攻击分析|知道创宇云安全2018年度网络安全态势报告

    *本报告由知道创宇云安全出品* 数据来源:知道创宇云防御平台 前言 2018年,网络安全领域暗流涌动,攻击趋势不断攀升,T级DDoS攻击多次爆发.数据泄露事件层出不穷.勒索软件大行其道.此外,随着我国 ...

  7. 「九省联考 2018」IIIDX 解题报告

    「九省联考 2018」IIIDX 这什么鬼题,送的55分要拿稳,实测有60? 考虑把数值从大到小摆好,每个位置\(i\)维护一个\(f_i\),表示\(i\)左边比它大的(包括自己)还有几个数可以选 ...

  8. 2018上半年DDoS攻击报告:流量峰值达1.7Tbps

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 2018年上半年DDoS攻防仍如火如荼发展,以IoT设备为反射点的SSDP反射放大尚未平息,Memcached DDoS又异军突起,以最高可 ...

  9. 2018 .NET开发者调查报告: .NET Core 是怎么样的状态

    4月28日,在公众号里发起<.NET Core 使用调查>,该调查为期一周,有近3300名开发者参与. 已经使用.net core  的人数只有44%,计划使用.net core 比例达到 ...

随机推荐

  1. Ehcache缓存配置以及基本使用

    在java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案.正因为Ehcache具有健壮性(基于java开发).被认证(具有apache 2.0 ...

  2. C程序

    /* 不适用C库函数,只是用 C 语言实现函数 void* memcpy( void *dst, const void *src, size_t len ) memmove 函数的功能是拷贝 src ...

  3. php post接口,注册功能

    功能描述:仅输入手机号和密码,实现注册功能.手机号有简单的验证,不可重复输入,否则会报500错误. 在使用 RestClient 进行post测试时,如果你把参数放在 [Headers]区块了,那么, ...

  4. a标签的使用

    a标签可以用来跳转页面请求路径,也可以用来绑定事件. 在绑定事件的时候,我需要控制a标签,不让他进行跳转. 这时候我要做的就是限制他,不让他跳转. 只需要在href属性中加入javascript:vo ...

  5. Python操作字典(dict)

    一.字典定义 >>> dict={} 二.字典元素添加 >>> dict['性别']='男' >>> dict {'性别': '男'} >& ...

  6. 解决Eclipse点击运行后控制台不能自动弹出的问题

    解决方案: 选择Window-->Preferences-->Run.Debug-->Console 勾选"Show when program writest to sta ...

  7. 关于phpstorm ftp目录乱码

    关于IIS FTP服务器汉字文件目录乱码问题:一般来说,IIS 服务器编码默认为GBK,而你的目录可能是UTF-8,将phpstorm的远程连接设置为GBK就OK了.记住服务器的编码,文件的编码要统一

  8. 【算法】LeetCode算法题-Longest Common Prefix

    这是悦乐书的第146次更新,第148篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第5题(顺位题号是14),给定一个随机的字符串数组,查找这些字符串元素的公共前缀字符串, ...

  9. Unity 琐碎5 : 利用反射设置编辑器参数

    问题 最近处理unity资源打包问题时候经常遇到的一个问题就是平台切换和Bundle编译.一般情况下,平台转换我需要依赖Cache Serbver加快转换速度,但是在Build Bundle的时候我又 ...

  10. InfluxDB基本概念和操作

    InfluxDB基本概念 1.数据格式 在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value).格式如下: 1 cpu_us ...