首页 > 资讯 > 关键词  > JavaScript最新资讯  > 正文

JavaScript是Web的汇编语言(一):语义Web已死!

2011-07-21 09:22 · 稿源:为之漫笔

有些人认为“JavaScript是Web的汇编语言”完全是精神病说的话。为此,我询问了几位JavaScript权威,比如Brendan Eich(JavaScript之父)、Douglas Crockford(JSON之父),还有Mike Shaver(Mozilla技术副总裁)。

昨天我跟Erik Meijer聊天,他说:

JavaScript就是一个汇编语言。JavaScript加上生成的HTML就像是.NET汇编一样。浏览器可以执行这些代码,但没人真的关心里面到底写的是什么。

——Erik Meijer

怎么会说起这件事儿呢?当时我正在试用Google+,就跟上大多数让我印象深刻的网站一样,我立即就查看它的源代码。不看不要紧,一看吓一跳:

咱就将就说吧,我看到了1300行代码,密密麻麻的,大约90KB。上面图片显示的只是最前面的一小部分,基本上都是“瘦身后”的JavaScript代码。再往下看,页面中间呢,全都是像下面这样的span、div以及生成的类和id:

我勒个去,满篇都是GUID(Globally Unique Identifier,全局唯一标识符)。

话又说回来了,https://msn.com、https://www.bing.com、https://.www.facebook.com,全都这样啊。就连https://www.twitter.com也都开始有点“瘦身”的迹象了。所有大点的网站好像都丝毫不在乎什么标记之美。这是为什么呢?

这样有效率啊,性能高啊。Google很多最出色的网站背后都依赖GWT呢。在这种情况下,要是这一类网站的里头和外头全都一样漂亮,你反而会觉得不可思议了。

不能不说这可真有点讽刺的意味。曾几何时,ASP.NET的开发人员对ViewState可是怨声载道啊。“简直太笨了”的意思就是“我看不懂它都干什么了。”ViewState曾经(现在也)是一项让Web开发效率提高很多倍的技术。它跟Google Web Toolkit(GWT)不一样,但GWT与WebForms的出发点也并非完全没有相似之处。看看GWT网站自己怎么说:

Google Web Toolkit(GWT)是一个开发工具包,用于构建和优化基于浏览器的复杂应用。GWT的目标是提高高性能Web应用开发的效率,而且无需开发人员熟悉浏览器的各种怪癖,以及XMLHttpRequest,还有JavaScript。

这个出发点可真是值得赞美,不对?难道不可以这样说(抱歉,开个玩笑而已):

“ASP.NET WebForms”是一个开发工具包,用于构建和优化基于浏览器的复杂应用。它的目标是提高高性能Web应用开发的效率,而且无需开发人员熟悉浏览器的各种怪癖,以及XMLHttpRequest,还有JavaScript。

本文的目的不是想夸奖WebForms,也不是给WebForms正名。WebForms对于某些应用是不二之选,正如GWT对其他一些应用那样。我真正想说的是,使用服务器端的工具包,没有办法像使用jQuery写出清晰的JavaScript,或者使用Razor或HAML写出清晰、清楚的标记一样,给Web开发带来真正的快乐。归根结底,其实就是你选择的抽象级别的问题。

所谓的语义标记在这种情况下仍然是被隐藏的,而诸如https://schema.org之类的站点也仍然非常重要,只不过可别指望你能在心仪的站点里看到缩进得像俳句一样整齐的源代码。

大家知道,精简和压缩属于正交优化。而我要说的是,一点也不在乎标记和脚本发送到客户端之后是否美观,确实太草率了。假如谁都不在乎发送到浏览器的标记,只在乎结果,那谁的标记和JS就那么不值钱啊,谁还愿意主动公开自己的源代码呢?反正,网站不是运行得挺好嘛,谁还在乎其他的?

现在我要给亲爱的读者提个问题,你觉得自己为什么那么在乎点击“查看网页源代码”之后的结果呢?难道HTML5和JavaScript是Web的新汇编语言不成?

(更新)声明一下:

当然,这个比喻不一定准确。JavaScript代码无论从外观到行为,肯定不像ASM。但作为一个比喻,至少可以说明:

JavaScript无所不在;

它速度快而且越来越快;

JavaScript酷似低级的Web编程语言;

它可以通过手工编写,也可以从另一种语言编译而来。

作为开发人员或者设计人员,如果有工具提供了你需要的控制和你需要的结果,你最关心哪一个?我认为Rails、ASP.NET,甚至GWT,都没有100%做到这一点。它们都有自己的问题,但我认为将来的Web不会再专注于清晰的标记,而是夺目的用户体验和语言、工具的天下,开发人员会很享受,效率也会更高。

亲爱的读者,你愿意HTML和JavaScript再多抽象一点吗?还是希望它少抽象一点?

(再更新)为了让大家明白,我得再说一遍。本文讨论了两个独立的问题。一个当然就是源代码经过了精简和通常的混淆。但这只是第一个问题。真正的问题在于,JavaScript已经成了其他多种语言的目标语言。GWT是一个用JAVA来写Web应用的框架,它产生的字节码是“JavaScript”。GWT为原来天然的语言(HTML+JS)选择了一个设计好的高级语言,并将整个浏览器当成了一个VM。好,问题来了:我们是在写汇编呢,还是在写某种更高级点的代码?而且,我刚知道Google+是用Closure来写的,但这不影响前面的问题。

(来源:为之漫笔 原文:hanselman.com

举报

  • 相关推荐
  • 大家在看
  • Amplifiles:转化PDF为动态体验

    Amplifiles可以将PDF转化为动态体验,为销售和营销专业人员提供AI语音解说、自定义CTA、CRM集成等功能,提升销售效果。详细定价和功能列表请访问官网了解。

  • ImageAI.QA:100%免费AI图片描述生成器

    AI图片描述生成器是一个能够使用人工智能自动生成图片描述的工具。它可以帮助艺术家、设计师等创作者揭示他们作品背后的隐藏细节、情感和含义。该工具提供全新的视角,让人们可以更深入地理解和欣赏艺术作品。AI图片描述生成器是一个早期测试版本,部分功能可能还不稳定。如果您在使用过程中遇到任何问题或有任何建议,请随时与我们联系。您的反馈对我们非常重要,将帮助我们改进该工具。

  • SpeedProof:快速修改、检查语法、翻译、解释、总结

    SpeedProof: One-Click AI Text Edit是一个一键式的AI文本编辑插件,可以快速修改、检查语法、翻译、解释和总结所选文本。只需选中文本,点击SpeedProof插件图标,选择所需操作即可使用ChatGPT进行修改。支持检查语法、总结、翻译、重新表达等功能,可在任何语气下进行操作。

  • AI Detector:检测AI生成的内容

    AI Detector是一个在线工具,使用先进的算法和机器学习来检测文本是否由AI生成。它可以分析写作风格和句子结构,判断内容是否由ChatGPT、GPT 4、Bard、Claude或人类创作。您可以免费使用AI Detector,每次最多检测1000个字,并获得95%的准确率。

  • WitChat:AI支持的最佳客户服务系统

    WitChat是一款具有AI集成的客户服务系统。我们的软件通过文本、手机、电话、电子邮件、聊天和社交媒体等多种渠道增强客户互动体验。

  • editoReview.com:基于AI的论文和应用界面的同行评审

    editoReview是一个为学术编辑和营销代理提供咨询服务的平台,旨在评估研究文章或服务插件API在AI界面上的可搜索性和可用性。用户可以通过AI聊天记录或模板文档开始新的评审,引用参考文献或应用程序以与作者或开发者安排会议,支付咨询费用,并发布可共享的评审记录。editoReview通过智能搜索和智能使用的方式帮助编辑和营销人员明确论文或服务插件在界面上的可行性,并在arXiv文献和Zapier市场的其他论文和应用上进行了整合。

  • Draph Art:AI生成的背景去除和高质量产品图片

    Draph Art是一款能够自动生成背景去除、道具、光照、阴影和模特等所有元素的AI产品。无需专业技术,任何人都可以制作出吸引人的产品图片。通过Draph Art,您可以使用相关的产品照片来吸引顾客的注意力。从一张原始照片到多种主题的产品照片,只需告诉我们您想要的主题,AI将分析上传照片的背景氛围和颜色,然后为所选择的主题生成多张照片。

  • 百度文库-智能漫画·智能画本:一站式智能漫画创作工具,从创意到作品一键实现

    百度文库推出的智能漫画创作工具,具有以下优势:1.一站式创作流程,从创意到成品无缝衔接。2.多种漫画风格可选,如韩系卡通、浪漫厚涂等。3.人物形象、表情、场景等描绘精细生动,媲美漫画家水准。4.内置智能编辑器,可对细节进行精修。5.无需专业绘画技能,有创意即可创作。6.目前处于公测阶段,可关注公众号预约体验。

  • 星辰语义大模型-TeleChat:星辰语义大模型,智能对话助手

    TeleChat是由中电信人工智能科技有限公司研发的星辰语义大模型,具备强大的对话生成能力,支持多轮对话,适用于多种场景的智能问答和内容生成。模型经过大量高质量中英文语料训练,具备优秀的通用问答、知识类、代码类、数学类问答能力。

  • Live2D Virtual Human for Chatting based on Unity:基于Unity的Live2D虚拟人实时聊天系统

    AI女友是一款基于Unity开发的Live2D虚拟人实时聊天系统,它利用Live2D技术提供动态的虚拟人形象,结合Unity的实时渲染功能,实现与用户的动态交互和聊天。主要功能包括Live2D虚拟人形象集成、实时聊天、图像处理和人脸检测,支持高清分辨率显示,并且可自定义和扩展。

  • School AI:个性化AI学习助手,提升学习效率

    School AI是一个专为K12学生设计的AI平台,提供个性化学习体验和即时反馈,支持多语言环境,帮助学生以母语进行互动,增强教育的普遍性和包容性。平台对教师免费开放,内置监控和控制工具,帮助教育工作者设计更好、更个性化的课堂体验。

  • MetaAI:使用 Meta AI 助手完成任务、创建免费 AI 生成图像和获取任何问题的答案

    Meta AI 是一款功能强大的 AI 助理,建立在 Meta 的先进 AI 技术之上。它可以帮助您完成各种任务,如创建备忘单、润色电子邮件写作、回答问题等。同时它还具有图像生成功能,可以根据您的文字描述生成相应的图像。Meta AI 免费使用,致力于为用户提供高效、智能、多功能的 AI 体验。

  • Meta Llama 3:Meta 新一代开源大型语言模型,性能卓越

    Meta Llama 3是Meta公司推出的新一代开源大型语言模型,性能卓越,在多项行业基准测试中表现出色。它可支持广泛的使用场景,包括改善推理能力等新功能。该模型将在未来支持多语种、多模态,提供更长的上下文窗口和整体性能提升。Llama 3秉承开放理念,将被部署在主要云服务、托管和硬件平台上,供开发者和社区使用。

  • HuggingChat App:连接先进AI与用户的革命性平台

    HuggingChat是一款iOS应用程序,旨在促进用户与多家提供商(如Mistral AI、Meta和Google)的多个顶尖大型语言模型之间的无缝沟通。它可以满足多种场景需求:激发创意,提供专家指导,促进教育与自我提升,提高工作效率,快速响应日常问题等。作为变革性AI技术的先锋采用者,HuggingChat将让您体验与先进大语言模型对话的无限可能。

  • SpeedLegal:个人AI合同谈判助手

    SpeedLegal是一个利用机器学习技术(特别是深度学习、大型语言模型和通用AI)来突出合同中的条款和关键风险的技术初创公司。我们分析您的文档并发送给您一个简化的报告,以便您在签名前做出更明智的决策。

  • FCK.School:AI写作工具

    FCK.School是一个为学生提供AI写作工具的在线平台。它可以帮助学生改善写作技巧,提升学术表现。通过FCK.School的AI驱动工具,学生可以进行文本改写、文摘、语法纠错等操作,还能生成各种写作素材,如标题、论点、大纲等。FCK.School提供免费工具以供试用,同时还有付费订阅计划。

  • CompliantChatGPT:AI医疗助手,HIPAA合规

    CompliantChatGPT是一款专为医疗保健行业设计的AI助手,它通过HIPAA合规的方式,帮助医疗工作者安全、高效地处理医疗相关任务。产品具备以下特点: - 保护患者数据安全,通过令牌化技术确保个人健康信息(PHI)的安全。 - 提供个性化的医疗模式,包括血液分析、PHI匿名化、诊断和治疗规划等。 - 用户友好的界面设计,支持语音到文本的笔记功能,便于记录和回顾。 - 定价策略灵活,提供免费试用,以及多种付费套餐选择。 - 适用于医疗提供者、专业人士、医疗机构、研究中心和健康科技初创企业。

  • Healax:AI驱动的心理健康解决方案

    Healax是一款创新的AI驱动的心理健康解决方案,专为学生设计,帮助他们主动应对日常生活中的压力和焦虑。该产品通过建立学生、行政人员和提供者之间的信任沟通渠道,提供定制化活动和内容,以促进更全面的教育体验。

  • Snowflake Arctic Embed:开源的先进文本嵌入模型

    Snowflake Arctic Embed是一系列基于Apache 2.0许可开源的文本嵌入模型,专为检索用例设计。这些模型在Massive Text Embedding Benchmark (MTEB)检索基准测试中提供了领先的检索性能,为组织在结合专有数据集与大型语言模型(LLMs)进行检索增强生成(RAG)或语义搜索服务时提供了新的优势。这些模型的尺寸从超小型(xs)到大型(l),具有不同的上下文窗口和参数数量,以满足不同企业的延迟、成本和检索性能需求。

  • DuerOS X:全球首个AI原生操作系统

    DuerOS X是小度基于百度文心大模型推出的全球首个AI原生操作系统。它彻底颠覆了传统的人适应系统的模式,实现了端到端连接用户的意图与任务,极大地拓展了操作系统的边界。DuerOS X全面应用了文心大模型,通过模型路由架构,能够灵活调度不同的文心模型去解决不同难度的问题,更高效、更精准、更经济。个性化长短记忆的存储、提取和理解能力,使得DuerOS X能够更清楚地记住历史内容与用户个性化偏好。此外,多模态感知技术的应用,让DuerOS X产生更丰富的感知力,无论是通过语音、文字还是表情与小度沟通,都能准确地理解用户的意图,并给出恰当的回应。

今日大家都在搜的词: