问题

vscode是用什么语言写出来的?为什么华为能做出鸿蒙系统,却开发不出类似vscode的开发工具?

回答
问到 VS Code 的出身和华为在开发工具上的挑战,这背后涉及到了技术选型、生态建设以及商业策略等多个层面,确实是个值得深挖的问题。

首先,咱们聊聊 VS Code。你问它是什么语言写出来的?答案是,它主要是用 JavaScript 和 TypeScript 来编写的。没错,你平时用来写网页前端的那些语言,构成了 VS Code 的核心。当然,它还有一个非常重要的部分,就是它的底层框架,叫做 Electron。Electron 是一个用 C++ 和 Node.js(Node.js 本身也是用 C++ 编写的)构建的框架,它允许你使用 Web 技术(HTML, CSS, JavaScript)来开发跨平台的桌面应用程序。所以,你可以这样理解:VS Code 是一个用网页技术包裹起来的应用程序,而 Electron 提供了这个“包裹”和运行环境。

为啥要用 JavaScript 和 TypeScript?这背后有几个显而易见的好处:

庞大的开发者群体和成熟的生态: JavaScript 是互联网最普及的语言之一,拥有海量的开发者。这意味着微软可以轻松招募到熟悉这些语言的人才。同时,npm(Node Package Manager)社区提供了无数的库和工具,极大地加速了开发进程。从代码高亮、语法检查到各种插件,很多底层功能都可以直接利用现有的成熟库。
快速迭代和原型开发: Web 技术本身就非常灵活,开发和调试的效率很高。对于一个需要不断更新和添加新功能的工具来说,这尤为重要。你可以快速地做出一个功能,测试,然后迭代优化。
跨平台能力: Electron 的设计初衷就是为了实现跨平台开发。一套代码可以在 Windows、macOS 和 Linux 上运行,这大大降低了开发和维护的成本。 VS Code 的成功很大程度上也得益于它在各个平台上的表现一致。
插件生态的开放性: VS Code 之所以如此受欢迎,很大程度上在于它强大的插件系统。用 JavaScript 和 TypeScript 开发插件本身门槛就很低,这吸引了大量第三方开发者为其贡献插件,形成了极其繁荣的生态,进一步巩固了 VS Code 的地位。

那么,华为为什么能做出鸿蒙系统,却很难做出一个类似 VS Code 的开发工具呢?这其中的原因可以从几个角度来看:

1. 系统 vs. 应用:目标和复杂度差异巨大

鸿蒙系统: 华为的鸿蒙系统是一个操作系统,它的核心是操作系统的内核、调度器、文件系统、驱动框架、安全机制、系统服务等等。这是一个非常庞大且基础的工程。它的目标是构建一个在不同设备上(手机、平板、手表、电视、汽车等)都能运行的统一的操作系统。开发鸿蒙需要深厚的底层技术功底,涉及内核开发、驱动适配、API 设计、安全架构等方方面面。
VS Code: VS Code 则是一个应用软件,虽然它的功能非常强大和复杂,但它建立在 Electron 这样的通用应用开发框架之上。它的核心是围绕着代码编辑、语法解析、智能提示、调试等功能进行的。它并不需要去操纵硬件驱动,也不需要管理整个系统的资源分配。

打个比方,做一个操作系统就像是建造一座城市的基础设施(电力、供水、交通网络),而开发一个像 VS Code 这样的应用则更像是在城市里开设一家非常成功的商场。城市的基础设施是更底层、更基础、更复杂的工程,一旦建好了,才会有各种各样的商场、住宅在那里蓬勃发展。

2. 技术栈的侧重点和人才储备

华为在系统级开发: 华为在通信技术、芯片设计、嵌入式系统、操作系统内核等方面有着深厚积累,也投入了大量资源培养相关人才。这些领域的核心语言通常是 C/C++,以及汇编语言,需要对计算机底层原理有深刻理解。
VS Code 的开发语言: VS Code 的核心语言是 JavaScript/TypeScript。虽然华为在这些前端和应用层面的技术上也有涉猎,但其核心竞争力和人才储备主要集中在系统和底层技术。要吸引大量精通 JavaScript/TypeScript 并有能力构建复杂应用生态的顶尖开发者,并将其整合到华为的战略中,并非易事。

3. 生态和社区的建设门槛

VS Code 的成功依赖强大的社区和生态: 如前所述,VS Code 之所以能成为事实上的行业标准,很大程度上是因为其开放的插件系统和由全球开发者贡献的庞大生态。这个生态的建立需要时间、开放的接口、完善的文档,以及对社区贡献者的支持和激励。微软投入了大量精力去维护和发展这个生态。
华为构建新的开发工具生态的挑战: 华为要想开发一个类似 VS Code 的工具,不仅仅是写代码实现功能,更重要的是吸引开发者使用它,并愿意为它开发插件和扩展。这需要一个全新的生态系统,包括:
统一的插件开发框架和 API: 需要设计一套易于学习和使用的插件开发接口。
开发者社区和支持: 需要建立一个活跃的开发者社区,提供技术支持、交流平台和开发资源。
吸引头部开发者和企业: 需要有足够的吸引力,让那些习惯了 VS Code、JetBrains 等成熟工具的开发者和企业愿意迁移过来。
与现有工作流的兼容性: 开发者通常有自己成熟的工作流,一个新的工具需要能够很好地融入或者替代现有的环节。

4. 商业策略和市场定位

微软的策略: 微软通过 VS Code 向开发者提供了一个免费且强大的平台,以此来推广其 Azure 云服务、GitHub 以及 Windows 开发生态。VS Code 实际上是微软一个非常成功的“流量入口”和“生态粘合剂”。它的盈利模式并非直接销售软件,而是通过生态效应实现间接的商业价值。
华为的策略: 华为的核心业务是通信设备、消费者业务(手机等)和云计算。虽然开发工具对其生态很重要,但直接与 VS Code 这样已经占据主导地位的免费工具竞争,并从中获得直接的商业回报,并非华为最直接或最高效的战略选择。华为更倾向于将其资源集中在构建其核心的操作系统(鸿蒙)、芯片和云服务生态上,并通过这些生态吸引开发者为其平台开发应用,而不是直接与现有的通用开发工具巨头竞争。

总结一下:

华为能做出鸿蒙系统,是因为其在操作系统核心技术、底层软硬件协同以及大规模工程管理方面拥有强大的实力和资源投入。而开发一个类似 VS Code 的开发工具,则面临着与现有成熟工具竞争、构建全新生态系统、吸引广泛开发者以及技术栈侧重点差异等一系列挑战。

简单来说,华为擅长的是“造地基、搭框架”,为各种应用提供底层支撑。而 VS Code 则是在已经非常发达的“城市”(如 Windows、macOS)里,提供了一个高质量的“商店”和“工作台”,它依托的是一个成熟的应用开发和软件工程生态。华为如果要涉足这个领域,需要的是一套完全不同的策略和能力组合,而且其战略优先级可能也与操作系统开发有所区别。

所以,不是华为“开发不出”类似 VS Code 的工具,而是其资源、战略重点和生态建设的路径,使其更倾向于在操作系统层面发力,而不是直接去挑战一个已经被巨头牢牢占据且生态极其成熟的通用开发工具市场。不过,随着鸿蒙生态的发展,华为也一直在完善其针对鸿蒙开发的工具链,比如 DevEco Studio,这也可以看作是他们在特定领域内,针对自身生态定制的开发工具。只是要达到 VS Code 那样的普适性和生态影响力,还有很长的路要走。

网友意见

user avatar

你太小看VSCode使用的底层技术了.

VSCode底层用的是Electron这个开源的跨平台的桌面应用开发框架.

而Electron又是基于Chromium和Node.js等等这些开源软件.

Chromium是Google主导开发的一个开源浏览器,最初的时候,排版引擎用的是苹果Safari开源的WebKit,后来Google开了分支搞了自己的Blink,还搞了自己的JS引擎V8,总之就是用内存换速度,成了综合性能最好的浏览器框架,连微软Edge最后都抛弃了自己的引擎,改用Chromium这个浏览器框架.再说回苹果的WebKit,最初也是基于KDE项目开源的排版引擎KHTML开发的.

所以说,像VSCode这个工具,不是微软自己从零开始搞得东西,而是基于很多现成的复杂的基础软件,才能开发出来的代码编辑器.

我觉得非要拿来说事的话,更应该拿JetBrains家的IDE来说事.

为什么GDP只有中国1/10的俄罗斯,它家的程序员就能使用Java开发出JetBrains旗下的系列IDE和Kotlin编程语言,连Google都得基于JetBrains家的IntelliJ IDEA和Kotlin打造自己的Android Studio和开发语言.

华为也是重度使用Java的高科技企业,但在Java领域甚至Android开发领域,并没有表现出俄罗斯JetBrains那样的影响力.

PS:那些说JetBrains总部在捷克的不要跟我杠,看过JetBrains的创业过程你就知道,这哥仨都是俄罗斯人,在捷克打工,然后离职创业,也就把总部注册在了捷克.实际核心开发大本营就在俄罗斯圣彼得堡,CEO就是俄罗斯圣彼得堡国立大学数学硕士,很多员工也都来自这所大学.Kotlin就取名自圣彼得堡旁边的科特林岛(命名借鉴了Java取名自Java岛).

类似的话题

  • 回答
    问到 VS Code 的出身和华为在开发工具上的挑战,这背后涉及到了技术选型、生态建设以及商业策略等多个层面,确实是个值得深挖的问题。首先,咱们聊聊 VS Code。你问它是什么语言写出来的?答案是,它主要是用 JavaScript 和 TypeScript 来编写的。没错,你平时用来写网页前端的那.............
  • 回答
    你这个问题问得很好,也确实是很多刚开始接触 VS Code 开发 C/C++ 的朋友们会遇到的一个困惑。VS Code 本身是一个通用的代码编辑器,它的语言识别能力主要依赖于安装的扩展。当你创建一个 `.c` 文件时,VS Code 默认会将其识别为 C 语言文件,这主要是因为它安装了相应的 C 语.............
  • 回答
    我一直在折腾 VS Code 各种插件,有些真的不是“好用”两个字能概括的,而是那种“卧槽,怎么还有这种操作?!”的惊喜感。今天就来聊聊那些让我觉得眼前一亮、甚至是改变了我开发习惯的 VS Code 插件。1. Prettier 代码格式化界的“统一战线”这货我得第一个说,虽然很多人都知道,但它的.............
  • 回答
    我理解你想知道在 VS Code 中运行 JavaScript 文件时,为什么使用 Google Chrome 浏览器会弹出提示窗口,并且希望我用一种更自然、不像 AI 撰写的方式来解释。我们来聊聊这背后的原因,这其实跟你在 VS Code 里“运行” JavaScript 的方式有关,以及浏览器本.............
  • 回答
    好的,我们来聊聊 JetBrains 2022 的远程开发能力和 VS Code 的 Remote Development 扩展,看它们到底有哪些异同,哪个更适合你。首先,明确一下“远程”的含义:当我们谈论“远程开发”时,通常指的是以下几种场景: 远程服务器/虚拟机开发: 代码、开发环境都运行在.............
  • 回答
    华为云 Cloud IDE 与 VS Code Online 的“似曾相识”:一场技术的传承与创新近期,华为云 Cloud IDE 的发布引起了不少开发者的关注,其中一个最突出的感受便是它与大家熟悉的 Visual Studio Code (VS Code) Online 之间惊人的相似度。这种“似.............
  • 回答
    很多人都曾有过这样的疑问:能不能用 VS Code 完全替代 Vim?对于这个问题,我的回答是:原则上,是可行的,但实际情况要看你对“替代”的定义以及你使用 Vim 的深度和习惯。我本人也曾在 Vim 和 VS Code 之间摇摆过一段时间,最终选择了我现在的使用方式。所以,我希望通过我的一些个人经.............
  • 回答
    VS Code Remote Development:让你的开发环境无处不在的强大工具Visual Studio Code (VS Code) Remote Development 扩展包,顾名思义,就是为了让你能够远程连接到各种计算环境,并在这些环境中进行开发而设计的。它彻底打破了传统上开发环境与.............
  • 回答
    微软之所以大力投入并持续维护 VS Code 的开源项目,其背后是一系列深思熟虑的战略考量和对未来软件开发趋势的精准判断。这不仅仅是一次简单的开源行动,更是微软重新定义其在开发者社区中角色和影响力的关键一步。首先,最直观的原因是构建和吸引开发者社区,赢得开发者心智。在过去的软件开发领域,开发者常常是.............

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

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