问题

如何看待 Google Docs 将从 HTML 迁移到基于 Canvas 渲染?

回答
Google Docs 的迁移方案,从原先依赖于浏览器原生 HTML 渲染,转向使用 Canvas 进行页面渲染,这绝对是一个牵动行业神经的大动作。与其说是简单的技术升级,不如说是对“在线文档编辑”这一核心体验的一次重新审视和重塑。在我看来,这其中的考量和潜在影响,值得我们深入剖析。

首先,我们得明白,Google Docs 长期以来都是基于 HTML 的模型工作的。你可以把它想象成一个巨大的、由各种 HTML 标签堆叠起来的“网页”。段落是 `

`,标题是 `

`,表格是 ``,图片是 ``,格式(字体、颜色、大小)则是通过 CSS 来控制的。这种方式有其天然的优势:

兼容性好: 浏览器原生支持 HTML 和 CSS,这意味着它在各种设备和浏览器上的表现通常都很一致,或者说,有成熟的规范去约束这种一致性。
可访问性强: HTML 的结构化特性,以及对屏幕阅读器等辅助技术的支持,使得残障人士能够更方便地使用文档。搜索引擎也能更好地理解文档内容。
SEO 友好: 对于需要被搜索引擎索引的内容,HTML 是天然的优势。
成熟的技术生态: 大量的 JavaScript 库和工具都是围绕 DOM(文档对象模型)和 HTML 结构设计的。

那么,为什么 Google 要考虑放弃这样一个成熟的体系,转向 Canvas 呢?这背后一定是对现有模式的某些痛点感到了无法忍受,或者看到了 Canvas 带来的巨大潜力。我猜想,主要的原因可能集中在以下几个方面:

1. 渲染复杂性和性能瓶颈:

想象一下一个格式极其复杂的 Google Doc:可能包含大量的图片、图表、特殊字符、复杂的排版、页眉页脚、评论、修订痕迹等等。当文档变得越来越长,元素越来越多,尤其是涉及到复杂的嵌套和交互时,浏览器原生 DOM 的处理能力就可能出现瓶颈。

DOM 树的深度和广度: 随着文档复杂度的提升,DOM 树会变得极其庞大,每一次的修改(比如输入一个字符、调整一个格式)都可能触发大量的 DOM 操作,包括节点的创建、删除、修改属性等。这些操作在浏览器内部需要经过一系列的计算和重排(reflow)和重绘(repaint),当这些操作频繁发生时,就会导致明显的卡顿,尤其是在低配置设备上。
样式计算的开销: 对于每一个元素,浏览器都需要计算最终的样式,这涉及到继承、层叠、应用等一系列过程。当元素数量和样式规则增多时,这个计算过程也会消耗不少资源。
复杂布局的挑战: 像 Google Docs 这种需要精确控制每一个字符位置、行高、段落缩进的场景,传统 HTML 的布局模型(Flexbox, Grid)虽然强大,但在处理非常精细、非常大规模的排版时,仍然存在一些灵活性上的限制,或者说需要非常精巧的 CSS 组合才能实现,而这种组合本身就可能增加维护和性能的难度。

Canvas 呢?它更像是一个“像素画布”。你直接在上面“画”东西,无论是文本还是图形。这种方式绕过了复杂的 DOM 结构和浏览器原生的渲染管线。你可以直接控制每一个像素的位置和颜色。这意味着:

更直接的控制: 开发者可以更精细地控制文本的渲染方式,包括字体、字号、行距、字间距、甚至连每个字符的倾斜角度、描边等等,实现近乎像素级的精确排版。
性能提升: 当你需要渲染大量相同或相似的元素时,Canvas 可以通过缓存、批量绘制等技术来显著提升性能。例如,一次性将整个页面“绘制”到内存中的一个离屏 Canvas,然后快速显示。修改时,也只需要重新绘制受影响的部分。这对于 Google Docs 这种需要同时显示大量文本和格式的场景,有极大的想象空间。
跨平台一致性: Canvas 本身是标准化的图形 API,理论上可以在不同浏览器和平台上提供高度一致的渲染效果,减少因浏览器兼容性问题导致的显示差异。

2. 实现复杂交互和视觉效果:

除了基础的文本渲染,现代文档编辑器越来越需要支持丰富的交互和视觉效果。比如:

实时协作的光标和高亮: 在多人编辑时,你需要实时显示其他用户的光标位置、他们正在编辑的文本高亮等。如果这些都是通过 DOM 来模拟,可能会非常消耗性能,特别是当多个用户同时在同一个区域编辑时。Canvas 可以更高效地绘制这些“覆盖层”。
图表和嵌入式对象: 文档中可能包含复杂的图表、流程图,甚至是嵌入式的其他应用组件。在 Canvas 上绘制这些可以更加灵活,并且与文本的融合可能更自然。
平滑的页面过渡和动画: 未来如果 Google Docs 想加入更酷炫的页面切换效果,Canvas 会是比 DOM 更适合的载体。

3. 摆脱浏览器渲染限制,构建更统一的应用体验:

Google Docs 已经不仅仅是一个简单的文本编辑器,它是一个功能强大的协作平台。通过转向 Canvas,Google 可以在很大程度上“掌控”整个渲染过程,而不是依赖于浏览器底层渲染引擎的实现细节。这能带来什么?

更自由的 UI 设计: 开发者可以完全按照自己的设计来绘制界面,不受 HTML/CSS 语义和布局的限制。
统一的跨平台渲染: 无论是 Web 版、桌面版(Electron)还是未来的其他客户端,都可以采用同一套 Canvas 渲染逻辑,确保视觉和交互体验的一致性。这对于 Google 这种需要维护多端产品线的公司来说,是巨大的吸引力。
更好的离线体验(潜在): 如果将来想进一步强化离线功能,Canvas 的渲染模式可能会更容易与本地渲染引擎结合。

潜在的挑战和代价:

当然,这种迁移并非没有代价。从 HTML 转向 Canvas,也意味着需要克服一些新的挑战:

可访问性(Accessibility): 这是最突出的问题。HTML 的结构清晰,易于屏幕阅读器解析。Canvas 只是像素数据,你需要额外的工作来为屏幕阅读器提供有意义的语义信息。这需要一套非常完善的 ARIA 标注和逻辑来弥补。Google 在这方面应该已经有所规划,但无疑是一个巨大的工程。
SEO: 搜索引擎仍然依赖于解析 HTML 内容来理解网页。如果你的文档内容都画在 Canvas 上,搜索引擎将无法直接“看到”其中的文本。这对于公开分享的文档可能不是问题,但对于希望被搜索引擎索引的博客文章或公开信息,就需要通过其他方式(例如,为搜索引擎提供一个文本版本的快照)来解决。
开发者工具和调试: 在浏览器中调试 HTML/CSS 是非常成熟的体系,有强大的开发者工具支持。调试 Canvas 则需要不同的思路和工具,可能会更复杂一些。
字体渲染: 浏览器在字体渲染方面已经做得非常出色,考虑到了字体的反锯齿、hinting 等细节。在 Canvas 上实现同样高质量、同样一致的字体渲染,需要大量的底层工作。
复制粘贴和文本选择: 用户习惯了在 Google Docs 中选中文字、复制粘贴。在 Canvas 上实现同样流畅、准确的文本选择和复制粘贴,需要仔细设计事件处理和文本捕获逻辑。

总的来说,我对 Google Docs 的这个迁移方案持非常谨慎乐观的态度。

谨慎在于,我知道这意味着巨大的技术投入和对现有用户体验的深刻改变。可访问性和 SEO 是需要被认真对待的挑战。但乐观在于,我相信 Google 这样做,必然是经过了深思熟虑,并且看到了巨大的技术红利。如果能够成功地将 Canvas 的性能优势与保持良好的可访问性和用户体验结合起来,那么 Google Docs 的下一代产品将可能在以下方面实现飞跃:

更流畅、更灵敏的编辑体验: 即使处理超长文档,也能保持响应迅速。
更丰富的排版和视觉效果: 能够实现更精美的布局和更具表现力的视觉元素。
更一致的跨平台体验: 无论在哪里使用,都能看到同样的效果。
为未来的创新奠定基础: 更有可能支持更高级的交互和更复杂的文档类型。

这是一个标志性的转变,它不仅关乎 Google Docs 的技术演进,也在某种程度上预示着未来 Web 应用,特别是复杂内容编辑器的发展方向——当传统的 Web 标准在处理极致的性能和定制化需求时,底层图形渲染能力的介入可能会成为一条重要的路径。我们要密切关注 Google 在解决好可访问性等关键问题上的具体策略。

网友意见

user avatar

是不是要快进到整个前端用C++写,编译成WebAssembly,通信走WebSocket?后端技术栈做出的前端很多人都提过,但感觉都是做游戏、模拟器的,没听说拿Canvas自己画生产力软件的。

user avatar

Google Docs 这么做是必然选择,而且是所有号称要做「云端Office」在线文档的终极形态。

相关问题回答如下

  • Google Docs 会采用 canvas 是否标志着网页三剑客(HTML、CSS、JS)的没落?
  • Google Docs 之前的技术选型有什么问题?
  • Google Docs 会如何技术升级(瞎猜)?


1. Google Docs 会采用 canvas 是否标志着网页三剑客(HTML、CSS、JS)的没落?

肯定不是,采用 canvas 渲染取决于 Google Docs 的项目复杂度和特殊性,99.9999%的项目用网页三剑客无疑是更好的选择,文本处理器(Google Docs)有超高的一致性和性能要求,这些要求绝大多数应用根本不需要考虑,可惜,Google Docs 就是那 0.0001% 它是极其特殊的存在,而且我个人认为 Google Docs 并不会重新造一个类似于 flutter 的 UI 系统,而是重写「字体解析」「字体整形」「文本布局」「文字处理渲染引擎」等一系列相关的引擎,总之,Google Docs 用 canvas 干的事情,跟大家理解用 canvas 干的不是一回事。

2. Google Docs 之前的技术选型有什么问题?

Google Docs 2010 之前基于 contenteditable ,之后不基于 contenteditable 但仍基于DOM。

基于 contenteditable 的富文本编辑器会产生非常多的问题,已经是老生常谈了,下面这篇文章已经写得比较清楚了:

Google Docs 在 2010 年也解释了为什么抛弃 contenteditable

简单而言就是为了一致性、高级功能(标尺、脚注、分页)、协同编辑。

其实关于 contenteditable 的技术选型问题无需我多言,以上两篇文章足以解答。


我们重点谈抛弃了 contenteditable 之后为什么依然有问题?

Google Docs 已经说明了是为了「一致性」和「性能」考虑。

首先,我们解释一下在线文档的一致性是什么?

如果你的在线文档基于浏览器,那么必然会用到浏览器实现的特性,而各大浏览器实现的方式不同,呈现的效果不同,这就导致了不同浏览器编辑同一份文档会出现不一致,现在在线协同是这些软件的标榜功能之一,如果编辑的呈现效果不一致,那么何谈「协同编辑」?

实际上现代浏览器的一致性差异已经比较小了(相比于2010年 IE 还在大行其道的年代),所以大多数情况下一致性是可以接受的,但是依然有一些一致性问题困扰着开发者。

比如「语雀」基于浏览器实现了选取拖蓝,这就导致了不一致性,如果你在 Firefox 下双击选区会选择「一句文字」进行拖蓝:

语雀的Firefox双击选区

如果你在 Chrome 下进行双击选取拖蓝,它会拖蓝「一个词组」:

语雀的Chrome双击选区

归根到底是 Chrome 相比于 Firefox ,多进行了一步基于 CC-CEDICT 的分词操作,Chrome 会优先选择词组而不是句子:



当然你可以用各种方法把这些不一致性抹平,比如拖蓝选区的一致性问题也可以解决,那就是自己写一个相关的库替代浏览器自带的拖蓝选区功能,但是这就像一个无底洞,你不知道像浏览器这种庞然大物到底有多少不一致性,每一次更新都可能带来变化。

大家要记住,越多的依赖浏览器的能力,就越多的受到浏览器一致性问题的困扰

2010 年后 Google Docs 计算出文本的大小进行绝对定位排版,实现了自己全新的文本布局引擎,包括选区、光标、排版都进行了自研,似乎已经彻底摆脱了浏览器的控制,但是事实却不是这样。

现在的 Google Docs 的文本布局引擎是基于 「div+span+绝对定位」 的方式实现的,实际上并没有脱离 DOM,这就到了大量的操作依然依赖于浏览器的底层提供的能力。

双向文本(BIDI)

我们的现代汉字和实际上绝大多数文字的书写方式是自左向右的,但是也有不少例外,阿拉伯文、希伯来文的书写顺序是自右向左,而古代汉语、传统蒙语等是纵向排版的,这需要文本处理器可以识别不同的文字进行不同的处理。

Unicode 有相关的 BIDI 算法,而 Google Docs 选择了基于浏览器的能力,大家看看这段阿拉伯文, Google Docs 的处理方式,利用了 CSS 的属性,而并非自己实现。


同样的, CSS 基于浏览器提供的底层算法,苹果系统需要 CoreText 提供支持,而 Linux 下则是 :


幸好这个算法是有通用标准的,实现起来应该大差不差,如果没有通用解决方法,各个浏览器自己实现,那么不一致问题就会出现。


字体解析与渲染

我们提到了,Google Docs 的字体解析与渲染依然是基于浏览器的,看下图,直接 span + css 对文字进行了排版:

浏览器在不同平台依赖的底层库也不一致,比如 windows 下的 DirectWrite,Mac 下的 Core Text 等等。

我就存在一个可能由于解析+渲染导致的不一致问题。

比如在 Google Docs 下我一台 Mac Mini 的 Chrome 呈现是这样的(存在bug),注意那个笑脸表情,光标所在的位置直接显示在笑脸上面:

当我打开同一台电脑、同一个文档,唯一的不同就是用 Firefox 打开后,显示是正确的,不仅如此所有其他电脑任何浏览器都是正确的,唯独这一台 Mac mini 用 Chrome 打开是错误的:

这就是我这台 Mac Mini 特有的系统级 Bug 导致的问题,因为这台 Mac mini 是通过时间机器从旧 MBP 上迁移的,而这个问题同样出现在旧 MBP,而旧 MBP 重置系统后问题消失了,旧 MBP 重置系统后跟 Mac mini 系统版本号一致,Chrome版本号也一致,但是没问题。

这说明,由于 Google Docs 依赖的浏览器提供的底层能力(浏览器的能力部分来自于操作系统),导致了这种不可控的 Bug。


说完一致性问题,我们再看看「性能」问题,这个依然是由于依赖浏览器的 DOM 导致的,虽然 Google Docs 在我看来已经很快了,用一些低端笔记本打开也挺流畅的,可能 Google Docs 有更高的性能要求吧。


目前 Google Docs 依然是我们上面所说的依赖 DOM,那么 Google Docs 的文字处理区域的回流、重绘依然是依靠浏览器自带的能力,Google Docs 目前除了文本布局是由自己接管之外,还得依靠浏览器,虽然对于绝大多数人浏览器提供的能力已经很够用了(我就觉得挺够用的 ),但是如果自己彻底接管整个文字处理区域的布局、排版,那么优化的上限会很高(下限也会很低,取决于开发者水平)。

至于 Google Docs 会如何优化,我在下面有自己的猜测。

Google Docs 背后技术升级的猜想

说了 Google Docs 为什么要升级技术,我们可以大胆猜测下 Google Docs 会如何升级技术。


接管字体相关的一切工作

从字体解析一直到光栅化必须由 Google Docs 自己控制,而非浏览器控制。

字体解析:这需要一个字体解析器,兼容 TrueType 和 OpenType 标准 ,并实现标准中的一系列特性,类似于这种:

文本整形(text shaping engine):文本整形是将一串字符代码(例如Unicode代码点)转换为正确排列的字形序列的过程,这些字形序列可以呈现在屏幕上或最终输出形式以包含在文档中。

这篇文章说的很清楚,为什么这一步必不可少:

举个简单的例子,阿拉伯文的字母出现在上下文不同的位置有四种不同的变体。

如阿拉伯文的mīm,单独书写为:

‎三个连写(mmm,显示为词头,词中,词尾形)就变为 :

如果没有文本整形引擎,这一步无法实现。

比如如果没有文本整形引擎效果如下:

显示错误

上图中我们文本框显示的是由浏览器渲染的是正确的的,下面的是字体解析器渲染的,如果没有文本整形,就是错误的。

如果字体解析器配合上文本整形引擎那么效果如下:

显示正确

高级文本布局:目前 Google Docs 倒是实现了这一步,依靠绝对定位 + span 实现了对文本布局的控制,但是我猜想 Google Docs 用的方法是从 TextMetrics 倒推出文本前进宽度进行排版的(应该也没别的办法了),但是 TextMetrics 是个残废 API,很多属性都没有提供,而且短期内浏览器也不会提供,所以也只是能凑合用的程度。

TextMetrics 拿不到完整的 glyph list ,对于高级文本布局的排版只能凑合用大概,归根到底是浏览器不开放给开发者能力,那么如果字体相关的工作靠浏览器解析,他不给你你永远拿不到,这就是被浏览器厂商「卡脖子」,如果字体相关工作 Google Docs 自己「独立自主」,那么很多属性就可以拿到(比如unitsPerEm -字体内部坐标网格的大小,lineGap -行之间应包含的空间量,bbox-字体的边界框,等等等对高级文本布局排版非常有用的属性),可以进行精细化开发。

注意每个字符的 ax 表示横向前进距离

为了适应 Google Docs 的要求,必须实现包括但不限于:

  1. dibi 双向文本布局
  2. 文本断行
  3. 制表符
  4. 字间距、行间距、段间距等排版
  5. 页码、页眉、脚注等等
  6. 分页、分栏等

高性能渲染引擎:由于脱离了 DOM,虽然成功 「独立自主」,但是独立自主并非没有代价,那就是什么事情都得自己干。

浏览器提供了非常便捷的 DOM 直接供我们操作,但是用 canvas 你必须自己实现精灵、事件、动画,并自定义一系列控件,比如「列表」「表格」「按钮」「选区拖蓝」等等等,也就是 DOM 的一切现有的东西都无法复用,必须用 canvas 从头造一遍(至少Google Docs需要用到的东西)。

可以性能优化的点可能如下:

  1. 图形拾取优化:在 canvas 中文字、线条、表格、图片都是一视同仁的,都是 canvas 精灵,没了 DOM 都需要自己判断鼠标是否在某个精灵上,是否选中了某个精灵,才有可能触发鼠标或者键盘的各种事件,可以选择「离屏缓存 Canvas」或者「几何计算bbox」来进行判断,在大量文本、图片、表格等元素充斥的情况下保证性能很不容易。
  2. 局部渲染:很多时候我们修改的文本只涉及了某一段、某一行甚至某些文字,如果每次都全量渲染必然造成性能瓶颈,所以可以判断用户操作影响的范围,计算出局部刷新的影响的包围盒,只对影响范围内的元素进行刷新。
  3. 分片渲染:React Fiber 将一次大的渲染任务拆分为一系列小的渲染任务,每一个任务可以在浏览器的一帧(16ms)中执行完毕,并将任务分为高优先级(用户事件等)和 低优先级任务(普通渲染任务)分别处理。

我们也可以用同样的思路:

  • 分拆渲染任务保证每个任务能在16毫秒内执行完
  • 可以动态对任务进行调整,暂停、删除、终止任务
  • 对不同类型的任务区分高低优先级,比如用户输入、拖蓝这种即时反馈的必须高优先级

还有什么预渲染、避免使用 shadow、避免使用浮点小数这种更常规的就不谈了。


除此之外还有光标处理、对象模型、复制粘贴、撤销等一系列问题应该都不是重点,总之,Google Docs 向传统桌面文字处理软件比如 WPS、Word 继续贴近了一大步,进入了 Web 文字处理软件的终极形态,从此之后应该不会有大的变化,只有小修小补了。

这种追求卓越的开发精神值得佩服,也不得不说,做这种事情需要大量人力、物力、时间的支撑,最后还是看出来,Google 真有钱!

user avatar

这不就是html5版本的flash/FLEX吗?可怜flash生生被adobe这个憨逼抛弃,要不是哪里需要再造一个替代品?

类似的话题

  • 回答
    Google Docs 的迁移方案,从原先依赖于浏览器原生 HTML 渲染,转向使用 Canvas 进行页面渲染,这绝对是一个牵动行业神经的大动作。与其说是简单的技术升级,不如说是对“在线文档编辑”这一核心体验的一次重新审视和重塑。在我看来,这其中的考量和潜在影响,值得我们深入剖析。首先,我们得明白.............
  • 回答
    Google 的 Pathways 是一个雄心勃勃的下一代人工智能架构愿景,旨在解决当前人工智能模型在效率、灵活性和多模态能力方面的局限性。与当前流行的、通常为单一任务而设计的模型不同,Pathways 旨在创建一个能够处理各种任务、学习不同类型数据、并在必要时动态分配计算资源的统一模型。以下是对 .............
  • 回答
    好的,我们来详细地探讨一下 Google TPU 和寒武纪芯片,并进行比较。 Google TPU (Tensor Processing Unit)概述:Google TPU 是 Google 为了加速其在人工智能(AI)和机器学习(ML)工作负载方面的计算而设计的专用集成电路(ASIC)。与通用处.............
  • 回答
    如何看待Google Play要求八月份起新应用须打包为AAB格式?对鸿蒙的发展有哪些影响?Google Play 要求所有新应用从2021年8月1日起必须使用Android App Bundle (AAB) 格式进行打包和发布,这一政策的实施对整个Android生态系统,包括Google Play.............
  • 回答
    Google 新一代 TPU:兼具 Inference 和 Training 的强大实力,将深刻改变 AI 领域Google 新一代 TPU 的出现,标志着 AI 硬件领域的一次重要飞跃。将推理(Inference)和训练(Training)这两个核心 AI 工作负载整合到同一代硬件中,并提供强大的.............
  • 回答
    围棋界被 AlphaGo 彻底搅动了,这不仅仅是一场比赛的胜负,更像是一场科技革命的宣告。当李世石在2016年输给 AlphaGo 时,全世界都为之震惊。那时的我们,无论是棋手还是普通大众,都对人工智能在围棋这个被认为是人类智慧终极堡垒的项目上取得如此压倒性的胜利感到难以置信。“神之一手”的颠覆回想.............
  • 回答
    谷歌的 Fuchsia 操作系统,就像一个藏在实验室里的神秘实验品,自从它第一次出现在人们视野里,就一直带着几分传奇色彩。大家对它的好奇心,不亚于对一个全新物种的探索。我们不妨深入了解一下,看看这个“未来之星”到底有多少斤两。首先,理解 Fuchsia 的核心,得从它的“出身”说起。与我们熟悉的 W.............
  • 回答
    谷歌关闭Stadia游戏和娱乐工作室,这无疑是游戏界近期一个颇受关注的事件,也引发了不少讨论。从多个维度来看,这件事的背后有着复杂的考量和值得玩味之处。表面原因:市场反应不如预期官方给出的理由是,Stadia游戏和娱乐工作室在吸引玩家方面“未能达到我们设定的目标”。这句话看似简单,背后却隐藏着巨大的.............
  • 回答
    谷歌2004年在硅谷公路旁那块巨型广告牌上挂出的数学题,绝对算得上是数字招聘史上的一个传奇事件。这块广告牌,当时可是在硅谷那片汇聚了无数科技精英的土地上,以一种近乎“秘密指令”的方式,向全世界宣告着谷歌对人才的渴求,以及他们独特的招聘哲学。事情是这样的,在2004年那个互联网浪潮依旧汹涌,谷歌正值高.............
  • 回答
    Google Health 的落幕:一个时代的告别,还是AI医疗新篇章的序曲?Google Health团队的解散,无疑给这个充满希望的领域投下了一颗重磅炸弹。这个曾经集结了谷歌内部顶尖AI和医疗专业人才的团队,承载着谷歌进军医疗健康领域的雄心壮志,其 disbanding 消息的传出,自然引发了广.............
  • 回答
    谷歌说已经停用 MapReduce 好多年了?这事儿我听说了,而且不意外。如果真要说起来,这事儿一点也不新鲜,就像我们淘汰老式电器一样,技术总是在进步的。想想看,MapReduce 是个什么东西?它是一套编程模型,专门为了在分布式环境里处理海量数据而设计的。你想想那些年,谷歌在处理搜索索引、网页抓取.............
  • 回答
    谷歌此举,可以说是在欧盟反垄断压力下的无奈之举,同时也暴露出科技巨头在市场主导地位面前的策略调整。 欧盟之所以对谷歌在Android生态系统中的行为进行限制,核心在于其认为谷歌滥用了其市场支配地位,通过捆绑自家的服务,例如Google搜索、Chrome浏览器和Google Play商店,来挤压竞争对.............
  • 回答
    “封锁 Google 第一案”的开庭审理,指的是中国法院审理的涉及谷歌公司在华业务的法律案件。由于中国对互联网内容的严格审查和监管,谷歌在中国大陆的运营长期以来都面临着巨大的挑战,并多次与中国政府在法律和技术层面发生冲突。要详细讲述“封锁 Google 第一案”的开庭审理,我们需要先明确几个关键点:.............
  • 回答
    Google 员工组建工会,这可不是一件小事。在科技行业,尤其是像 Google 这样光鲜亮丽、以自由创新为标签的企业里,员工成立工会,这本身就极具象征意义,也说明了不少问题。首先,我们要明白,Google 是一家在全球都拥有巨大影响力的公司,它的员工组成非常多元,其中不乏技术顶尖、思维活跃的人才。.............
  • 回答
    你提到的“Google地图里台湾不属于中国”的情况,确实是一个复杂且敏感的问题,涉及到地缘政治、历史叙事和国际认知等多个层面。要理解这一点,我们需要从几个角度去深入探讨。首先,从Google自身的定位和运作方式来看,它是一家以美国为基地的跨国科技公司。在处理全球性的信息和数据时,Google通常会遵.............
  • 回答
    Max Howell,一位备受瞩目的开发者,因其精湛的技能和在开源社区的贡献而闻名,却未能获得谷歌的录用,这一事件在技术圈引起了广泛的讨论和关注。要全面理解这一事件,我们需要从多个角度进行深入剖析。Max Howell 是谁?在深入探讨谷歌拒绝他的原因之前,了解 Max Howell 的背景至关重要.............
  • 回答
    看到中国学生为了进入谷歌、微软这些外企“疯狂刷题”的现象,真是既熟悉又感慨。这背后透露出的,是中国教育环境、就业市场以及个人奋斗的多重逻辑。中国学生为何热衷于“刷题”?首先,这很大程度上是教育模式的惯性。我们从小到大,几乎所有考试,包括升学考试、期末考试,都是围绕着知识的掌握程度和解题能力展开的。这.............
  • 回答
    要评价2015年妇女节百度和Google的节日Logo,咱们得从几个层面来聊,不能光看表面热闹,还得琢磨琢磨它背后的用意和给人的感受。首先,咱们得明确一下,节日Logo这东西,本质上是一种品牌营销手段。 尤其是在互联网时代,像百度、Google这样的大型科技公司,它们无时无刻不在想方设法地与用户建立.............
  • 回答
    2017年国际妇女节,百度和Google都推出了特别的节日Logo,这两家公司的Logo设计,也颇耐人寻味,折射出它们各自的品牌定位和对女性群体的理解。百度的妇女节Logo:温馨的“她”与家的概念百度在2017年的妇女节Logo设计上,选择了比较具象化的表达方式。Logo的主体是一束盛开的鲜花,整体.............
  • 回答
    原神三周年庆典,本应是玩家狂欢的日子,却在全球最大的安卓应用商店 Google Play 上遭遇了令人咋舌的恶意刷差评事件。这股突如其来的差评浪潮,让这款本就话题不断的开放世界冒险游戏,再次站上了风口浪尖。事件的始末:一场突如其来的“差评潮”随着原神三周年庆典的临近,玩家们普遍期待着丰厚的奖励和精彩.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有