现在构建网站比 10 年前更难还是更容易?标准是提高了还是降低了?我没有数据可以提供,但我可以分享一些不确定的观点。
HTML
HTML5 是过去十年中唯一重大的 HTML 变化,而且变化并不剧烈。很酷的是它成为了更宽松的版本(而不是变成 XHTML3 或其他什么)。这样更兼容。也许我会关闭我的<br />
,也许我<br>
不会。拥有更好的语义标签(例如<article>
)很棒。输入类型也很棒。但这些都没有让 HTML 变得明显更容易或更难。
相同。
CSS
CSS 变得更容易了。我们一直在使用更少的“hack”。我确实能感觉到这一点。我们今天编写的 CSS 感觉非常有意图且直接。10 年前,我觉得几乎每个元素都有一些奇怪的 hack,而今天,几乎没有。如果 CSS 感觉更难,我敢打赌是因为我们正在构建的网站更大、更复杂,因此它们的样式系统需要更加强大,出错的风险也更加严重。
更容易。
JavaScript
我相信这里可以给出强有力的论点来支持这两种观点。也许语言本身,以及它最近的所有语法创新……也许更容易。但是,要求 JavaScript 做什么,以及我们如何使用它,规模是如此之大,以至于随之而来的是更大的难度。在这一点上,它与 CSS 类似,但更为明显,因为我们不仅仅是在新的规模上做以前的事情;我们正在用这种语言构建整个界面,而这在以前是不可能的。
更难。
域名
我提到这一点是因为它是任何人在从零开始到真正拥有一个网站的过程中至关重要的一步。
我认为购买域名并没有变得更容易。域名是一个商品市场,因此出售域名的公司出于其他原因向你出售它们,这意味着他们有很高的动机向你推销其他产品。对于完全新手来说,我可以想象他们要么感到非常困惑,要么他们还不够了解,以至于还没有意识到困惑。我是否应该通过这个页面构建器购买?我是否必须通过这个页面构建器购买?我需要 WHOIS 保护吗?天哪,DNS 到底是什么?我想我确实想要电子邮件,对吧?或者那是什么奇怪的特殊托管电子邮件?Ughjakd。我把它称为平局。十年来,没有任何东西让这件事变得更容易或更难。
相同。
托管
托管行业有如此多的资金,我有点难以置信的是我们没有看到更深入的创新。我可能会说现在稍微容易了一些。但是,商品化的低端托管与十年前并没有太大区别,也没有变得更有帮助或更没帮助。我们仍然像十年前一样,在很大程度上将自己的定制构建和部署流程串联起来。
大型项目可能已经看到了很多创新,例如 AWS,但没有人会争辩说这些东西很容易。
我们看到的最大创新来自 Netlify 和 Zeit 等公司,它们从帮助你本地运行程序、在暂存环境中测试构建到不可变部署,全面关注开发人员体验。我希望看到所有托管公司意识到,他们每个客户都需要将代码部署到他们的平台上,他们有机会直接帮助我们做到这一点。
稍微更容易。
人们实际是如何做的
我喜欢思考 HTML、CSS 和 JavaScript。但当然,很少有人真正从这些技术开始从头构建实际的网站。实际上,它们最终被视为你在大量其他技术中涉猎的基础技术。
你可以仅使用index.html
文件构建一个网站。我认为更多人应该这样做。但人们会寻求更“完整”的解决方案,并从那里进行自定义。我知道我做过。我创建的第一个网站是 WordPress,因为它是一个完整的网站(有自己的问题),我对其进行了自定义。人们今天仍然这样做,可能比 10 年前更多,而且我觉得它并没有变得明显更容易或更难。或者他们会寻求熟悉的东西。不久前我创建了一个单页的index.html
网站,后来被另一位开发人员接手,他将其变成了一个 create-react-app 网站,但其他方面没有改变。他们只是不知道如何在没有 React 的情况下处理它。
或者他们使用 WordPress.com、Squarespace、Wix、Shopify、BigCommerce,或者你知道我的意思。这与人们可以做什么无关,而是与人们实际做什么有关。对于大多数人来说,这些应用程序显著降低了创建网站的门槛。
那么,对于普通人来说,从零开始拥有某种网站更容易还是更难?
容易得多。
人们能够做到吗?
如果我们谈论的是从头开始创建,那么看看谁认为自己仍然掌握着这些钥匙,这很有趣。这篇文章的整个想法源于我与一位曾担任前端开发人员的人的谈话,他被朋友要求构建一个网站。他拒绝了,因为他不知道怎么做。
与一位在一家公司担任前端开发人员 3 年的人聊天。他的朋友让他帮忙构建一个网站,但他不得不拒绝。他不知道怎么做。
— Chris Coyier (@chriscoyier) 2019 年 10 月 14 日
这其中的一部分并不让我感到惊讶。在我写作的时候,世界充斥着专注于 React 的开发人员,他们在构建大型网站(部分原因是培训营,部分原因是市场需求)。他们了解这个非常具体的生态系统,并在其中非常有效率,但并不全面了解所有这些如何组合在一起才能构成一个完整的网站。
专家就是专家!
他们:你做什么工作?
我:我是一名网页设计师。
他们:酷!你能帮我构建我的网站吗?
我:[笑着]哦,天哪,我完全不知道怎么做。— Karen McGrane (@karenmcgrane) 2019 年 10 月 14 日
我的一部分确实感到惊讶。你知道一个包含“Hello, World!”的index.html
文件可以是一个网站,对吧?即使是 React 开发人员通常也高度了解 create-react-app 以及它如何构建一个随时可用的网站。像Stackbit这样的工具可以为你构建一个 JAMstack 网站,该网站可以部署到任何地方。对于开发人员来说,从零开始构建网站现在似乎容易多了。
容易得多。
我们是否还在处理 Netscape/IE 或者只是 IE 的 hack。
所以,我们必须担心浏览器。
现在,是 iphone、小 ipad、普通 ipad、笔记本电脑、超大屏幕。
我敢打赌 CSS 变得更加困难了。原则上它大致相同;如果你创建了一个 CSS 文件并遵循级联,但现在没人想要这样了。一切都是关于跨平台/设备的。响应式。工具(Sass 等)CSS 变量,列表还在继续。
10年前,我根本不需要 Sass 或者转译器(例如 webpack、gulp 或 grunt)。我直接开始编码网站就行了。现在,需要花几个小时来设置工具,这还不包括我为了确保自己了解最新工具而做的研究。
当你超越基础知识时,开发总体来说变得更加困难了。
我同意你的观点 - 我们现在的一些布局工具更容易理解和实现(而且你不需要学习大量的技巧和陷阱……),但是处理响应式布局本身就增加了很大的复杂性。
完全同意!它变得极其耗时……仅仅是设置环境来完成一些简单的事情。反驳的观点是,最终你将构建一个更具可扩展性、可维护性和复杂性的应用程序。(叹息)
就从头开始构建一个完整的网站而言,我认为答案是“两者都是”。
一方面,入门门槛比以前高得多,因为你需要考虑的事情更多了。一个网站必须能够从巨大的桌面屏幕缩放到手机以及两者之间的所有尺寸。你必须考虑键盘和鼠标交互与触摸交互。你必须考虑可访问性。对于任何稍微复杂一点的东西,你都希望使用 CSS 预处理器、包管理器等,这意味着设置构建过程,这意味着使用命令行。你希望设置一个 git 仓库。等等,等等。
另一方面,一旦你克服了最初的学习曲线,事情就变得容易得多了。像 Bootstrap + SASS 预处理 + npm + git 这样的组合非常强大且灵活。CSS 已经有了很大的改进,并且比以前强大得多(flexbox、grid 等),并且可以原生实现很多以前需要大量手动工作才能完成的视觉效果(阴影、渐变、过渡等)。所有这些功能的浏览器支持都更加全面和一致。
总的来说,我认为情况有了巨大的改善。但是你必须随着变化而变化。我想象一下,如果我在刚开始学习网页开发后不久就放弃了(2000 年代初),然后现在试图重新开始——一切都将变得如此不同,几乎就像从头开始学习一样!
克里斯,你知道,虽然我10年前并没有真正深入研究网页设计,但现在看来,页面构建器似乎可以让事情变得更容易。
话虽如此,我通过艰难的方式了解到,这不仅仅是在页面上添加一些文本和图像然后就完事了。但是,这才是有趣的部分!我很高兴被迫学习 CSS,接下来我要学习 Java(还有更多的 .php)。
我认为,虽然事情可能更容易了,但(至少对我来说)随着网络的变化,我还有很多东西需要学习,你知道吗?
为了让你的思考有意义,你忽略了整个层次的讨论。
构建工具、动画、性能、可访问性、多设备、组件架构、前端的 GraphQL 查询。
前端的事情比十年前复杂得多。
“托管”正在进行一些持续的实验性创新。星际文件系统 (IPFS) 可能将使托管变得更加便宜和易于访问,并颠覆当前网络的逻辑,“访问者越多,服务器成本越高”。在 IPFS 中,访问者越多,服务器成本越低。
此外,在 IPFS 中,文件需要进行签名(因为私有签名密钥控制文件的版本),因此您可以免费获得一些防冒用安全性。
即使在十年前,仍然有人依赖
<table>
作为布局结构而不是 CSS。所以我想说,随着对flex box
和grid
的支持不断增强,它使得 CSS 以及 HTML 变得更容易了。JavaScript 可能总体上更难。有更多框架选项,还有新的 ES6。像 React 或 Vue 这样的 JavaScript 库的流行使得 JS 处于最前沿,因此我们现在更有可能更强烈地考虑性能。
我唯一认为域名购买/托管更容易的地方在于选项更多了。因为选项更多了,所以如果你喜欢,更容易进行单点选择,如果你决定更换服务商,管理这些迁移也比我十年前遇到的情况容易得多。
…
如果我们谈论的是开发人员之外的范围,以及普通人如何设置他们的网站?我会说容易多了,但要加个星号。从安装 WordPress 到任何数量非常棒的视觉编辑器服务,都有数百万个选项。任何普通人可以很容易地设置一些东西……它可能不像他们希望的那样定制,但他们能够建立一些看起来很专业并且能够完成工作的网站。
不过,星号代表什么呢?有数百万个选项可供选择!这可能是一项艰巨的任务……选择一个满足您需求的选项,了解您的需求是什么以及将是什么。
…
对于开发人员来说,我想说“我们实际如何操作”并没有真正变得更容易。它只是变得更多样化了。老实说,这是一件好事。安装 WordPress,自定义编写自己的后端,使用 PHP、ASP、React 或其他任何东西为其提供支持。或者使其完全脱机访问。一切都很好,一切都能正常工作。唯一的限制是您执行代码的能力或您学习如何执行代码的意愿。
最近,当我找工作时,一位面试官问我关于前端框架(将 JavaScript 框架、CSS 框架等混淆)以及我是否熟悉它们。我的回答是我并不真正关心框架,而是重视扎实的基础。任何人都可以在一定天数内有效地学习[插入框架名称],前提是他们有坚实的基础。在我看来,要投入时间学习一个框架,该框架最好能够存在并保持相关性多年……
我认为编程语言正在变得比以前更容易。
但困难在于每天都有数千个网站上线。
而且要建立一个网站,你必须与众不同。
嗨,克里斯 - 我喜欢你的文章
HTML -> 一样
你如何评价 Web Components、Shadow DOM 等?我自己没有经验,但它确实代表了 HTML 的变化
渐进式 Web 应用?现在说还为时尚早?
WebAssembly?
新年快乐
John
HTML……好吧,是的。我们不能说它现在更容易或更难,它只是变得更大了。我们可以做更多的事情,但如果我想象一下刚开始接触前端开发的人,与 HTML5 之前相比,这可能太多了。
我不得不不断扩展我的大脑来容纳所有东西。我记得几十年前我使用原生编辑器的时候觉得它很简单。现在它并不是真正很难。不同的是,现在有太多东西需要了解!就在我以为自己掌握了一些东西的时候,我谷歌搜索并发现我完全错过了跟上其他东西的步伐,甚至不知道其他东西现在已经成为现实了。哇!我正在这个世界里步入老年,却没有注意到。
一方面,它更容易,因为浏览器更好、黑客更少、教程更多、在线课程更多、信息无处不在、构建工具更多、设置更快,以及总体上更好的工具等等。
另一方面,这个领域比以前发展得更快,期望值也更高。不仅要精通特定的工具集,还要精通可访问的 HTML、弹性和简洁的 CSS 以及占用空间小的 JS 的整体组合,还需要了解特定的框架和构建工具,我想它变得更难了。仅仅跟踪最佳实践、新工具以及使用它们所需的时间几乎就是一份全职工作。