最终我的选择是GTK而不是wxWidgets。
以前我比较崇拜所谓“跨平台”的APP,就是Linux、Mac、Windows三端一套代码,然后本地化的界面,然后wxWidgets就进入了我的视野。
但是随着时代的变化,现在的“跨平台”成了Andriod、iOS、Web,这个时候老一代的“跨平台”概念就有些鸡肋了,因为老的跨平台成了少数派,这不明摆着个人电脑再多也多不过手机嘛!
提到“少数派”,其实是更加专业、更加细分的领域了,比如各种嵌入式设备的GUI编程,也是一个广阔的领域。
为什么一个APP非得Native的展示呢?完全没必要么。相比所有平台都是统一独特的风格,Native的想法的太幼稚。我突然想到wxWidgets最一开始就是包装的Windows的API,所以它是编程框架还是Windows的那一套,真是要多恶心有多恶心。
是啊,本地化的展示必然掺杂着本平台的GUI思路和本平台的调试,但这根本不是业务的核心。
抛弃那些不切实际的想法后,我又看了GTK4的hello-world-gtk代码,思路瞬间干净了,无论是GTK的GUI编程思路,还是C语言的代码风格,都是我喜欢的那种。
我是从C语言入门的,我喜欢那种简简单单的感觉。
不选wxWidgets:
一是因为wxWidgets是套了壳的MFC,论界面耍得花我还不如直接用易语言
二是因为wxWidgets的好多变量命名“又臭又长”,我特别讨厌。
三是因为在的印象中,C++的标准一直在变,而我实在没精力研究语言本身了,相比较C语言在我的印象中,一直在底层待的比较稳,不闹腾即省心。
不选C++而选择C:
1、其实C++与C是完全不同的两门语言,是谁说C++是C的超集了?自从VC++出来后,C++在我的感觉中一直是被Windows牵着鼻子走的。
2、C语言我的入门语言,语法什么的都用惯了
3、用C语言做GUI,从底层上做彻底的跨平台的APP,为将来嵌入式编程做准备
4、JavaScript的语法和C类似,都是那种小写字母加下划线,我比较喜欢这个。
5、有意识地和微软那一套说Bye~Bye~,学C语言可以专注于编译链接,研究一些优秀的项目比如sqlite,感觉配置个VSCode还不如直接命令行。
6、C语言小巧玲珑,配合易语言做界面也比较省心,要说Windows下的界面编程还是这个易语言耍得花。
要说现在的跨平台,我看好UniAPP,当然他现在也在学着Flutter做跨平台的Native应用,不过我认为还是各路小程序更亲民,毕竟国人用微信支付宝什么的太多了,而国人绝大多数不会自己安装应用。
最后,我最讨厌的就是那种半上不下,要不你就小而美,要不你就大而全。很显然,C语言就是小而美,而GTK要比wxWidgets强。