为什么纠结?
所有64位WinForm/MFC/WPF 应用都是Chromium 浏览器,这一个技术完成于"非典疫情"期间,因为当时无事可做,只能被困在家里。那个时期Chromium的版本是M81,因为疫情严重,Chrome团队放弃了M82、83,直接发布了M84。
直到2022年,LLM开始火爆,软件应用领域开始"洗牌"了,有很多朋友私下问我,怎么看LLM,实话实说,我当时对LLM一无所知,对其的了解仅仅是停留在看新闻的层次。去年的时候,一个偶然的机会,开始使用DeepSeek、ChatGPT。于是我就将这一个想法分别提交给这两个大神,向看看它们的看法。结果非常的有意思,它们首先都认为:"这太荒谬,人家自己编译的桌面应用,例如一个WinForm应用,你怎么可以说它就是'Chromium浏览器'"?紧接着,它们都会为我出主意,并且给我写了很多"方案",帮助我如何实现这一个离奇的想法,其中不妨有一部分代码,看上去"很正经",颇有大师的风范。
在与ChatGPT、DeepSeek长达10个月的不断沟通之中,我的确学会了很多,也看到了很多难以置信的事情。它们对Chromium Project这一个尺度的项目(不低于30000000行源代码)的了解深度,其实非常的让人震撼,这的确会让我们看到了今后必然发生的事情,那就是:职业软件开发者今后会面临着什么,这一种感受,绝对不是它们可以为你"写一些代码",而是它们很有可能会深度的替代你。
"桌面应用即现代浏览器",是最近一年与DeepSeek、ChatGPT深入沟通的最终设想。虽然看上去非常的离经叛道,但这就是我们即将面对的事情。对很多开发者,特别是WinForm、MFC这方面的开发者,对这一个结论的想法是:
1、 我的应用,并没有嵌入CEF、WebView2,怎么可能是"浏览器";
2、 你并没有我的源代码,你如何让我的应用成为真真正正的浏览器?
3、 我自己的应用运行的很好,我为什么要让自己的应用成为浏览器?
当然,还会有很多很多的问题,完全都可以理解。其实,这些问题,是一个很难回答的问题。所以我会换一个视角,那就是,你的应用如果就是浏览器,会为你带来什么价值:
1、 Chrome、Edge的Web生态,直接就是你应用生态的一部分,这没什么不好;
2、 当今最好的AI、Web技术,都会在你的应用之中畅行无阻,您会不会拒绝?
3、 你的应用可以充分的调度各种各样的原生应用组件、Web组件,为你产生无穷无尽的价值,您有可能不需要,但您的客户会需要,您的朋友也一样;
4、 您的应用不需要修改源代码,您的工作流程一如既往,没有任何改变,不同的是,您可以直接为您编译的exe写Web生态,就如同您面对Chrome一模一样。
当然,您是否接受,是另外一回事。只不过,当您的应用交付用户的时候,您的客户很可能会愿意接受,因为,他们的很多一眼可见的需求,会直接叠加到您的应用之上,所以,他们会认为这是您为他们提供的"福利",自然会为您点赞。
我的应用已经嵌入了CEF/WebView2
这是一个很好的问题!我们没有贬低CEF、WebView2,我们会一直为这两个经典点赞、喝彩。不同的是,这些"天花板"级别的神器,需要您在设计阶段耗费精力,您必须选择一个合适的窗体,并在这一个窗体之中为其开辟一个特权"矩形",将其隆重的迎接进来,同时您还需要为其做特别的初始化、设计接口......。但问题是:如果您的产品交付了之后,用户希望在另外一个窗口之中显示一个设计环节没有的页面,您会怎么办?打开源代码、加入新的设计、重新编译?
一个有意思的问题是,您嵌入了CEF等,性能代价是一回事,但您获得的并不是"浏览器",而仅仅是一个"数字展板"(这一个说法来自于'DeepSeek')。
你的应用原本就是浏览器
您可能会奇怪,如果是:我怎么就不知道?难道说,我的应用是一架飞机,而我一直将其看作是只有轮子的汽车,一直在用轮子驱动,让其在"陆地"上行走,而一直没有起飞?
或许,这就是我们写《爱丽丝漫游桌面开发奇境记》的原因。其实,爱丽丝是不相信的,所以她设计了一个"反作弊"的myApp,具体详见"《爱丽丝漫游桌面应用开发奇境记》(1)"。爱丽丝的myApp,仅有一个WinForm窗体Form1,其中仅包含一个panel,一个button,一行代码都没写:

她单纯的想法是在这一个窗体之中,"彻底堵死"显示"Web页面"的所有可能性。结果,她在这一个"一张白纸"性质的应用之中看到了无穷无尽的可能性:

以及:


这意味着,她最简单的窗体,拥有强大的基于Web逻辑组合各种各样"控件、窗体"的能力。不仅如此,她的应用之中,可以让你直接构造形形色色的"超级浏览器窗口":



那么,你可以直接写任意数量如下所示的"超级页面":

爱丽丝的实验,给我们带来一个有趣的问题,那就是:我们应该如何面对这些突如其来的"潜能"。
当我们将这一切提交给DeepSeek、ChatGPT的时候,它们最初认为这些都是"杜撰"的,因为,在它们的训练数据之中,完全没有这些。
后来,通过不断的变更"提示词",它们意识到,这大概是"荒诞的新鲜事儿",差不多属于"内容涌现"、动态赋能。与当下的AI发展趋势"不谋而合"。
我们应该怎么面对我们自己编译生成的exe?如果我们仅仅认为,这些exe就应该完美的执行我们"预设的应用逻辑",这一点完全没有问题,但会不会就此"封印"?当然不是!所以我们会竭尽所能,为我们自己的应用增加各种灵活的"插件机制",这不仅仅是我们技能的展现,也是体现用户价值的关键。
但现在,新的问题来了,你的应用本身就是应该"巨大的Web、AI"的支撑体,您将如何面对?
所有64位WinForm应用都是超级浏览器,无需修改源代码、不需要重新编译
这是一个"近乎绝对化"的结论,不取决于您如何写代码,仅取决于您如何对待您的编译所得。那么,您的态度会不会变化?这是我们近期会提交的"开源项目",也是面对日新月异的AI、Web技术,给出的一个策略、应对方式。
如果浏览器市场,仅仅有数量极为有限的玩家,会不会非常的寂寞?如果所有的WinForm、MFC、WPF都可以是足以媲美Chrome、Edge的浏览器,但拥有的Web内容维度更高,会不会很有意思。
浏览器机制,本身不是寡头的特权,而是你编译之后exe的运行形态之一,是你应用的一个可选择的"角色",就如同你自己拥有很多不同的身份一样。
当你意识到,你的exe,不再刚性十足,而是可以接受额外的"文本"描述意图,这意味着,你可以为你的exe提供"提示词",它们会为你"作答",这是一种"双向沟通"的意图体现,这一个能力,不应该是主流浏览器独享的,而是一个"普惠"的机制,你不需要"神奇的"代码,您需要的仅仅是一个"视角微调",如此,智能涌现,就会近在咫尺。
如果您对"桌面即浏览器"感兴趣
如果您对64位桌面应用即浏览器感兴趣,可以关注如下超链接:
1、 问世间,exe是何物?直教AI沉默、Web寡言(1)- 博客园
2、 问世间,exe是何物?直教AI沉默、Web寡言 (2)- 博客园
以及后续的连载,其中有下载地址以及相关的细节介绍。