Web应用程序框架:不创新就玩完

简介:

Web应用程序框架领域涌现出了一股创新热潮,这可能让广大开发人员颇为沮丧,却又是必不可少的。

Web应用程序框架:不创新就玩完

JavaScript

现在想跟上JavaScript圈子可是变得越来越难了。虽然ReactJS前阵子成为报章头条新闻,但没有哪个JavaScript框架能够长期保持领先的地位。一些人声称这是件好事,促使相互竞争的框架在创新方面胜过对方,但过于迅猛的创新步伐却让广大开发人员无所适从。

需要具备怎样的条件才能被公认为是长期的赢家?

谁会赢得Web?

咱们还是打开天窗说亮话吧:牵涉的面很广。正如EmberJS负责人Tom Dale曾对我说的那样:

“切记Web这块蛋糕的一大块是什么。.NET面向Windows,Cocoa面向iOS/Mac,赢得了Web就是赢得了全世界。”

既然如此,没有哪个框架设法主导Web多少也就让人有点奇怪了。反正没有哪个框能长期成为霸主。

毕竟,虽然新的编程语言来来去去,但Java、C++和C#却长期屹立不倒,总是处于或靠近编程语言排行榜的首位,网站Redmonk的分析就表明了这一点,详见:http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/

Web应用程序框架却不是如此。

快速瞄一眼谷歌趋势(Google Trends,http://www.google.com/trends/explore#q=EmberJS%2C%20BackboneJS%2C%20Sproutcore&cmpt=q&tz=),就会显示JavaScript的人气指数经历了起伏不定的阶段(见图A)。

Web应用程序框架:不创新就玩完

图A:谷歌趋势显示了JavaScript的人气指数。

Sproutcore是由Charles Jolley设想出来的,由苹果以及后来的Strobe(已被Facebook收购) 开发而成。随着BackboneJS取代而之――它得到了LinkedIn等公司的鼎力支持,Sproutcore最终悄无声息。与此同时,一些Sproutcore开发人员离开Strobe另立门户,开发了EmberJS,如今它在逐渐取代BackboneJS。

当然,如果我们算上AngularJS(谷歌开发的JavaScript语言),一切相比之下都黯然失色,无论按上网搜索量来衡量还是按雇主需求量来衡量,AngularJS都可谓风光无限(见图B)。

Web应用程序框架:不创新就玩完

图B:AngularJS的崛起之路。

这也许很好。AngularJS也许实际上就是有史以来的最佳框架!至少,在下一个又酷又炫的框架问世之前是这样。

我们能不能让这个步伐慢一点?

就拿ReactJS来说吧。由Facebook开发的ReactJS在年初备受媒体关注,当时宣布支持原生应用程序。这意味着,React Native框架让开发人员能够使用React和JavaScript,轻轻松松就能构建原生应用程序。这是个好概念,即便并非什么新概念。毕竟,多年来,其他框架早就提供了类似的功能,这自然引出了下面这个问题:我们果真需要ReactJS吗?

Netflix认为需要它。这个技术先锋在其开发者博客上宣称:“我们决定采用React受到了许多因素的影响,尤其是这三大因素:1)启动速度,2)运行时性能,以及3)模块化。”

Netflix认为,ReactJS提供了一种出色的方法,可以减少网络请求(缩短了启动时间),并简化用户界面渲染(提高了运行时性能),另外还有其他优点。

也许Netflix是对的。但是为什么Netflix就不可以用AngularJS、EmberJS或其他框架来实现同样的目的呢?

不创新就玩完

Brian Leroux是PhoneGap的核心开发人员之一,他认为,目前来自JavaScript框架的创新最终会“融入到Web平台本身”,迫使这些框架不断创新,才能保持领先地步。随着互相竞争的框架失去了创新的劲头,市场会迎来更好的框架。

据一些人统计,我们在开始选定少数几种一贯创新的框架。(Instructure博客的一名开发人员认为,EmberJS已经获胜,因为“无论哪个框架,最终老是被拿来与Ember比较”。)AngularJS显然也是个冠军争夺者,也许是最有实力的冠军争夺者。

哪ReactJS呢?

令人沮丧的是,我们在Web编程领域还没有遇到任何的停滞现象,而这可能完全体现了我们在Web方面还剩下多少工作要做。AngularJS最近因在其2.0版本中没有提供向后兼容而遭到炮轰,我认为这对创新而言也许是好事。

为什么?因为,作为Leroux的密友,我们在Web创新会是什么样、也许应该是什么样方面连皮毛都未触及。我们在想出更优秀的Web编程方式之际,就要一路打破陈规。

但不是每个人都这么认为。EmberJS共同创造者Yehuda Katz就认为,“想让创新步伐慢下来,最好的办法就是迫使每个人每隔几年就要重写代码。”于是EmberJS在竭力确保最大程度的后向兼容性。如上所述,AngularJS没有这么做,至少到目前为止没有这么做。

但这些在我看来却是必不可少的“减速带”。

在可以预测的将来,我们应该会看到JavaScript框架不断完善。有些框架会消亡,有些会胜出。但是虽然这可能会让开发人员不得劲,但它最终是好事,因为这意味着获胜的是Web。


作者:布加迪编译

来源:51CTO

相关文章
|
1天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
8 2
|
1天前
|
存储 安全 数据安全/隐私保护
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
6 2
|
2天前
|
机器学习/深度学习 JSON 编译器
C++ 资源大全:标准库、Web框架、人工智能等 | 最全整理
C++ 资源列表,内容包括: 标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等
15 1
|
2天前
|
Go
golang学习3,golang 项目中配置gin的web框架
golang学习3,golang 项目中配置gin的web框架
|
3天前
|
XML 开发框架 .NET
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
|
13天前
|
中间件 Go API
【Go 语言专栏】Go 语言中的 Web 框架比较与选择
【4月更文挑战第30天】本文对比了Go语言中的四个常见Web框架:功能全面的Beego、轻量级高性能的Gin、简洁高效的Echo,以及各自的性能、功能特性、社区支持。选择框架时需考虑项目需求、性能要求、团队经验和社区生态。开发者应根据具体情况进行权衡,以找到最适合的框架。
|
13天前
|
机器学习/深度学习 前端开发 数据可视化
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
|
13天前
|
开发框架 前端开发 JavaScript
学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面
学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面
|
13天前
|
缓存 前端开发 安全
Python web框架fastapi中间件的使用,CORS跨域详解
Python web框架fastapi中间件的使用,CORS跨域详解
|
13天前
|
API 数据库 Python
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法