我对 Hello Base 的反馈
原文由 Michael Lynch 于 发布,订阅该博客
加密货币的语言隔阂
如今,技术圈里存在一道不幸的语言隔阂。
加密货币爱好者对整个生态以及当下加密世界里发生的一切充满热情。他们想吸引更多新人加入,但往往深陷于自己的加密圈子,以至于很难向圈外人解释清楚任何与加密相关的事情。
我觉得自己是弥合这一隔阂的合适人选,因为我了解加密货币的基本原理,但已有大约七年没有密切关注加密领域的动态了。
Base 本应成为桥梁
一年前,我收听了《Into the Bytecode》节目中对 Jesse Pollak 的访谈。他对 Coinbase 正在开发的一项名为 Base 的新技术感到非常兴奋。
Base 本应吸引那些刚接触加密货币的开发者,让他们能够轻松地在这个生态中开始构建。
我开始探索 Base,却发现它和其他大多数加密货币项目一样,存在同样的语言壁垒。我觉得官方文档很难读懂,而且似乎默认读者对以太坊区块链有很深的理解。
Jesse Pollak 曾几 次回应我的反馈,称这有助于他理解圈外人的视角,但随后他依然如故,所以我也失去了继续给他反馈的兴趣。
我又被召唤了
这周,Steve Simkins 在 Twitter 上 @了我,分享了他制作的一个 Base 入门教程:
我打算再给 Base 一次机会,从非圈内人的角度谈谈它的宣传文案给人的观感。
Hello Base 值得肯定的地方
提供了清晰的路径
官方 Base 文档的“入门”部分一上来就给新开发者抛出一座令人眼花缭乱的路径迷宫。
Hello Base 则为读者提供了一条从头到尾清晰的流程。读者不必在多条学习路径中纠结该先学什么。只需沿着单一主线走,就省去了选择学习路径的复杂性。
在浏览器中即可完成完整教程
Hello Base 在简化 hello world 示例方面做得很好。读者无需安装任何工具,也不用学习复杂的技术栈,直接在浏览器中就能体验所有内容。
解释了术语
我对官方 Base 入门文档的一个批评是,它随意使用了大量会让新人困惑的行话。
Hello Base 很好地识别出了新人看不懂的概念,并在一开始就加以解释。它简明扼要地说明了 Base 试图在加密货币生态中解决的问题。
我认为 Hello Base 可以改进的地方
更早呈现价值
我觉得 Hello Base 和其他很多 Base 文档一样,都默认读者已经对 Base 充满热情。
现实是,99% 的读者根本不在乎 Base,如果你不能在几秒钟内给出一个让人留下的充分理由,他们就会直接关掉标签页。
第一段就应该向读者说明,为什么他们应该关心 Base,以及为什么要继续读下去。
以下是目前的第一段:
如果你是一名开发者,从未接触过区块链或对此知之甚少,那么你来对地方了。只需短短几分钟,你就能了解基础知识,并看到如何在 Base 上开始构建——Base 是一个旨在让下一代开发者上链的区块链。
如果我是一名非区块链开发者,读到这段话会觉得 Base 能给我带来什么?为什么我要学 Base 而不是其他区块链技术?为什么我要学 Base 而不是使用 web2 技术?
把 Hello Base 的开头和 Ruby on Rails 的介绍对比一下:
化繁为简,驾驭现代 Web 应用的复杂性。
先学够用的知识快速起步,然后在实践中不断进阶。Ruby on Rails 能带你从 HELLO WORLD 一路走到 IPO。
Rails 的宣传语很有吸引力。它告诉你,它能让你轻松上手,而且同一套工具可以支撑你实现大规模扩展。
我希望看到 Base 的介绍能在开头就回答这个问题:
- 在 Base 上,我今天能做到哪些用其他任何技术都做不到的事?
Jesse Pollak 曾举过一些可以在 Base 上构建的应用示例,但在我看来毫无吸引力。用它来做身份验证或支付都不是最简单的方式,所以我们不该假装它是。
如果我是一名 web2 开发者,为什么要选择在 Base 上构建,而不是其他任何现有的技术栈?
Hello Base 不必证明自己适合所有人。即使它现在还很小众也没关系(例如,对于无法使用传统银行服务的人来说,它是一种收款方式),但总得有一个有吸引力的用例来吸引人。
精简到有趣的部分
我希望教程能马上带读者体验一些有趣的东西。我理解 Hello Base 想先讲解基础知识,但这些应该放在让读者看到一些酷炫效果之后。
如果我看 Python 教程,它不会先从有类型与无类型语言的历史讲起,再大谈内存安全的好处。它会直接教我如何打印“hello world”。
“hello, world!”之所以成为经典的编程入门示例,是因为它就出现在 Kerninghan 和 Ritchie 合著的《The C Programming Language》(K&R)第 1 章第 1 页。当时其他编程书籍都是从变量和类型等基础概念讲起,而 K&R 则直接给出了一个可运行的示例。
能不能不止于 hello world?
和上面几点相关,我经常看到 Base / Ethereum 的示例,只是在用更复杂的方式去做那些用 web2 技术本来就能做的事。
也许第一个例子只能这样,但我们能不能展示一些更酷、更能体现 Base 独特优势的东西?
如果读者本身对“为了上链而把数据存到区块链上”并不兴奋,那么在 Base 上有什么让人兴奋、且用 web2 技术很难或根本无法轻松实现的事呢?
我能不能把内容设为付费墙,而不必被 Gumroad 抽成 13%?我能不能为粉丝提供一种简单的按月捐助方式,而不必经过 Patreon 的审核?
尽量减少行话
尽管 Hello Base 已经解释了大部分术语,但仍有不少概念并未真正定义(例如“gas”、“optimistic rollups”)。
但即便把所有术语都定义清楚,读者也无法通过快速浏览来把握教程的主题,因为读到一半时,内容基本上已经变成了另一种语言。
这是教程进行到约 30% 时的一段摘录。我把非加密开发者会感到陌生的词语加粗了:
这些 rollups 的另一个巨大优势是它们保持 EVM 兼容,这意味着你为 Ethereum 编写的代码可以无需任何额外工作就部署到 L2 上。
我们真的需要这些解释吗?如果我是在跟着教程操作,我只想看到技术实际跑起来。我不需要了解历史。对于必须理解的概念,给一个简化的说明就够了。
坦诚 Base 的挑战
我对 Base 宣传话术最大的不满之一,就是他们不断重复这样的口号:“这是开发者构建新型 Web 应用最简单的方式!它是无需许可的,任何人在任何地方都能做!”
然后你真正动手去构建时,他们又会说:“哦,对了,你需要一个 Coinbase 账户*,Coinbase 还得对你进行全方位的身份验证。还有,除非你用一些别扭的变通办法,否则你的应用无法存储超过几 KB 的持久化数据。而且,部署之后你永远无法再修改应用,除非也用上那些别扭的变通办法。”
* 我知道使用 Base 其实并不一定需要 Coinbase 账户,但所有教程都默认走这条路径,而没有提供其他选择。
Base 目前还有一些粗糙之处,让上手变得困难。我认为教程应该坦诚地说明这些问题,而不是让开发者做到一半才感到意外,或假装这些痛点不存在:
- 即使只是想体验一下 Base,也得花钱。
- 把钱弄到链上很麻烦(即便在测试网上也是如此,因为测试网的水龙头会让你费尽周折)。
- 你无法像在 web2 中那样随意修改应用。
- 你无法像在 web2 中那样简单地存储数据。
- 似乎仅仅为了做最基本的开发,就得和一堆零散的角色打交道(OnChainKit、Hardhat、Coinbase、Solidity)。
- 这也许并不准确,但这是我目前浅尝辄止后的直观感受。
摆脱对 Coinbase 的依赖
我相信一定有非用 Coinbase 不可的好理由,但如果读者必须创建一个 Coinbase 钱包,整个教程的体验就会大打折扣。
有段时间我甚至抗拒去尝试这个教程,因为我以为需要完成真正的 Coinbase 验证(几年前 Coinbase 曾因莫名其妙的原因封了我的账户)。
后来发现只需用 passkey 就能创建钱包,我才松了口气,但这一点或许可以说得更清楚些,以免读者以为必须走完整套账户注册流程。
不过我更希望这种摩擦能被彻底消除。比起为了向 Base 测试网发布一个“hello world”智能合约而让我费尽周折,我宁愿要一个无摩擦、甚至是“假”的教程(即并不真正发布到区块链上)。
mess with dns(作者 Julia Evans)就是一个很好的例子,它虽然需要复杂的底层设施(DNS 服务器),但作者把复杂的部分都抽象掉了,让读者可以在单个网页应用内完成所有操作。
在 Firefox 上测试一下
我跟着教程一直做到“Read Contract”这一步,然后就在“Read Contract”这里卡住了,无法继续。我使用的是 Win10 上的 Firefox:
随机一篇博客
评论
登录后参与讨论