「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

(全文完)

「Pygors跨平台GUI」1:Pygors跨平台GUI应用研究的更多相关文章

  1. 灵感宝盒新增「线上云展会」产品,「直播观赏联动」等你共建丨RTE NG-Lab 双周报

    前言 哈喽各位开发者,「RTE NG-Lab 双周报」如期而至! 近两周,我们更新了一些新的实时互动场景和产品,也举办了代码实验室的第一次线下活动,与大家一起体验了声网最新的 4.0 SDK. 灵感宝 ...

  2. 对于前端,「微信小程序」其实不美好

    微信小程序开放公测了,9月底我曾经写过一篇 「微信小程序」来了,其中最后一句:"谢天谢地,我居然还是个前端". 这种火爆的新事物总是令人激动,感谢这个时代. 但是,当我真作为开发者 ...

  3. macOS安装「oh my zsh」

    目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』, ...

  4. 报名|「OneAPM x DaoCloud」技术公开课:Docker性能监控!

    如今,越来越多的公司开始 Docker 了,「三分之二的公司在尝试了 Docker 后最终使用了它」,也就是说 Docker 的转化率达到了 67%,同时转化时长也控制在 60 天内. 既然 Dock ...

  5. 企业运营对 DevOps 的「傲慢与偏见」

    摘要:出于各种原因,并非所有人都信任 DevOps .有些人觉得 DevOps 只不过给开发者改善产品提供了一个途径而已,还有的人觉得 DevOps 是一堆悦耳的空头支票,甚至有人认为 DevOps ...

  6. 「前端开发者」如何把握住「微信小程序」这波红利?

    由于前两周一直在老家处理重要事情,虽然朋友圈被「微信小程序」刷爆了,但并没有时间深入了解. 昨天回广州之后,第一件事情就是把「微信小程序」相关的文章.开发文档.设计规范全部看了一遍,基本上明白了「微信 ...

  7. 「花田对」CSDN程序员专场——谁来拯救技术宅!_豆瓣

    「花田对」CSDN程序员专场--谁来拯救技术宅!_豆瓣 「花田对」CSDN程序员专场--谁来拯救技术宅!

  8. Objective-C 实用关键字详解1「面试、工作」看我就 🐒 了 ^_^.

    在写项目 或 阅读别人的代码(一些优秀的源码)中,总能发现一些常见的关键字,随着编程经验的积累大部分还是知道是什么意思 的. 相信很多开发者跟我当初一样,只是基本的常用关键字定义属性会使用,但在关键字 ...

  9. LOJ6003 - 「网络流 24 题」魔术球

    原题链接 Description 假设有根柱子,现要按下述规则在这根柱子中依次放入编号为的球. 每次只能在某根柱子的最上面放球. 在同一根柱子中,任何2个相邻球的编号之和为完全平方数. 试设计一个算法 ...

  10. LOJ6002 - 「网络流 24 题」最小路径覆盖

    原题链接 Description 求一个DAG的最小路径覆盖,并输出一种方案. Solution 模板题啦~ Code //「网络流 24 题」最小路径覆盖 #include <cstdio&g ...

随机推荐

  1. 80x86汇编—分支循环程序设计

    文章目录 查表法: 实现16进制数转ASCII码显示 计算AX的绝对值 判断有无实根 地址表形成多分支 从100,99,...,2,1倒序累加 输入一个字符,然后输出它的二进制数 大小写转换 大写转小 ...

  2. 在 ThinkPad E470 上安装 Ubuntu 16.04 无线网卡驱动

    目录 文章目录 目录 安装 安装 # 查看无线网卡驱动类型,E470 一般为 RTL8821CE lspci # 安装必要工具 sudo apt-get install build-essential ...

  3. 大数据Hadoop集群的扩容及缩容(动态添加删除节点)

    添加白名单和黑名单 白名单,表示在白名单的主机IP地址可以用来存储数据 企业中:配置白名单,可以尽量防止黑客恶意访问攻击. 配置白名单步骤如下:原文:sw-code 1)在NameNode节点的/op ...

  4. 一文搞懂 Spring Bean 的生命周期

    一. 前言 在学习Spring框架的IOC.AOP两大功能之前,首先需要了解这两个技术的基础--Bean.在Spring框架中,Bean无处不在,IOC容器管理的对象就是各种各样的Bean.理解Bea ...

  5. RTMP推流FLV插入自定义SEI数据总结

    一.需求 在RTMP推送的流中添加一个接口,可以添加自定义的数据(一段字节数组). 经过分析,在H264的流中可以通过SEI添加自定义数据,下面是实施的总结 二.实施 1)准备工具 RTMP推流客户端 ...

  6. JDBC的简单使用以及介绍

    JDBC(Java DataBase Connectivity) Java 语言连接数据库 再本模块中,java提供里一组用于连接数据库的类和接口 Java 语言开发者,本身没有提供如何具体连接数据库 ...

  7. LTSC系统,唯一未被微软宣传过,却备受用户赞誉,CPU占用暴降

    微软拥有多款操作系统,如Windows XP.Windows 7.Windows 10以及最新的Windows 11等. 其中,Windows XP和Windows 7因其稳定性和用户友好性而广受好评 ...

  8. 国产大模型参加高考,同写2024年高考作文,及格分(通义千问、Kimi、智谱清言、Gemini Advanced、Claude-3-Sonnet、GPT-4o)

    大家好,我是章北海 今天高考,上午的语文结束,市面上又要来一场大模型参考的文章了. 我也凑凑热闹,让通义千问.Kimi.智谱清言一起来写一下高考作文. 公平起见,不加任何其他prompt,直接把题目甩 ...

  9. 算法金 | LSTM 原作者带队,一个强大的算法模型杀回来了

    大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 时间拉回 2019 年,有「计算机界诺贝尔奖」之称图灵奖获得者公布,深度学习三巨头:Y ...

  10. Django路由层、视图层及模板层

    Django路由层 URL配置(URLconf)就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表; 你就是以这种方式告诉Django,对于客户端发来的某个UR ...