网络的全新起点网络目前需要重新设计。
过去十年中网络的发展反映了美国经济。所有基本指标都在“向上和向右”移动,源源不断的基本进展可确保使用“有进展”,但是个人的实际经验和影响会停滞或消退。
这场危机影响了平台,创作者和消费者。
我将尝试剖析和诊断这种情况。如果您只想阅读我随意,不专业的建议以重新启动网络,则可以跳过。我们的想法是,我们可以选择一种新的轻量级Markdown格式来替换HTML和CSS,将网络分为文档和应用程序,并再次获得性能,可访问性和乐趣。
这篇文章使用了“网络”的学究定义平台崩溃平台方面发生了变化,上周Mozilla裁员了250名员工,并表示这将影响Firefox的开发。Firefox不是第二大浏览器,而是Safari,主要是因为iPhone和iPad用户的受众众多。但这是人们选择使用的最受欢迎的浏览器。statcounter的图表
真正的赢家不仅是Chrome,还有Chrome的引擎。一个代码库KHTML分为WebKit(Safari)和Blink(Chrome,Microsoft Edge,Opera等)
这是一本关于单一文化的教科书。从某种意义上说,这是协作的胜利,因为没有人浪费时间在竞争性的实现上,Web开发人员可以期望在不同的浏览器中具有相同的功能和错误。但是从更深的方面讲,它威胁着网络如何发展的基本原理之一。
规格与实现
通过规范和实现的结合,网络得到了发展。诸如WHATWG,W3C和IETF之类的组织一直是供独立开发人员,公司和学术界讨论网络潜在新功能的协作空间。然后,浏览器将通过各种实现对这些想法进行测试。
这是一个有趣的结构性片段:它使我们所有人都可以继续关注,并且多参与者网络是我们的目标之一。拔起犬只并看到空白点令人沮丧,但想法是,不同的浏览器可能在某些领域处于领先地位,但最终每个人都追上了。Chrome并非总是第一个使用功能或进行优化的人。
协作比单独工作要慢,但是在某些方面我们现在已经失去了优势。Chrome的发展速度非常快,以惊人的速度添加了新的规格和构想,并且正在成为最难复制的软件之一。
我认为Mike Healy 说得最好:
如果只有1-2个组织能够为它构建渲染引擎,您是否认为网络在复杂性方面几乎已经“从市场中定价”?
从头开始构建新的浏览器几乎是不可能的,一旦您拥有了一个符合标准的持续成本,就需要一整套专家。阅读Drew DeVault的Web浏览器需要为此停止,并继续阅读Drew的所有内容。
流量呢?创作者面临的问题网络变得越来越难以开发。
网络已经成长了约25年,几乎没有收缩的机会,如今被一种极短视的文化所包围,这种文化是经济和职业短期主义的产物。有很多方法可以执行任何操作,并且在我看来,在Web上构建应用程序的一些最流行的方法通常令人讨厌。
人们在2020年进入Web开发的最佳方式是选择一个细分市场,例如Vue.js或React,并希望他们的团队中有CSS和可访问性专家。
对于只想创建网页,不想进入某个行业的人们来说,有很多令人困惑的技术,但是所有最简单,可能最好的技术都受到了污名化。与在记事本中键入一些HTML相比,在GraphQL中用React构建自己的简历要容易得多。
消费者的问题我们希望所有这些创新都是针对用户的,但通常并非如此。现代网站似乎比以往任何时候都大,慢且有漏洞。我们的电脑几乎变得越来越快,我们的互联网连接速度停滞不前(甚至没有尝试提5G)。网页大小的增长已经超过了一切。
最终结果是,即使在Firefox中安装了uBlock并拥有良好的本地光纤互联网提供商,我也不再期望页面会很快。
不过,我不想将所有责任都推给那些Web开发人员。这是一个旧工作的故事,我觉得很有趣。我们正在从用户交互中收集一些数据,以回答一些简单的问题,例如“人们点击上传还是拖放?” 因此,我们启用了Segment,该工具可让您通过包含单个脚本来添加数据收集管道。然而,问题在于,Segment提供了大量的开/关开关,上面有数百家数据提供商和广告技术公司。而且,当然,距离业务较近的一些人开始单击所有这些按钮。
看到,广告和数据跟踪的问题在于您可以,谁会拒绝?(在这种情况下,我说不,并添加了一个CSP,它将阻止新广告客户在页面一级进行访问。)
重现简单您无法通过向复杂系统添加简单性来获得简单系统。- 理查德·奥基夫
我们从这里去哪里?一些最聪明的人一直在提倡对 Web 进行主要版本的修订。
我完全没有资格从头开始猜测一个全新的网络,但是空气质量令人恐惧,所以我跳过了跑步,这是星期六的早晨,所以我们在这里。
我们如何使网络变得有趣,参与性和良好?
我首先想到的是,有两个网:有“文档网站”,例如博客,新闻,维基百科,Twitter,Facebook。就我所知(我当时是2岁),这基本上是网络的原始愿景。基本上,我们现在认为CSS是设计人员添加品牌标识和调整像素完美细节的一种方式,而相反,它主要是使普通文档可读并让这些文档的读者自定义外观的方法。该属性实际上以用户样式表的形式在Chrome中存活了一段时间,并且在Firefox中仍然有效。尽管在当前的网络中这将是一个艰难的旅程,但基本上已经放弃了语义HTML的想法。
“应用程序”网站然后是“应用程序网络”。它始于服务器应用程序,它使用诸如Django和Ruby on Rails之类的东西构建,而在此之前,各种各样的技术将在企业中永久存在,例如Java Servlets。
Backbone.js证明了其中许多应用程序都可以移动到浏览器中,然后React及其众多SPA风格的竞争对手为Web建立了新订单–高度交互,非常复杂的客户端应用程序。
网络各部分之间的战争我认为,这种双重性质是使网络具有魔力的一部分。但这也是一种破坏力。
神奇的是,简单的博客可以富有创意地表达,可以进行精美的交互。这不是,但我只是说- 有可能。
问题在于,“文档网站”经常受到应用程序特性的困扰-JavaScript,动画和复杂性使您的普通报纸网站无可避免地遭受灾难。在文档网站采用应用程序模式的地方,它们经常不小心牺牲了可访问性,性能和机器可读性。
而且“应用程序网络”受到文档特性的困扰-交互式应用程序将竭尽全力避免HTML和CSS的大多数基本特性,而只是将它们用作原材料-避免完全直接编写任何HTML,避免编写任何 HTML 完全不使用CSS,避免使用默认的动画功能,而是使用外观类似但完全不同的东西来代替基于页面的导航。应用程序Web使用JSX而不是HTML,并且希望在浏览器本身中使用它,或者在Svelte中使用它而不是JavaScript,并且也希望这样做。
当我阅读“传统Web开发人员”的博客文章时,他们发疯了,因为它们不再满足HTML和CSS的要求,而且一切都很复杂–我认为这主要是因为用于构建网站的应用程序堆栈已在很多方面取代了文档堆栈。的地方。在我们使用Jekyll或服务器端渲染的地方,我们现在使用React或Vue.js。这样做有很多好处,但是对于许多交互最少的网站,它却浪费了数十年的知识来换取某些甚至可能无关紧要的性能优势。
社交网络的吸引力社交网络之所以吸引人,部分原因是它们使我们无需考虑网络技术就可以创建文档,并且它们为性能,可访问性和改进提供了保证,否则这些工作将占用我们的时间。您不必考虑最后一条Facebook帖子是否会很快加载到您朋友的手机上,或者您的Instagram帖子是否会在时间轴上正确裁剪和调整大小-这些事情都得到了解决。
从某种程度上说,这并不需要是什么,只有社交网络提供,虽然:像标准RSS和类似服务的Instapaper显示,取悦格式化和分布在做平台的水平和提供现有的香草网站的顶部。
这些不是绝对的。文档网页2.0一个新网络的统一理论,它具有足够的应用程序特征和足够的文档特征,可以提供我们今天看到的各种混合交互式文档-那就太酷了。但是通往破碎的网络的道路更加清晰,这是我首先想到的,所以这里有一些。
规则1是不构成子集。如果Web的替代品只是10年前Firefox中的功能,那将不是一个引人注目的愿景。规则2 不兼容。如果替换的Web与当前的Web并存,并且没有区别,那么您将永远不会降低复杂性,因为替换的Web浏览器仍将支持所有内容,并且不会鼓励人们离开旧的Web。规则#3 使每个人都变得更好。生态系统中的每个人都应该有一个特权:制作页面的人,阅读它们的人以及制作使他们可读的技术的人。好的,假设我们正在创建一个新的文档网站。
首先,您需要一种最小的标准化标记语言来发送文档。您可能想从一种轻量级的标记语言开始,该语言具有讽刺意味的是适合于生成HTML。Markdown严格指定的变体Commonmark似乎是一个不错的选择。那是我所有博客文章都使用的语言,也是其家族中最受欢迎的语言。Markdown有很多很棒的解析器和庞大的工具生态系统。
然后,您需要一个浏览器。Mozilla一直在开发一种全新的浏览器-Servo。那支球队上周被解雇了,真糟糕。该项目包括用于字体渲染的独立Rust板条箱,以及世界一流的Rust Markdown实现,以及越来越多的令人惊叹的应用程序框架集。您能否构建一个直接通过该管道的Markdown浏览浏览器?也许?
我认为这种组合可以极大地提高速度。您可以在网络时间的一小部分时间内在屏幕上获得一个页面。内存消耗可能很小。默认情况下,它将不可访问。您可以制作美观的默认样式表,并共享其他用户样式表。由于范围受到极大限制,您可以将其移植到各种设备。
而且,也许最重要的是,网站编辑工具会是什么样?他们可能是方法简单。
聚合看起来像什么?如果网页比应用程序更像文档,那么我们就不需要RSS-网站将具有指向文档的索引,默认情况下,“阅读器”可以聚合实际的网页。
我们可以使用dat的知名文件(或使用Accept标头)创建可以接受HTML但更喜欢轻量级页面的浏览器,从而在网络之间建立链接。
应用程式网路2.0我觉得每次我提到网络时,自动响应就是WebAssembly可以修复它。也许?
我不知道。WebAssembly 是非常伟大的,但应该web应用程序只绘制到画布上,每个应用程序带来了自己的图形工具?我们是否真的想要Web应用程序之间的抗锯齿差异?容器中的应用程序是一回事-看一下Qubes-但这并不是用户真正想要的。在Mac上使用Blender或Inkscape的任何人都对此有一定了解。
还是WebAssembly是新的“核心”,我们仍然使用HTML呈现UI?或者…创建一个WebAssembly应用程序可以使用的共享链接库,该库的工作方式大致类似于SwiftUI,提供诸如约束之类的应用程序友好的布局约定,而不是诸如行高和浮点数之类的以文档为中心的想法?
构想应用程序Web的问题在于它相当广泛。
“ Mac App Store”,“ Windows App Store”,“ App Store”和“ Play Store”获得的效果越差,垄断需求的削减幅度越大,成为Mac或Windows开发人员的成本越高,应用程序越多被推到网络上。当然,某些应用程序在网络上更好。但是,这里有很多东西,因为这是您可以轻松,廉价,自由地共享或出售产品的唯一地方。
曾经有一段时间我们可以安装应用程序,达成某种明确的协议,即某些内容可以在我们的计算机上运行并使用我们的硬件。那个时代即将结束,网页现在拥有相当复杂的方式来获取从网络摄像头到文件,游戏控制器,音频合成,密码学以及曾经是.exeand .apps 领域的所有其他事物的一切。可以肯定的是,这是一种授权,但这是非常不寻常的情况。
谁在为此工作?烧杯浏览器在某种程度上是对互联网的重塑-这是使用dat进行分散管理的最简单方法,但他们也在尝试各种新型文档和创作方式。双子座计划(Project Gemini)是一个非常有趣且具有明显复古风味的网络替代品。(通过杰西)我很受taizen(基于命令行的Wikipedia浏览器)的启发。它显示了文本优先体验是多么的有趣。你怎么看?还有很多其他方法可以解决此问题。对于Google以外的所有人,我认为这都是一个问题。Web浏览器是我们可以理解的东西,网页是更多人可以制作的东西,这让我感到很兴奋。
以降价为中心的方法感觉很可行。我认为最明显的反驳是,它“从网络中吸取了所有乐趣”,这有些道理。但是早期的网络在许多传统方式上都不好玩-您不能在那里完全创作或使用艺术,而不是共享文档。但这很有趣,因为共享很有趣,并且在某些很酷的方式上既简单又灵活。因此,关键是要发现那些可以解决此计划中各种可能性的小东西(如果有的话)。或者找到一个“足够有趣”的计划。
社交网络通常比网页更具限制性,但在很多方面也更有趣,其中主要的一点是可以参与的人更多。如果Web的其余部分具有这种简单性和即时性,却没有集中化怎么办?如果我们可以重新开始怎么办?