2024.04.18

试着编译了ChatGPT-Next-Web的客户端，之前我只玩过把它部署在网页上，以及用Docker部署。最近ChatGPT更新到了20240409版本，可惜ChatGPT-Next-Web的作者把它卖掉了，更新速度跟不上，要用上最新的GPT版本就得自己动手。

本来我对前端的工程化框架还停留在 Electron,用electron-builder把它打包成一个基于Chrome内核的浏览器。这次因为没摸过Next.js，加上它的文档里也没写怎么编译代码，所以编译的过程中遇到了不少坑。最后发现它是用Tauri来编译的，Tauri又得依赖Cargo，而Cargo是Rust的包管理器。

我也搞不清楚前端的JS怎么就和Rust扯上了关系。不过我还是试着编译了一下，除了生成安装包失败——因为需要证书。于是我问了GPT怎么搞证书，它让我用OpenSSL。这个配起来也挺头疼的，我上Google一查，发现直接用pnpm就能生成了。于是我就打了个安装包，试着装了装，挺好用的。

---

C#开发的，打包这事儿挺费劲。虽然我写了个脚本，但那只是再运行的时候方便了，具体的安装逻辑还得自己手动配置，包括配置文件和注册表的更新

C# 这边我是用 advanced installer  进行封包。选这个主要是因为图形化界面，简单易用、

tauri  使用 Nullsoft封包 ，是参数配置的，我当时不会用。

其实最关键的是native ，C# 的native 很久之前就在传，net 8.0之后终于支持了，但不支持 wpf 就很尴尬。

写C# 最主要的原因是界面化开发，开发难度低，和C++的集成度好，不过还是感觉前端这些年的发展真的很6。

tauri  还能打包 macOS 和linux 。

---

代码的世界没有银弹。 看了一些介绍之后， 发现  tauri  只是从被 Electron 抢走的份额中占了一部分。

我这个行业没有跨平台的需求。且要做的东西要和Ｃ＋＋强耦合，应该多活几年吧。





在编程的世界里，故事始于简朴的C语言。当初，C语言因其直接和高效得到了广泛应用，但随着时间的推移，人们发现直接使用C语言编程过于复杂耗力。于是，C++横空出世，带来了面向对象的编程范式，尽管如此，其对资源的高需求让它在小型设备如单片机上仍让位给C语言。

然而，C++的复杂性让开发者们开始寻求更简单的替代方案。这时，Java和C#应运而生，Java承诺一次编写，到处运行，虽然起初并未大火，但随着移动互联网的兴起，Spring框架使其焕发新生，迅速占领了主流市场。而C#则优雅地解决了Windows平台下的界面显示问题，摆脱了手写MFC的繁琐。

HTML在这里插话说，编译何必那么麻烦呢？我可跨所有平台，在任何浏览器上运行。随着互联网的蓬勃发展，HTML迅速成为网页开发的黄金标准，与CSS和JavaScript共同织就了现代Web的多彩生态。

JavaScript，最初只是个在浏览器中添加动态效果的简单脚本，如今已成长为支持复杂前端框架的强大语言。React、Angular和Vue.js等框架极大提升了前端开发的效率。而Node.js的出现，更是让JavaScript跨足服务器端，打破了传统的界限。

Python也在这场技术革命中崭露头角，以其简洁的语法和强大的库生态在数据科学、机器学习等领域大放异彩。Python的设计哲学，即简单胜于复杂，让程序员以更少的代码完成更多的工作。

随着云计算和微服务的兴起，Docker和Kubernetes这样的容器化技术变得至关重要。它们提供了一种标准化的应用打包和部署方法，确保软件在任何计算环境中均能稳定运行。

在移动应用开发领域，Swift和Kotlin为iOS和Android的原生开发提供了强大支持。同时，Flutter和React Native等跨平台开发框架让开发者可以用一套代码开发多平台应用，极大地提高了开发效率和降低了成本。

在这个技术日新月异的领域里，每种技术都有其独到之处和优势。程序员们需不断探索新技术，以适应市场的持续变化。技术的进步永无止境，新的语言和工具持续涌现，推动着整个行业不断前行。