[Feelings & Sharing] 如果使用Rust开发桌面UI性能会怎么样
Tofloor
poster avatar
Vn
deepin
2022-07-01 20:43
Author

话说Rust在内存管理方面做的很好,deepin官方有没有使用Rust开发桌面UI打算,有赞同的老铁吗?

Reply Favorite View the author
All Replies
joo
deepin
2022-07-01 20:56
#1

提升的性能微乎其微,但开发的难道带来的成本增大几倍。举例,你周末去5公里外的餐馆吃饭,要坐波音787一样的道理。

Reply View the author
zccrs
deepin
2022-07-01 21:02
#2

不怎样,UI的性能不在于编程语言

Reply View the author
joo
deepin
2022-07-01 21:07
#3

目前无论是qt还是gtk都是C++开发,除了C++,所有的linux桌面开发语言都是对qt或gtk的绑定,python、js、go、dart、ts、C#,Rust也一样,Rust只是调用qt或gtk的UI API,所以对UI没有任何性能提升,反过来Rust的学习成本非常高,对linux桌面应用开发更不利,会劝退很多想开发linux桌面应用的人。

Reply View the author
Yurii.Huang
deepin
2022-07-01 21:12
#4

rust 只有语言绑定的UI库,说白了就是套壳。

Reply View the author
神末shenmo
Moderator
Spark-App
2022-07-01 22:57
#5

我确实不会rustdoubt

Reply View the author
Maicss
deepin
2022-07-01 23:10
#6

相对于C++来说,Rust的优势不在于性能吧

Reply View the author
诗羔羊
deepin
2022-07-01 23:50
#7

rust只是在内存管理方面有所改进吧,不过那个粑粑一般的语法,为了不同而不同的东西,真有点让人恶心。

Reply View the author
joo
deepin
2022-07-02 00:58
#8
诗羔羊

rust只是在内存管理方面有所改进吧,不过那个粑粑一般的语法,为了不同而不同的东西,真有点让人恶心。

也不能这样说,有可取之处,是一门优秀的开发语言,但学习曲线非常陡峭是真的。

Reply View the author
black_white_bear
deepin
2022-07-02 04:19
#9

用rust开发GUI,是一个不错的选择

  • 但Rust目前没有很好的GUI框架,值得推荐的是GTK和slint;GTK+Rust已经可以找到很多不错的开源APP了;slint采用的声明式UI语法,采用QT作为后端渲染,有可选的免费闭源许可和LGPL许可
  • 过去桌面开发一般都用C++(Linux);其中内存管理是一个问题,Rust也不能完全解决,但却是目前所有的高性能方案中最好的
  • Rust目前最为人吐槽的,是其内存管理方式,这需要使用者重新审视代码的执行逻辑,只要能够迈过这一个坎,就没问题
Reply View the author
ydstoi
deepin
2022-07-02 05:40
#10
joo

目前无论是qt还是gtk都是C++开发,除了C++,所有的linux桌面开发语言都是对qt或gtk的绑定,python、js、go、dart、ts、C#,Rust也一样,Rust只是调用qt或gtk的UI API,所以对UI没有任何性能提升,反过来Rust的学习成本非常高,对linux桌面应用开发更不利,会劝退很多想开发linux桌面应用的人。

也不是都调gtk或qt吧,虽然我见识少,但我知道go的fyne就是自绘的,只需要OpenGL。Java早期swing也都是自绘的,后面有没有改就不知道了。

Reply View the author
joo
deepin
2022-07-02 20:14
#11
black_white_bear

用rust开发GUI,是一个不错的选择

  • 但Rust目前没有很好的GUI框架,值得推荐的是GTK和slint;GTK+Rust已经可以找到很多不错的开源APP了;slint采用的声明式UI语法,采用QT作为后端渲染,有可选的免费闭源许可和LGPL许可
  • 过去桌面开发一般都用C++(Linux);其中内存管理是一个问题,Rust也不能完全解决,但却是目前所有的高性能方案中最好的
  • Rust目前最为人吐槽的,是其内存管理方式,这需要使用者重新审视代码的执行逻辑,只要能够迈过这一个坎,就没问题

实质上还是gtk或qt,作为项目来说选什么都可以,但作为deepin的dtk的后端,需要谨慎评估。

Reply View the author
joo
deepin
2022-07-02 20:24
#12
ydstoi

也不是都调gtk或qt吧,虽然我见识少,但我知道go的fyne就是自绘的,只需要OpenGL。Java早期swing也都是自绘的,后面有没有改就不知道了。

这里的作者是说:“deepin官方有没有使用Rust开发桌面UI打算”,作为系统级别的gui,可以说除了qt或gtk没有其他选择,qt或gtk有20年的历史,第一非常稳定,第二非常完善,第三这两个框架都不断迭代(跟X11不一样,X11整个架构没变过),架构本身也非常优美,第四包含了方方面面非常完整。其他gui很多,远远不止你提的,但与qt和gtk差距很远,无论是架构本身还是提供的api的完整性(比如很多gui打印的底层都还没有)。

Reply View the author
joo
deepin
2022-07-02 20:26
#13
ydstoi

也不是都调gtk或qt吧,虽然我见识少,但我知道go的fyne就是自绘的,只需要OpenGL。Java早期swing也都是自绘的,后面有没有改就不知道了。

Java的swing或JavaFX,作为操作系统级别的gui那是开玩笑。

Reply View the author
joo
deepin
2022-07-02 20:44
#14

帖子说:“deepin官方有没有使用Rust开发桌面UI打算“,dtk的架构师除了懂技术还要懂妥协,如果选用一种非常激进的技术,会造成新的版本5~10年都无法推出,因为Rust的学习曲线太陡,整个团队能能熟练精通Rust需要2~3时间(不是懂一点语法,是真正能快速排错、接口优美),你说我把整个团队开除,重新招聘,脑子进水的人才会这么干,深度2就倒闭了,好吧,我不解雇团队,招聘一些Rust的牛人回来总可以吧,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我可以打保票,这个帖子的楼主的Rust水平可能连半桶水都不到,招个屁,Rust太新了,很难招到精通的人,招到一两个由于他们吃香,你也养不熟,不出一年就去更高工资的公司了。

Reply View the author
joo
deepin
2022-07-02 20:53
#15

深度养不起平均年薪50~80万的程序员(注意是平均),要面对现实,也就是架构都需要考虑能招聘到大量工资不高的软件工程师。顶级公司不用考虑这些,比如谷歌,我自己砸钱下去开发自己用的语言,但,前提是你兜里至少要有100亿美元现金才行啊。

Reply View the author
linxuan
deepin
2022-07-03 00:23
#16

rust是真的难,我在开始学rust,其对于类型还有内存管理的确优秀,但是如果用它来开发,就不得不面对很多用cpp开发的时候不存在的问题。但是总之我对于Linux内核用rust开发是乐观的,但是桌面app还是得考虑普适性,所以现阶段cpp+qt仍然是最优解

Reply View the author
joo
deepin
2022-07-03 23:13
#17
linxuan

rust是真的难,我在开始学rust,其对于类型还有内存管理的确优秀,但是如果用它来开发,就不得不面对很多用cpp开发的时候不存在的问题。但是总之我对于Linux内核用rust开发是乐观的,但是桌面app还是得考虑普适性,所以现阶段cpp+qt仍然是最优解

这点赞同,linux内核移植到Rust会比桌面更快到来。

Reply View the author
joo
deepin
2022-07-03 23:29
#18

Rust将来是否可以大获成功,其实关键不在Rust的性能多好(已经证明性能、内存管理是优秀的),而在于社区过于偏激,这是获得更多人使用的绊脚石。事实很多把Rust挂在嘴边的人,并没有去Rust社区经常逛逛,对Rust并没有客观和全面的认识(包括技术和非技术的)。

Reply View the author
btxhh
deepin
2022-08-14 06:32
#19

rust有啥好的GUI库吗?不还是要qt…………建议不要只看别人说,敲拼音比敲代码简单很多,自己写一写

rust就知道了。

Reply View the author
btxhh
deepin
2022-08-14 06:35
#20
诗羔羊

rust只是在内存管理方面有所改进吧,不过那个粑粑一般的语法,为了不同而不同的东西,真有点让人恶心。

真的会看吐,比起rust,c++真的过于优美

Reply View the author