此情可待成追忆,只是当时已惘然.

东八区深夜长放送(LCL P1)

计算机图形学中的一个古老传说——也是未解之境(LCL前传)

编程语言库在最近的20年里面(甚至40年)...
几乎每个语言自带的...
没有可以让大多数人接受的跨平台GUI Framwork....

C:这个连基本数据结构都要手搓;

C++: 伟大无需多言,只要有任意需求,就可以考虑进标准库里面随地大声喧哗;

Java:最早的是AWT(Abstract Window Toolkit),在我拿到的书当中说被Swing淘汰了;但是实际上:

AWT使用的是"Java Native Interface(JNI)调用C/C++编写的本地库,直接与操作系统交互,从而实现窗口创建、事件处理等底层操作"- by qwen;


似乎....
FFI with C/C++?
不错,这是对跨平台GUI框架的一次尝试....
AWT直接调用原生组件....约等于一句一句翻译了
之后的Swing只要求AWT提供窗口就行....
让Java在这个窗口绘制(怪不得长得有Java那味道)
可惜的是....
没人想为了一个框架跑一个大虚拟机.......?
生态?就没起来过...
golang(07年)/python(91年)自带的库和20年前的没什么区别


当然我是开玩笑的哈哈哈哈哈

因为有一个很显然的问题,哪怕是这几个现代语言的出现时间,都还没到Post-PC那个时间段(golang...?);

同时间连GTK,KDE是什么都不晓得....最多有个OpenGL

(注意⚠️:OpenGL只是一大堆虚函数,需要开发者自己实现的!)



有一个问题是,OpenGL的那个时代...就存在跨平台一说...


OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。当时SGI的客户(如科研、工程、影视行业)需要在不同硬件架构(如SGI的MIPS处理器与IBM、HP等厂商的设备)上运行相同的图形程序,跨平台兼容性成为刚需。这种实际应用场景直接推动了OpenGL从设计初期就注重抽象硬件差异。 -by qwen;


那么,在计算机图形学鸿蒙(华为打钱)初开之时的问题就是:


如何在保证计算机底层改变的情况下满足顾客:

Write Once,Compile Anywhere;



后来各大厂商开始为不同的CPU/操作系统疯狂堆积木(生态墙)...

让我们看看各大底层怎么变的:

著名的Windows:

1.Win32 API->MFC (A Win32 wrapper),然后到现在的Win11API还留着;
2.二阶段开始挖人战术:C#给我上去冲锋; WinForms(A Win32 wrapper...Again!)
3.? Win8时代搞出个Windows Runtime,就是那个"地铁风格"的基础库,现在已砍;把自家WP搞死了;
4.2015年搞个UWP(底层技术没怎么变),现在半死不活;
2023年:WinUI3,底层可支持Win32 与 UWP;

总结:看下一句话

说"微软唯一的问题就是没有品味"这句话的公司:

底层图形架构:从像素到现代渲染管线
QuickDraw(1984)->Quartz 2D(2001)-> Metal(2014)
控件层框架:交互范式的三次进化
AppKit(1989,NeXTSTEP遗产)->UIKit(2007)->SwiftUI(2019)
-by metasoai

FAQ:为什么一到乔布斯就要AI了?
真没用过,没有亲历过的,不瞎写(都学Swift,我猜都不用猜都知道你还没学就花一万买电脑)

Linux已经在上文提到了...


那么...在互联网的某个地方....会不会....还有像Swing这样技术的出现?

Qt?是的!最底层库,真正的跨平台...可是...这玩意用的C++....现在学C++?我脑子抽了学这个?

GTK?是的!好用!可惜的是...在Win上面非常卡顿....

Webview-Like?是的!可是...他们把浏览器塞我桌面上塞满了....不就是大虚拟机?