JavaScript 2016年的概况
国外的网站stateofjs.com根据超过九千位开发人员的问卷调查,发布了2016年JavaScript的年度概况报名。
注:本文翻译的部分可能存在不准确的情况,请以原文为准。
调查结果的报告目录结构如下:
- 简介
- JavaScript风格
- 前端框架
- 状态管理
- API层
- 全栈框架
- 测试框架
- CSS工具
- 构建工具
- 移动框架
- 特性
- 意见/评价
- 开发者的资料
- 总结
简介
现在的JavaScript是一个现代的、可靠的语言,还是臃肿、过于复杂的依赖地狱。还是二者都有?
而且还有很多的其它问题:使用React 还是 Angular 2?你真的需要Webpack吗?这个月的建议是该如何处理CSS呢?
正是因为大家都有同样的疑问,所以就有人搞了一个调查,如果你也想尽快知晓明年的调查结果,可以访问#介绍页面#然后输入你的邮箱进行订阅。
JavaScript风格
本节摘要:
- ES6是新的标准
- CoffeeScript已经成为过去时了
- 新的JavaScript风格即将到来
流行度: ES6 > TypeScript > CoffeeScript
Elm 和 ClojureScript 有自己各自一套的生态系统,很难在现有应用中直接使用它们。
技术选型方面:
ES6 + React + Redux + Mocha + Webpack
TypeScript + Angular 2
前端框架
本节摘要:
- 你不能错过React
- Vue是发展非常快的未来之星
- Angular 2 > Angular
流行度:
React > Angular / Angular 2 > Backbone > Vue > Ember
技术选型方面:
React + ES6 + Redux + Mocha + Enzyme + Webpack + React Native
Angular 2 + TypeScript + MEAN
其它前端框架
API层
本节摘要:
- GraphQL 看上去很有前景
- REST APIs仍旧是默认的标准,大幅度领先
流行度:
REST API > GraphQL
技术选型方面:
GraphQL + Relay + Apollo + React Native
全栈框架
本节摘要:
- 该类别Meteor主导
- ‘all in one’模式并不受欢迎
流行度:
Meteor > MEAN MongoDB + Express + AngularJS (2) + Node.js > MERN MongoDB + Express + React + Redux + Node.js + Webpack
测试框架
本节摘要:
- Mocha 和 Jasmine 领先
- 总的来讲,开发人员对JavaScript测试并不满意
CSS工具
本节摘要:
- SASS/SCSS 是主导框架
- CSS 模块化可能是一个值得研究的方向
技术选型方面:
SASS/SCSS + Gulp
构建工具
本节摘要:
- Webpack 和 Gulp 前景闪耀
- Grunt可能会过时
移动框架
本节摘要:
- Native 应用还是最常用的解决方案
- React Native初露头角
流行度:
Native Apps > Cordova > PhoneGap > React Native(发展迅速,感兴趣想学的人最多)
其它移动开发框架:
特性
- 服务端渲染
- 代码拆分
- 增量更新,优先使用本地缓存策略
- 模块热更新
- 时间旅行调试
- 实时操作
- 死代码消除
- 渐近增强
- 评分最高的几个特性
Code Splitting > Dead Code Elimination > Hot Module Reloading > Real-Time Operations > Server-Side Rendering > Progressive Enhancement > Optimistic Updates > Time-Travel Debugging
其它特性:
- 离线使用
- Workers服务
- 静态类型系统
- 易用性
- 同构模式
意见/评价
- 现在构建JavaScript太过复杂
- JavaScript只是一个工具,并没有被过度的使用
- JavaScript生态系统发展太快
- 越来越多的人将JavaScript变成自己主要的编程语言
- JavaScript正朝着正确的方向在发展
开发者的资料
开发者最喜爱的文本编辑器:
Sublime Text > Atom > Webstorm > Vim > VS Code > Emacs > Notepad++ > Brackets > PHPStorm > Textmate
总结(略)
========================
stackoverflow.com也放出了2016开发者调查报告>>
从年龄、性别、工作年限、最喜欢的语言、最讨厌的语言、不同语言的薪酬等等
JavaScript 2016年的概况的更多相关文章
- Javascript学习笔记
Javascript 2016年12月19日整理 JS基础 Chapter1 JS是一门运行在浏览器客户端的脚本编程语言,前台语言 组成部分 1. ECMAscript JS标准 2. DOM 通过J ...
- bootstrap 简易模版
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- OOP面向对象编程(下)
我们怎么去模拟重载,在javasceipr中我们可以通过参数的类型区别或者数量的区别,来去让同样一个函数名字,可以根据不同的参数列表的情况来去调用相应的函数. javascript中函数类型是不确定的 ...
- koa中静态文件资源中间件实现
项目实践过程中,会使用非常多的静态资源,怎样可以直接在浏览器中访问到这些静态资源 const fs = require('fs'); const path = require('path'); mod ...
- ASP.NET动态网站制作(4)--css(3)
前言:这节课主要运用前面所学的知识写三个例子,并且学习浏览器兼容性的解决方法. 内容: 例子1:一个关于列表的例子 html代码: <!DOCTYPE html PUBLIC "-// ...
- 从web现状谈及前端性能优化
从web现状谈及性能优化 原文出处:<Karolina Szczur: The State of the Web> 性能优化指南The Internet is growing expone ...
- 在 2016 年学 JavaScript 是一种什么样的体验?
转 译者:方应杭 嘿,我最近接到一个 Web 项目,不过老实说,我这两年没怎么接触 Web 编程,听说 Web 技术已经发生了一些变化.听说你是这里对新技术最了解的 Web 开发工程师? 准确地说,我 ...
- 2016年31款轻量高效的开源JavaScript插件和库
目前有很多网站设计师和开发者喜欢使用由JavaScript开发的插件和库,但同时面临一个苦恼的问题:它们中的大多数实在是太累赘而且常常降低网站的性能.其实,其中也有不少轻量级的插件和库,它们不仅轻巧有 ...
- 2016年度 JavaScript 展望(下)
[编者按]本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是<jQuery UI 实践> 一书的作者. 本文系 OneAPM 工程师编译呈 ...
随机推荐
- [转载] 散列表(Hash Table) 从理论到实用(下)
转载自: 白话算法(6) 散列表(Hash Table) 从理论到实用(下) [澈丹,我想要个钻戒.][小北,等等吧,等我再修行两年,你把我烧了,舍利子比钻戒值钱.] ——自扯自蛋 无论开发一个程序还 ...
- ASP.NET反射(转载)
两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时 ...
- Git使用实例分析
记录下James工作中遇到的问题: 1. 在app目录下提交.cfg特制化文件,此时Git和Gerrit结合使用: 2. 对修改文件追加提交: 3. 查看当前目录的所有分支,包括:本地分支和远程分支: ...
- a:link,a:visited,a:hover,a:active
1:解释 link:连接平常的状态 visited:连接被访问过之后 hover:鼠标放到连接上的时候 active:连接被按下的时候 详细的: :hover版本:CSS1/CSS2 兼容性 ...
- Jade之属性
属性 所有的html(5)标签在jade中均支持如下写法.jade中省去了html<>和标签的关闭等写法,并将属性写在括号之中.若存在多个属性,可以将其分为多行. jade: a(href ...
- Iometer介绍与使用
Iometer简介 IO Meter是Intel开发的用来测试磁盘和网络I/O性能的软件,在目前测试磁盘系统性能中很常用.在IO Meter中用户可以自行设置进行读写或者写入测试的数据块和队列深度等参 ...
- write函数出错返回invalid argument(EINVAL)问题
还是在下载机上面遇到的. 话说为了长久的下载,后面又买了个16G的U盘格成EXT3放在角落下载,结果发现总是有几个种子在下载的时候会出错提示invalid argument. 之前也出过一样的错误提示 ...
- C++ 添加库
三步走:(第三步总忘) 1.项目属性页的C/C++->常规->附加包含目录指向 2.链接器(Linker)->常规(general)->附加库目录指向 3.链接器->输入 ...
- Week1 Java 基础知识
JDK=JRE+Tools JRE=JVM+API 封装:1.模块化:将属性和行为封装在类中,程序定义很多类:2.信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类. 继承:父类和 ...
- 关于ucosII系统的软件系统裁剪性
ucosII是依靠编译时的条件编译来实现软件系统的裁剪性的,即把用户可裁剪的代码段写在#if和#endif预编译指令之间,在编译时根据#if预编译指令后面的常数的值来确定是否该代码段进行编译.在工程文 ...