译者 | 卢鑫旺
在过去的几个月里,我们听到了很多关于Web3的消息,然而,关于它是什么以及我们如何操作它,仍然有一个谜。最近,加密行业的市场低迷导致了用户和开发人员的进一步怀疑,但我们必须将Web3的基础设施与加密市场可能爆发的波动性分开。通过专注于构建和改进Web3的基础,我们将开始发掘这项技术的真正潜力。要做到这一点,我们首先需要鼓励更多的开发人员参与这个新的网络时代。JavaScript是实现这一点的关键。
如果我们回想一下我们所知的互联网诞生之初,我们当时面临着和现在一样的怀疑。然而,在那些既相信这项技术,又有工具在手的开发者的帮助下,我们已经看到了Web2的广泛采用。但为什么就止步于此呢?为什么不继续与不断扩展的新兴技术一起发展呢?
不管你是否相信,构建Web2的过程与Web3的过程极其相似。在早期阶段,Web2基础设施依赖于开发人员学习多种编码语言。特别是JavaScript,它成为了万维网最广泛使用的编程语言和核心技术之一,开发人员利用这些技术为用户构建健壮和吸引人的网站。然而,在早期阶段,开发人员需要运行一个HTTP服务(Apache server /Apache tomcat)来运行用Java/PHP等编写的服务器代码,因此,高效扩展非常困难。
当时,由于Node.js易于运行和横向扩展的架构特点而越来越受到开发者们的欢迎。这种事件驱动的异步架构非常适合处理HTTP服务器这种有大量IO操作的场景。考虑到这一点,Node.js(非常适合异步编程的服务器端JavaScript)的引入,允许开发人员轻松编写web服务器,并使这些服务器能够适应大规模地工作。
JavaScript是一种通用的编码语言,它统一了web开发的多个方面,使开发人员更容易扩展和改进这个过程,反过来,用户也可以更无缝地找到相关的解决方案。如果我们将Web2的早期阶段与Web3的早期阶段进行比较,JavaScript不仅有能力塑造互联网的未来,而且有能力让主流开发者对这个新网站的外观发表意见。允许开发人员使用JavaScript构建Web3,这为该领域带来了一系列全新的想法。
根据SlashData最近的一项研究,JavaScript作为编程语言的主导地位得到了充分的证明,开发人员超过1380万人。为了吸引这些开发人员到区块链,我们需要授权他们探索技术,并输入他们对行业应该如何发展的想法——同时利用他们的母语编码语言。
虽然有很多原因导致开发人员对参与Web3犹豫不决,但值得注意的是,在Web开发的早期阶段也出现了同样的犹豫。2001年的互联网泡沫破裂导致人们对互联网的看法发生了变化,许多人认为这种新技术被过度炒作,而且不可靠。这向我们表明,对于所有技术革命来说,市场崩溃和洗牌似乎都是常见的现象。
这些市场爆发或行业低迷为我们提供了一个绝佳的机会,让我们能够专注于建设。构建健壮的Web3基础设施和颠覆性的、去中心化的应用程序,使用户能够控制自己的在线体验,是主流采用这种技术的关键。
Web3仍处于起步阶段,它所能实现的目标还没有实现。建立新的创新,我们可以共同塑造Web3,以封装我们今天所运营的互联网的所有方面,以及去中心化和隐私的额外好处。在构建了我们今天所知道的互联网之后,主流开发人员了解用户对在线体验的期望是什么。通过允许这些开发人员与区块链开发人员一起参与Web3的创建,我们可以为每个人建立一个互联网。
我们一直努力将当前的Web迭代构建为一个全球连接的工具,以丰富用户的生活,并在政治和经济上赋予他们权力,然而,我们还没有完全做到这一点。Web3让用户在他们最关心的协议如何运行方面有了发言权,使他们能够在推进去中心化网络的愿景方面发挥积极作用。它还让用户重新拥有自己数据的权力,可以根据自己的意愿拥有、出售或出租,并消除了少数科技巨头利用私人数据中饱私囊的能力。
实现Web3的这些价值不会一蹴而就。我们需要时间和艰苦的工作才能达到人们在过去几十年里已经习惯了的互联网性能水平。然而,随着一种广为人知的编码语言(如JavaScript)的加入,拥有各种技能的开发人员可以一起工作,使其成为迄今为止最伟大的互联网迭代。一个不只是为加密爱好者建造的互联网,而是为外行建造的互联网——为你建造的互联网。
原文链接:https://dzone.com/articles/web2-was-built-using-javascript-and-web3-should-be
卢鑫旺,51CTO社区编辑,编程语言爱好者,对数据库,架构,云原生有浓厚兴趣。
在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo
我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我们有以下(以及更多)系统,我们将数据从一个应用推送/拉取到另一个:托管CRM(InsideSales.com)Asterisk电话系统(内部)横幅广告系统(openx,我们托管)潜在客户生成系统(自行开发)电子商务商店(spree,我们托管)工作板(本土)一些工作网站抓取+入站工作提要电子邮件传送系统(如Mailchimp,自主开发)事件管理系统(如eventbrite,自主开发)仪表板系统(大量图表和
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan
在我的mac上安装几个东西时遇到这个问题,我认为这个问题来自将我的豹子升级到雪豹。我认为这个问题也与macports有关。/usr/local/lib/libz.1.dylib,filewasbuiltfori386whichisnotthearchitecturebeinglinked(x86_64)有什么想法吗?更新更具体地说,这发生在安装nokogirigem时日志看起来像:xslt_stylesheet.c:127:warning:passingargument1of‘Nokogiri_wrap_xml_document’withdifferentwidthduetoproto
我最近从C#转向了Ruby,我发现自己无法制作可折叠的标记代码区域。我只是想到做这种事情应该没问题:classExamplebegin#agroupofmethodsdefmethod1..enddefmethod2..endenddefmethod3..endend...但是这样做真的可以吗?method1和method2最终与method3是同一种东西吗?还是有一些我还没有见过的用于执行此操作的Ruby惯用语? 最佳答案 正如其他人所说,这不会改变方法定义。但是,如果要标记方法组,为什么不使用Ruby语义来标记它们呢?您可以使用
Ruby语言是否可以用于创建全新的移动操作系统或桌面操作系统,即是否可以用于系统编程? 最佳答案 嗯,现在有一些操作系统使用比C更高级的语言。基本上,ruby解释器本身需要用一些低级的东西来编写,并且需要一些引导加载代码将功能齐全的ruby解释器作为独立内核加载到内存中。一旦ruby解释器被引导并以内核模式(或innerrings之一)运行,就没有什么可以阻止您在其上构建整个操作系统。不幸的是,它可能会很慢。每个操作系统功能的垃圾收集可能会相当引人注目。ruby解释器将负责任务调度和网络堆栈等基本事情,使用垃圾收集框架会大大
这个问题在这里已经有了答案:Unabletoinstallgem-Failedtobuildgemnativeextension-cannotloadsuchfile--mkmf(LoadError)(17个答案)关闭9年前。嘿,我正在尝试在一台新的ubuntu机器上安装rails。我安装了ruby和rvm,但出现“无法构建gemnative扩展”错误。这是什么意思?$sudogeminstallrails-v3.2.9(没有sudo表示我没有权限)然后它会输出很多“获取”命令,最终会出现这个错误:Buildingnativeextensions.Thiscouldtakeawhi