分享一下新发现的 go 语言 GUI 框架 cogentcore

2 天前
 itakeman

GitHub 上这么介绍的:一个免费的开源框架,用于构建强大、快速、优雅的 2D 和 3D 应用程序,这些应用程序可在 macOS 、Windows 、Linux 、iOS 、Android 和 Web 上运行,只需一个 Go 代码库,即可编写一次代码,随处运行。

我看有一定的潜力,希望能替代 fyne ,感觉写出来的界面会比 fyne 、GioUI 美观很多

https://github.com/cogentcore/core

4178 次点击
所在节点    程序员
51 条回复
anivie
2 天前
@iorilu 长期迭代 pyqt ?
mogita
2 天前
多一个选择永远不是坏事。
itakeman
2 天前
@tempvar 你也觉得这个框架潜力不错吧
bbbblue
2 天前
如果是要长期主力写还是 electron 吧。。
之前学 maui 的经历告诉我。。移动跨平台可能可以用。。 但是移动+桌面端跨平台 快跑
用浏览器吧 浏览器是你最好的朋友 就是他比较吃内存。。。
Leon6868
2 天前
看 UI ,这个技术栈是 go+flutter 吧
可以看看我前几个月发的讨论贴 https://v2ex.com/t/1142560 ,个人认为 webview 就是 GUI 最优解
itakeman
2 天前
@Leon6868 不会 web 技术,还是喜欢原生
itakeman
2 天前
@Leon6868 不是 flutter
Leon6868
2 天前
@itakeman #27 还真不是,是自绘,这套搞不好还能用在嵌入式上,虽然现在性能不太行,但是勇气可嘉
Leon6868
2 天前
@itakeman #27 甚至有路由系统,玩真的!这回真的是小瞧它了。
我觉得加一个 DSL ,模仿一下 jsx 语法,会很香
dearmymy
2 天前
@fds ui 就是适合用协程,以前写 mfc 各种回调烦死了。
itakeman
2 天前
@Leon6868 目前 fyne 写的项目,用这个重写,小了三倍大小,我感觉还行。我我也在观望后续
itakeman
2 天前
kuanat
1 天前
是不是该用跨平台框架来写 ui 是个哲学问题,即便你的立场为是,还是要继续抉择,要每个平台都用相同的(非原生风格)自定义 ui ,还是要每个平台上用原生的 ui 。基本上后者都是走浏览器了,因为没人或者团队能承担得起这样的维护成本。

在跨平台、自绘 ui 这个场景中,本质上要看在各个平台上底层用的什么 api ,楼上有人提到 go 的 goroutine 与系统线程 pinning 相关的硬伤,这个确实无解,因为现在的操作系统都是同样的 ui 线程逻辑。

这种项目最大的困难是长期稳定地维护下去。而且通常来说好看、小巧和兼容性强是不可兼得的。以 win 为例,想要小就必然对接 win32 api ,用这个写现代界面,光一个 dpi 自适应就头大。到了 linux 又会面临是 gtk/qt 还是协议层造轮子,qt 因为授权大部分时间会被排除在外,如果是直接 wayland 协议开始写,且不说什么消息循环都要手动,就天天跟着上游更新都是很大的工程量。

当然如果写的项目不需要长期维护,这类 ui 框架还是很有市场的。
humbass
1 天前
没有类似 html 中的类似 flex 的布局,写个界面是不是很蛋疼。
iorilu
1 天前
@anivie 当然, qt 都 20 年了吧, 可以说 qt 是唯一的长期稳定跨平台 gui 框架

真做什么商业软件, 用这个肯定没错, 当然 pyside 一样, 我是指 qt 这一类东西

当然会 c++直接用原生 qt 也行
rekulas
1 天前
我觉得很有意义,说 web 一把梭的写自用工具确实方便,但是现在随便什么小工具都用 electron 之类的写,开发速度确实快界面也好看,但说实话都反胃了,一个 json 序列化小工具都能占几百 M 内存,遇到这种我连安装的欲望都没有,而且很多软件体验非常差(相比原生开发,感觉 electron 系的出 bug 概率要大不少),包括大厂的-例如钉钉
qt 虽然稳但是实在太重了,而且要做出好看点的 ui 难度可不小
webview2 是个好东西但是难以跨平台,而且对环境有要求

如果是做一些侧重后端处理,前端较为简单的软件,能跨平台的自绘 UI 库是个很不错的选择
baton
1 天前
fyne 性能不行,多行文本框内容一多卡得很,我用 gotk3 速度快很多
dimwoodxi27
1 天前
@rekulas 现在部分人就喜欢用 webview 到处生产垃圾,性能完全没法和自绘 UI 比,但不管什么需求条件就是一股脑吹 webview ,代码注入 内部资源篡改 CPU 和内存调度完全不合理等这些问题是根本不会去看,最经典的口头禅就是为了效率,为了效率拉一坨屎
xxlsize
1 天前
@rekulas wails 打包出来大小还接受
tempvar
1 天前
@itakeman 是的,是两父子在搞的,我之前好像在那儿看过一个他儿子的分享,说要把这个当作以后的事业

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1162643

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX