「Pygors系列」一句话导读:
Python、Go、Rust、C程序跨平台GUI框架研究。
一、问题
Pygors是什么?
Pygors是我自己创造的一个词,就是Python、Go、Rust、C四种语言的合体。目的是为了跨平台GUI应用。
至于说怎么多了个C语言,那是因为前三种语言都与C语言有密切的关系,C语言无所不在。
为什么是跨平台是Python、Go、Rust、C四种语言?
Python是热度最高的语言,当前TIOBE排名第一;
Go是易学易用跨平台的语言,当前TIOBE排名第七;
Rust是高质量高效率的语言,当前TIOBE排名第十九;
C是历史与积累最深厚的语言,当前TIOBE排名第二。
Java,这么多年来,GUI还是一个不及格的状态,其它JVM语言如Kotlin、 Groovy、Scala等都一样。
C#,跨平台存在感还不如Java,这种从根子上就排斥跨平台的语言,就不要期待了。
C++,早就迷失在泛型中不能自拔了。
Swift,如果说C#屁股总是不正,那Swift就更歪了。
Dart,分不清是语言,还是Flutter专属语法糖。
至于JavaScript、PHP、R等等偏科的语言,就更别提了。
其它新兴语言中,研究了Zig、Hare、ring-lang、nim-lang、crystal、Ponylang、vlang等语言,发现对标C语言的非常多,
特别是V语言,它把一推C语言的库都转成了V语言,然后打造了一个全V语言的完整工具链。基本可以视为C语言的方言。
二、标准
为什么要选择四种语言?
因为每种语言的目标和应用范围不同。
Python语言它最大的特点就是简单易学,适应性最佳。
Go语言它最大的特点就是没有短板,什么都可以什么都不拔尖。
Rust语言它最大的特点就是走专业路线,难学难用但安全高效。
C语言它最大的特点就是兼容性好,积累多。
几种语言的侧重点有什么不同?
因为它们的目标不同,所以发展的侧重点也不同。
Python语言主打工具,它的要求是简单易用,适应性好,比如Tkinter就比QT要好。
Go语言主打高性价比,它的要求是均衡,不求最好,但求最多。
Rust语言主打高质量,它的要求是专业,事事都要做到最优。
C语言主打基础与积累。它的要求是可移植性好,比如Libui就被广泛移植。
三、项目
具体有哪些项目值得关注?
Python语言
主要的关注点是适应性,依赖越少越好,特别是需要编译的依赖。
编写类似于项目原型或开源工具之类的应用,易安装易使用,不挑环境。
比如Tkinter相关项目,Tkinter几乎是所有Python环境都包含的特性,唯一的缺点就是太冷门了。
Toga
最值得关注的GUI项目是Toga,它基于原生界面,使用底层的FFI(Foreign Function Interface)调用。
https://github.com/beeware/toga
Go语言
主要的关注点是均衡,要求易学易用,没有大的缺点或难点。
编写短平快的互联网应用或开源工具。
Go的GUI项目是Pygors中最少的语言,没有像winit这种跨平台Windowing窗口管理库和Graphics图形库。
fyne
目前最值得关注的GUI项目是fyne,但它的问题也不少。
https://github.com/fyne-io/fyne
Rust语言
主要的关注点是专业,要求稳定安全,功能强大。
编写商业化的管理应用程序或者高性能高可靠的专业应用。
利益于Winit、baseview、glazier等窗口库和piet、wgpu等图形库,Rust的界面框架很繁荣。
Iced
目前最值得关注的GUI是Iced
https://github.com/iced-rs/iced
floem
背靠着新兴编辑器Lapce的floem是非常有前途的框架,毕竟Lapce是最大的用户和示例代码
https://github.com/lapce/floem
Xilem
xilem也是不错的选择(Druid的继任框架),
https://github.com/linebender/xilem
(全文完)
标签:语言,GUI,C语言,跨平台,Go,Pygors,Rust From: https://www.cnblogs.com/windfic/p/17208277.html