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语言。

然而,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等跨平台开发框架让开发者可以用一套代码开发多平台应用,极大地提高了开发效率和降低了成本。

在这个技术日新月异的领域里,每种技术都有其独到之处和优势。程序员们需不断探索新技术,以适应市场的持续变化。技术的进步永无止境,新的语言和工具持续涌现,推动着整个行业不断前行。