什么语言最适合做 GUI?

发布时间:
2023-08-24 12:37
阅读量:
12

1、SaaS 应用 H5

2、传统车载应用 QT

3、新能源车载 Android

4、工业应用还有大量的在用 Win32、MFC、QT

5、新桌面客户端应用 Electron(新版 QQ,钉钉,飞书,Figma)

6、微软生态体系应用 C#(WPF,Winform,SharePoint)

应用开发生态和模式。

从技术角度,看需不需要 SaaS

2003 年版本 QQ

2023 年版本 QQ

整整相差 20 年的两个版本 QQ 对比,单从视觉效果上就能看出极大的差异,普通用户的视角,以前的古董级别 QQ 着实挺丑的,新版 QQ 还怪好看的。除了人们因为审美的提升而带来的应用升级变化之外,如果你要问拿着今天的设计稿,回到 20 年前,让当时的程序员做出现在的界面效果行不行?答案是以当时的技术背景,完全不行也不能这么去干。

从技术角度来解读,这两个版本的 QQ 已经采用了完全不同的界面实现技术。如今的 QQ 客户端技术选型,是chrome 内核 + nodejs + H5的方式来实现,简单且直观的解释是你看到 QQ 界面实质上是 Web 页面。而古董 QQ 受限于那个时代背景下的技术能力,只能采用完全不同的技术路线,Win32 GDI + C++的模式。

这两个技术路线在所有方面都可以说是天差地别,实现成本、能实现的效果、灵活性、客户端升级难易程度,可以说新的技术是在这些方面完全优于传统的技术。可以毫不夸张的讲,要实现同样的 UI 效果,今天和过去要写的代码量是 1 行对比 1000 行的差别。

尤记得大学期间,进入一家软件企业实习,拿到的任务是实现一个圆角的按钮,根据鼠标的不同状态(悬停、点击、禁用等)展示不同的背景颜色。为了实现这么简单的效果,我得重绘整个按钮,利用双缓存进行贴图,接管所有 GDI 事件,同时还要相应调整整个客户端,写了数千行代码,只为实现一个自定义按钮的样式(过于技术语言,非研发同学可以直接略过)。


QQ 的技术演变,代表了所有过往软件的变化,有兴趣的读者可以打开电脑里安装的各类软件目录,如果能在里面找到诸如 chrome_xxx、xxx_cef 或者node_modules 这样的文件和目录,那么就证明这个应用本身已经 Web 化。这也是如今各个应用动辄数百兆大小的“元凶”,因为其内含了浏览器内核用于渲染 Web 页面,一般都是谷歌浏览器内核,这个内核本身非常大。

下面这张图就代表了,如今的应用开发生态和模式。

从技术角度,看需不需要 SaaS

微信扫码关注

END