我们需要从头开始创建一个网站

图片




过去十年中网络的发展反映了美国经济的发展。所有关键指标在图表上向上和向右移动,源源不断的基本突破提供了一种“进步”感,但实际上,可用性和技术对人们的影响停滞甚至退步。



这场危机正在影响平台,创建者和消费者。



我将尝试分析和诊断这种情况。如果您只是想阅读我关于重启网络的常识性,非专业性的言论,那么可以跳过此部分。我们的想法是,我们可以选择一种新的轻量级(markdown)标记格式来代替HTML和CSS,将Web分为Web文档和应用程序,从而重新获得Web的速度,可访问性和趣味性。



这篇文章使用了“ web”的学究定义。我已经谈论过几次尝试重塑“互联网”的尝试。诸如dat,IPFS和arweave之类的项目被构想为重塑Internet或其传输和数据传输层。网络是位于这些层之上的:HTML,CSS,URL,JavaScript,浏览器。



平台崩溃



上周,发生了重要的平台更改-Mozilla裁员250名员工,并表示这将影响Firefox的开发。 Firefox不是第二受欢迎的浏览器,它是Safari,这主要是由于iPhone和iPad所有者的“束缚”受众。但是,它是人们选择的最受欢迎的浏览器





statcounter



图表真正的赢家不是Chrome本身,而是Chrome引擎。一个KHTML代码库分为WebKit(Safari)和Blink(Chrome,Microsoft Edge,Opera等),



实际上,这就是教科书中“单一文化”的定义。一方面,这是协作方面的胜利,因为没有人需要在竞争性的实现上“浪费时间”,并且Web开发人员在所有浏览器中都面临相同的功能和错误。但是从更深的意义上讲,它威胁着Web进化的基本原理。



专业化与实施





通过结合规范实现,网络得到了发展。等组织WHATWGW3C,以及IETF已经为空间独立开发者,企业和学术界合作,探讨新的网络能力的潜力。浏览器已经在许多不同的实现中测试了他们的想法。



这是该结构的一个有趣部分:这样的系统确保我们所有人可以一起发展,并且我们的目标之一是能够为许多贡献者为网络做出贡献。上时让我们不高兴空单元格出现了,但是总的想法是,即使不同的浏览器在不同方面可能是最好的,但迟早它们会相互追赶。Chrome不是第一个引入新功能和优化功能的浏览器。



协作工作比单独工作要慢,但是却带来了我们今天已经失去的好处。Chrome的发展非常迅速,以令人难以置信的速度添加了新的规格和构想,成为最难重建的软件产品之一。



这在我看来,迈克希利它最好的



如果渲染引擎仅能为它创建一个或两个组织,您是否认为网络在复杂性方面实际上是“独占”的?


如今,不仅几乎不可能从头开始创建新的浏览器-如果您这样做了,则实施新标准的不懈努力将需要整个专家团队。您可以在Drew DeWalt的文章中阅读有关此内容的信息,Web浏览器需要停止我还建议阅读他的其他材料。



流量呢?
, Flow, . , , - , vaporware.


对创作者的挑战



网络设计变得越来越困难。



网络仅发展了25年,几乎没有机会收缩,如今,它受到极短视的经济和职业发展文化的影响,没有长期计划。有很多实现方式,在我看来,在Web上创建应用程序的一些最流行的方法通常功能极其强大。2020年



进入Web开发的最佳方法是选择一个像Vue.jsReact这样的小众市场,并希望在团队中拥有CSS专家。



对于那些只想创建网页而不是努力进入该行业的人来说,存在着令人迷惑的技术,但是其中最简单的也许是最好的受到了污名化。与在记事本中键入HTML相比,人们使用GraphQL编写React履历的可能性更高。



消费者的问题



我们希望所有创新都是为用户着想的,但事实并非如此。看起来现代网站是网络历史上最大,最慢和最容易出错的网站。我们的计算机几乎没有更快的速度,并且我们的互联网连接速度一直停滞不前(甚至不要尝试谈论5G)。网页大小的增长超过了所有其他参数的增长。



因此,即使在Firefox中安装了uBlock并拥有良好的本地光纤提供商,我也不再期望页面会很快



但是我不想为所有的网络开发人员指责。...我可以分享我以前工作地点的一个相当有趣的故事。我们收集了有关用户与网站互动的数据,以回答一些简单的问题,例如“人们是否单击按钮将文件上传到服务器,或者他们使用拖放操作?”因此,我们使用了Segment工具,该工具可让您使用简单的脚本添加数据收集管道。但是问题是,细分市场的页面很大,有数百个数据提供商和广告技术公司。而且,当然,那些在公司从事业务的人开始点击所有这些按钮



您会发现,广告和数据跟踪的问题在于所有这些都可以完成,但是谁会拒绝呢?(在我们的案例中,我选择退出并添加了CSP,以阻止新广告客户访问页面级。)



回归简单



通过向复杂系统添加简单性来实现简单系统是不可能的。-理查德·奥基夫Richard O'Keeffe)


接下来我们要去哪里?最聪明的人建议我们安排网络版本的修订



我们如何使网络有趣,协作且良好?



首先,我认为有两个网站:



网络文件





有“网络文档”:博客,新闻,维基百科,Twitter,Facebook。据我了解,实际上,这是最初看到的网络(当时我才两岁)。CSS,我们现在将其视为设计人员可以用来创建品牌独特性和添加像素精确细节的工具,最初被视为一种使文档可读而无需格式化的方法,从而使这些文档的读者可以自定义外观。实际上,此属性在Chrome中保存为自定义样式表已有一段时间,并且在Firefox中仍然可以使用但是,在当今的网络上,这将是艰巨的任务,因为他已经有效地放弃了语义HTML的想法



Web“应用程序”





然后是“ Web应用程序”。它开始于基于DjangoRuby on Rails之类的服务器端应用程序在他们之前,有许多技术将永远存在于公司中,例如Java servletsBackbone.js证明了其中许多应用程序都可以移植到浏览器中,此后,React及其许多SPA竞争对手为网络创建了一个新的世界订单-具有高度交互性和复杂性的客户端应用程序。







网络各部分之间的战争



我认为正是这种双重性质造就了网络的魔力。但这也是一种破坏力。



神奇的是,一个简单的博客可以成为一种创造性的媒介,是一种表达自己的绝佳互动方式。我的网站不是那样的,但我只是说这是可能的



问题在于,“ Web文档”通常具有应用程序特性– JavaScript和动画,以及它们的复杂性使普通新闻网站陷入困境。当文档网站采用应用程序模式时,它们经常不小心牺牲了可访问性,速度和机器可读性。



而且“ Web应用程序”具有文档特征-交互式应用程序竭尽全力避免HTML和CSS的大多数基本特征,而仅将它们用作原材料-完全避免直接编写HTML,避免编写CSS,避免使用标准动画功能,替换对看起来相似但完全不同的东西进行分页。 Web应用程序HTML上使用JSX,并且更喜欢在浏览器中处理它,或者在JavaScript上使用Svelte,并且也更喜欢它。



当我阅读“传统Web开发人员”的博客文章时,他们对HTML和CSS不够用而感到烦恼,事情变得如此复杂,我认为这主要是因为在许多地方,应用程序开发堆栈在构建Web方面-sites替换了文档创建堆栈。无论我们在哪里使用Jekyll或网站端渲染,现在都将应用React或Vue.js。这种方法有很多优点,但是对于许多交互性最小的网站而言,这意味着放弃数十年的知识来换取一些可能根本不重要的速度优势。



社交媒体的吸引力



社交媒体的吸引力部分是由于这样一个事实,即它使我们无需考虑Web技术就可以创建文档,并提供了速度,可访问性和完美性的保证,而如果没有社交媒体,这将花费我们很多时间。我们不必担心Facebook帖子会在朋友的手机上快速加载或在Instagram上正确编辑和发布照片-所有这些工作都已经由我们负责。



在某种程度上,这不需要社交媒体功能:RSS之类的标准以及Instapaper之类的服务证明,可以在平台级别上完成漂亮的格式化和分发 并以现有的香草网站为基础。



但是没有明确的划分
, - : ! , , -, , , («» JavaScript -), , . , , . : , , , .


Web文档2.0



当然,对新Web实施统一的理论是非常好的,它具有足够的应用程序特征和足够的文档特征来创建我们今天正在使用的所有混合交互式文档。但是拆分网络的路径对我们来说更清晰了,我首先考虑了一下,所以让我们谈谈它。



  • 规则1-不要创建子集如果仅是十年前Firefox 10中提供的功能替代了Web,那么没人会喜欢这个版本。
  • №2 — . , , , - , .
  • №3 — . , : , , , , , , .


因此,假设我们正在创建一个新的Web文档。



首先,我们需要一种最小的标准化标记语言来交流文档。我们可能想从为HTML生成量身定制轻量级标记语言开始。 Markdown的严格味道(称为Commonmark)似乎是个不错的选择。这是我撰写所有帖子的语言,是我家庭中最受欢迎的语言。 Markdown的解析器很多,工具生态系统也很多。



接下来,我们需要一个浏览器。长期以来,Mozilla一直在开发全新的浏览器-Servo...开发团队上周被解雇了,这很可悲。该项目包括用于渲染字体的独立Rust框架,以及Rust中的高端Markdown实现和一组不断增长的强大应用程序框架。是否可以创建直接使用此管道的纯Markdown浏览器?也许?



我相信,这种结合将使我们能够在很大程度上恢复失去的速度。与现代网络相比,我们可以在短短的时间内显示一个页面。内存消耗可能很小。默认系统将不可访问。您可以创建美观的标准样式表并共享其他自定义样式表。由于体积大大减少,我们将能够将系统移植到各种设备上。



网站编辑工具会是什么样(可能是最重要的)?它们可以是简单。



聚合是什么样的?如果网页比应用程序更像文档,那么我们就不需要RSS-网站将具有指向文档的索引,并且默认情况下,“阅读器”可以聚合网页本身。



我们可以使用著名的dat协议文件之东西链接两个网站,或者我们可以使用Accept标头创建一个能够理解HTML但更喜欢轻量级页面的浏览器。



Web应用程序2.0



我有一种感觉,无论我提到什么网络问题,都会自动回答WebAssembly可以解决它。会是这样吗?



我不知道。 WebAssembly实际上是一件好事,但是Web应用程序应该只在画布上呈现,而每个应用程序绘制自己的图形工具箱吗?在Web应用程序中抗锯齿的实现上,我们真的需要区别吗?看看Qubes确实存在容器化的应用程序,但是它们并不是用户真正想要的。在Mac上使用Blender或Inkscape的任何人都会对它的外观有一个大概的了解。



还是WebAssembly可以成为新的“核心”并仍然呈现UI HTML?或者...我们可以创建WebAssembly应用程序使用的共享链接库。它会像SwiftUI一样工作,并提供诸如约束之类的易于应用的标准,而不是像文档中找到的行高和浮点这样的概念。



塑造Web应用程序概念的问题在于它增长了很多。



Mac App Store,Windows App Store,App Store和Play Store越差,这些垄断的需求越多,成为Mac或Windows开发人员所花费的成本就越高,这些应用程序向网络的迁移就越多。当然有些应用程序更好在网上。但是,许多人之所以会去那里仅仅是因为它是唯一可以轻松,廉价,自由地分发或出售产品的地方。



从前,我们可以安装应用程序,明确同意它们可以在计算机上运行,​​以及使用我们的硬件。那个时代即将结束,如今的网页具有相当复杂的获取信息的方法,从网络摄像头,文件,游戏控制器,音频合成到密码学以及曾经是可能性.exe领域的一切.app当然,这赋予了新的力量,但是这种情况很不寻常。



谁在为此工作?





?



关于此问题及其解决方法有许多可能的观点。我认为这实际上是个问题(对Google以外的所有人)。网络浏览器是我们可以理解的东西,网页是可以被更多人创建的东西,这对我来说似乎很神奇。



降价方法似乎很现实。我认为反对它的最有力论据是,它“从网络中吸走了所有有趣的东西”,这是部分正确的。但是,从我们通常的意义上讲,早期的网络并不有趣-在那里我们只能创作艺术或将其用于交换文件以外的任何其他用途。但是它非常有趣,因为共享信息很有趣,并且可以通过简单通用的方式来完成。因此,最重要的是找到能够释放这种计划可能性的要素,如果存在的话。或者找到另一个“足够有趣”的计划。



社交媒体往往比网页更具限制性,但也更具吸引力。由于许多重要原因,其中最重要的是有更多人参与的可能性。如果Web的其余部分如此简单和即时而又不那么集中怎么办?如果我们可以重新开始怎么办?






广告



Epic服务器虚拟服务器,用于托管站点,从小型WordPress博客到具有百万观众的严肃的项目和门户。提供多种收费计划,最大配置为128个CPU内核,512 GB RAM,4000 GB NVMe!






All Articles