WordPress 已过时?创始人与新架构拥护者开战

喜欢就关注我们吧!

近日,WordPress 创始人 Matt Mullenweg 与 Netlify 首席执行官 Matt Biilmann 展开了一场口水战,双方就 WordPress 与新兴 WEB 应用架构 JAMStack 孰优孰劣进行了激烈的辩论。

何为 JAMStack?

JAMStack 是一种将 Web 应用部署为静态文件,从 API(如微服务发布的 API)中检索动态内容的架构,其中的 “JAM” 代表 “JavaScript、API 和 Markdown 组成的技术栈”。JAMStack 开发者通常使用静态网站生成器来构建网站,如 Next.js、Gatsby、Hug 或 Jekyll,由于不需要 Web 服务器,所以页面加载时间更快,尤其是在与内容交付网络(CDN)一起使用时。

JAMStack 的拥护者坚信它是 Web 应用的未来。但流行至今的博客和内容管理平台 WordPress 的创建者 Matt Mullenweg 却对此公开表示反对。

事件起因

事情始于今年 8 月,Mullenweg 在接受外媒记者采访时表示:“ JAMStack 对于绝大多数采用它的人来说是一种倒退,它的可用性和功能实际上是降低了。即使是在 JAMStack 中重建网站,也让人想起了 Movable Type 的时代,你的网站越大,重建或更新模板的速度就越慢。”

对于 Mullenweg 的言论,静态站点生成平台 Netlify 首席执行官 Matt Biilmann 在 9 月时作出回击:“ WordPress 的时代已经结束了。” Biilmann 认为如今的 WEB 开发在性能、可扩展性、可维护性、操作性和安全性上缺一不可,而 WordPress 在这些方面表现出来的是“不断增加的负担,而不是合理的权衡 ”。

为了给这两位名字恰巧都叫 Matt 的技术大牛提供一个正面交锋的机会,JAMStack 社区决定在近日邀请 Matt Mullenweg 参加他们的线上会议。两位 Matt 在这次会上进行了公开辩论。这场辩论吸引了很多 WEB 开发者的关注,不仅是因为两位大牛在技术观念上的碰撞,还因为 WordPress 在当今网络上仍然具有主导地位。根据 W3Techs 的统计,目前仍有 63.6% 的网站内容管理系统使用了 WordPress,另外有 38% 的网站本身也在使用 WordPress 。这场辩论也被视为一场新兴架构对老牌应用的挑战。

正式开战

这次的辩论中,Biilmann 谈到了采用 JAMStack 的网站拥有比采用 WordPress 等 “一站式搭建” 应用更强的可靠性。“虽然一些微服务可能会出现故障,但一个静态网站永远不可能真正完全瘫痪。” Biilmann 认为,JAMStack 网站更安全,因为一个错误的插件无法危及整个网站,“ 有了 JAMStack,网站的后台管理部分完全不会暴露在普通用户面前。” 此外,他还指出了 WordPress 的安全性问题:“根据我获得的资料,有大约 90% 出现重大安全事故的网站都采用了 WordPress,这个数据显然不是一件好事。”

在安全方面,Mullenweg 则反驳,问题的关键是如今的产品需要版本更新变得更加频繁和容易。“JAMStack 通常使用几十个 NPM 包来构建网站,每次版本更新同样会遇到你说的插件上的安全问题 ”。Mullenweg 声称,WordPress 内置的自动更新意味着用户可以在几周内让 70% 到 80% 的 WordPress 网站换上最新版本。

Mullenweg 对 WordPress 的安全性依然充满信心,他认为大多数 WordPress 的安全问题都来自一些维护不善的个人网站。“ 每个现代的 WordPress 主机都有办法拒绝运行不受信任的插件并保护人们。如果你看看 WordPress VIP 上的网站,或者你看看 WordPress.com,那里绝对没有安全问题。”

而在性能问题上,Mullenweg 指责 JAMStack “在营销上用力过猛”。他认为 JAMStack 在宣传过程中夸大了服务器端性能在网络性能中的重要性。“性能真正重要的地方是客户端。我认为对于性能来说,你们能做的最好的事情就是完全动态化,但是也要在前面放一个缓存 CDN。你看,Cloudflare 两天前刚刚宣布集成 WordPress 。”

相反,Billmann 则坚持认为 WordPress 已经成为开发者的死穴。“我们看到,在现代前端生态系统中,迭代和创新都非常快,一旦开发者被困在一个单体应用中(指 WordPress),他们必须依赖模板语言,围绕它构建基础设施,这样一来他们就会被切断与其他生态系统的联系,这将会限制他们的发展。”

发现在技术上难以说服对方,Mullenweg 又列举了一组数据:“使用一站式单体应用的开发方式正在获胜,今年拿下 WEB 开发最大市场份额的两个平台是 WordPress 和 Shopify,在全球排名前 1000 万的网站中,WordPress 占有率增加了约 3%,Shopify 增加了约 1.1%。如果你在谷歌上搜索 '用 WordPress 构建网站',你会发现 WordPress 实际上在过去几年中增长速度更快。”

“ 我不认为 WordPress 的时代已经结束了。”Mullenweg 补充道,“ 我认为我们将在未来几年内达到 50% 以上的市场份额。”

……

有业内人士分析,WordPress 如今依然火爆与架构本身并没有太大关系,而是因为用户喜欢这种一站式的软件即服务,而 JAMStack 包含了更多定制开发的部分,这就需要团队投入更多的开发成本。而目前,在市场上还没有一个与 Shopify、Squarespace 或 Wix 等同的 JAMStack 产品。

也有评论指出,Mullenweg 对 JAMStack 的抵制可能只是不希望 WordPress 用户流失到由 JAMStack 架构驱动的替代品上,但很难不同意 Biilmann 的一些观点,即 WordPress 架构确实存在一些固有的问题。WordPress 借鉴 JAMStack 的一些优势并与之融合,可能是一个更好的出路。 

觉得不错,请点个在看呀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode93. 复原 IP 地址(思路+详解)

一:题目 二:上码 class Solution {/**思路: 1.跟分割字符串差不多,但是我们需要记录添加的.的个数 当其个数等于3的时候 我们就已经切割成4段了。2.判断字符是否合法1>:以0开头的数字不合法2>:遇见非数字字符不合法3>:大于255不合法*/private List<String> an…

今天的你,又被带节奏了吗?

这是头哥侃码的第220篇原创十一期间&#xff0c;我在某微信群看到几个哥们在讨论 与「带节奏」有关的话题。很显然&#xff0c;像这种略带吐槽的的话题是很容易引起共鸣的。于是你一句他一句的&#xff0c;用自带表情包的方式开始说起了「带节奏」的各种操作。先是A君&#xff…

谷歌最终还是把Knative交了出来

谷歌方面正计划将其开源 Knative 项目的直接控制权让渡给一个指导委员会。Knative 是谷歌开源的一套 Serverless 架构方案&#xff0c;它扩展了 Kubernetes&#xff0c;专注于解决容器为核心的 Serverless 应用的构建、部署和运行的问题&#xff0c;它构建在 Kubernetes 和 Ist…

你那么普通 所以一定要自信啊

你这么普通&#xff0c;必须自信啊 ​ 昨天讲到&#xff0c;不管你准没准备好&#xff0c;该来的都来了。只要你进入了社会&#xff0c;这一切都没得选&#xff0c;好的坏的甭管啥事&#xff0c;都一股脑摆在你面前&#xff0c;你必须要处理。你说我不行啊&#xff0c;我做不到…

leetcode293周赛6064. 不含特殊楼层的最大连续楼层数

一:题目 二:上码 // class Solution { // public:// bool find(vector<int>& v,int i) { // for (auto nums:v) { // if (nums i) return true;//包含某个数 就返回true // } // return false; // }// int maxCon…

leetcode293周赛5234. 移除字母异位词后的结果数组

一:题目 二:上码 class Solution { public:/**1.所谓字母异位词就是相同的字母组成的字符串&#xff08;这个字符串可以相同&#xff09;2.首先判断两个字符串中的字母是否相同用map进行计数&#xff0c;然后在另一个字符串中查找某个字符进行--;3.如果最终的map中所有的value…

七国要求科技巨头预留后门 应对马甲芯片高度警惕

日前&#xff0c;美国、英国、日本、澳大利亚、加拿大、新西兰、印度呼吁科技公司设计产品时确保政府可以访问经过加密的消息和内容。其实&#xff0c;西方科技公司配合西方政府在产品中预留后门早已不是新鲜事&#xff0c;斯诺登就曾经爆料多个美国科技巨头配合美国情报部门收…

leetcode78. 子集

一:题目 二:上码 class Solution {/**横向递归的是:我们子集的长度纵向递归的是:我们子集的中元素的更改*/List<List<Integer>> ans new ArrayList<>();List<Integer> path new ArrayList<>();public void getAns(int[] nums,int st) {ans.ad…

跟我一起学Redis之看完这篇比常人多会三种类型实战(又搞了几个小时)

前言对于Redis而言&#xff0c;很多小伙伴只关注其关键的五大基础类型&#xff1a;string、hash、list、set、sorted set(有序集合)&#xff0c;其实还有三种特殊类型在很多应用场景也比较适合使用&#xff0c;分别是&#xff1a;bitmap、geospatial、hyperloglog&#xff1b;上…

leetcode90. 子集 II(树层去重)

一:题目 二:上码 class Solution {/**- 先排序- 树层去重:那么直接在从横向循环中去重即可*/List<List<Integer>> ans new ArrayList<>();List<Integer> path new ArrayList<>();public void getAns(int[] nums,int st) {ans.add(new ArrayLi…

Rancher 2.5 正式发布,多项重大更新来袭!

喜欢就关注我们吧&#xff01;近日&#xff0c;Kubernetes 管理平台 Rancher 2.5 正式发布&#xff0c;官方公布了在 Rancher 2.5 中的多项重大更新&#xff0c;包括全新的安装体验、针对边缘集群的大规模 GitOps 以及 EKS 集群的全生命周期管理。具体更新信息如下&#xff1a;…

leetcode491. 递增子序列(树层去重魔改版)

一:题目 二:上码 class Solution {/**思路:1.这里已经指明了不允许有重复的&#xff0c;那么树层去重 树枝去重(以前用过的元素不再使用)2.坑:这里不能用 传统的树层去重了 因为我们无法排序了3.这里给出的解决办法是 是利用 hashmap,对每个数出现的频率进行统计如果其频率…

数据结构与算法专题——第十二题 Trie树

今天来聊一聊Trie树&#xff0c;Trie树的名字有很多&#xff0c;比如字典树&#xff0c;前缀树等等。一&#xff1a;概念 下面有and,as,at,cn,com这几个关键词&#xff0c;构建成 trie 树如下。从上面图中&#xff0c;应该可以或多或少的发现一些好玩的特性。根节点不包含字符&…

leetcode46. 全排列

一:题目 二:上码 class Solution {/**1.全排列问题,我们的横向都是从0开始不再是st了 因为我们用到前面已经使用过的元素单是在纵向递归当中我们不能使用重复的元素&#xff0c;这里我们用used来去重。*/private List<List<Integer>> ans new ArrayList<>(…

leetcode47. 全排列 II

一:题目 二:上码 class Solution {private List<List<Integer>> ans new ArrayList<>();private List<Integer> path new ArrayList<>();private boolean[] used;public void getAns(int[] nums,boolean[] used) {if (path.size() nums.leng…

C# 很少人知道的科技

本文来告诉大家在C#很少有人会发现的科技。即使是工作了好多年的老司机也不一定会知道这些科技&#xff0c;如果觉得我是在骗你&#xff0c;那么请看看本文的内容。原本最初 C# 的设计是简单和高效开发的&#xff0c;在经过了这么多年众多公司和开发者的努力下&#xff0c;整个…

Typescript前端接口联调自动化的探究与实践

源宝导读&#xff1a;Web应用程序一般都是前后端分离的基本架构&#xff0c;而前后端很可能分别是两拨人分别开发&#xff0c;前后端的接口连调成为高频沟通的对象&#xff0c;开发内耗最大的也在这个环节。本文将分享如何基于OpenAPI将前后端接口协议标准化和自动化&#xff0…

leetcode51. N 皇后(java详解)

一:题目 二:上码 class Solution {/**思路:1.先说我们选用的数据结构;我们是选取的是List<List<string>> ans 来存每次的结果;我们在创建这个二维矩阵的时候用的是char的二维数组,那么的话等到我们得到一种可行解的时候 将char的二维数组每一行转换成 String 并存…

程序员如何跨越35岁危机?这篇给点干货建议!

职场&认知洞察 丨 作者 / findyi这是findyi公众号的第83篇原创文章这两天在我的读者群里做了一个职业小调研&#xff0c;发现关注我公众号的70%以上都是程序员。毕竟程序员吸引程序员&#xff0c;这也算猿粪吧&#xff0c;哈哈。这个小调研也引发大家对程序员行业的激烈探讨…

leetcode455. 分发饼干

一:题目 二:上码 class Solution {public int findContentChildren(int[] g, int[] s) {int ans 0;int gIndex 0;int sIndex 0;Arrays.sort(g);Arrays.sort(s);while (gIndex < g.length && sIndex < s.length) {if (s[sIndex] > g[gIndex]) gIndex; //只…