造了个新轮子 ef.qt ,让我们用写前端的手感来写 qt

2019-12-16 17:59:32 +08:00
 ClassicOldSong

https://github.com/TheNeuronProject/ef.qt

用法参考 ef.js ,官网 ef.js.org

跟女票一起造的轮子,codegen 部分是用 js 写的,所以生成出来的东西是纯 C++的,性能超强。有了 ef.qt 以后至少我自己开发跨平台桌面应用的话,electron 可以洗洗睡了。。。

demo app 体积只有 100k 左右,内存占用 10M,相当节省资源。更关键的是,我甚至可以在嵌入式应用里使用 ef.qt 且依旧能够保持极高的性能和极低的占用。对比一下 rn 或者 weex 这样的技术,ef.qt 同样能做到一套代码在多个平台上使用,而且还摆脱了 js runtime 带来的性能问题,使用体验也十分接近前端开发,岂不美哉🤣

7773 次点击
所在节点    分享创造
65 条回复
secondwtq
2019-12-17 00:08:14 +08:00
话说这个 event handler 的代码是写 C++ 还是 JS ...
sugar2101
2019-12-17 00:17:15 +08:00
@secondwtq 好像并不是秀女票->lz 性别
fotile96
2019-12-17 00:25:41 +08:00
假如一开始写的不对,并且 translator 没查出错,之后编译报 error 定位回源文件的时候是不是会让人感到特别头冷..
hlwjia
2019-12-17 00:36:20 +08:00
不好意思,我看到“跟女票一起造的...” 我就把网页关了
ClassicOldSong
2019-12-17 03:09:35 +08:00
@secondwtq 是 C++
ClassicOldSong
2019-12-17 03:12:47 +08:00
@fotile96 模板和生成的 C++代码基本是一对一的关系,所以靠编译器来查错似乎没啥问题(逃
devtiange
2019-12-17 06:51:08 +08:00
@ClassicOldSong 逻辑层还是用 c++ 写的话, jser 表示不会写啊
ClassicOldSong
2019-12-17 08:02:32 +08:00
@devtiange 所以这实际上并没有 target 纯 jser 啊😂
charlie21
2019-12-17 08:08:40 +08:00
所以 像 GUI framework wrapper 这种东西(比如 GTK 有各种语言的 wrapper 比如 GTK# ),都是 code generator 吗?
https://www.gtk.org/language-bindings.php
ProjectSky
2019-12-17 08:23:52 +08:00
跟女票一起造的?????
vlitter
2019-12-17 08:35:09 +08:00
关注一下,等你的文档
userdhf
2019-12-17 09:49:08 +08:00
有女票?果断不看了!
userdhf
2019-12-17 09:50:14 +08:00
为啥感觉你在逆着 wasm 来?。。。
wunonglin
2019-12-17 09:51:27 +08:00
跟女票一起造?举报了举报了
cernard
2019-12-17 09:58:22 +08:00
能否兼容前端工程化的那一套东西?做到 Write once, run anywhere
cernard
2019-12-17 10:01:18 +08:00
如果需要专门学习之后,但无法做到兼容其他终端,那么直接 qml 写桌面程序也不错,或者 winform 之类的。
ClassicOldSong
2019-12-17 10:46:27 +08:00
@cernard 本身就是 qt 的一些简单包装,qt 能做的 ef.qt 就能用。这个毕竟本质上还是 C++项目,所以前端那一套是用不了的。
另外 qml 其实还不如用 electeon,底下都是 js,runtime 甚至还比 v8 慢。。。我在 9900k 上跑 qml 的 demo 连 60fps 都到不了就比较尴尬了
winforms 的话局限性太强了,只有 windows 能用。。。。
ClassicOldSong
2019-12-17 10:47:28 +08:00
@userdhf 这是纯 C++,跟 js 实际上一点关系都没有。。。runtime 没有任何 js,js 只是用来把模板转换到 C++ header 用的
ClassicOldSong
2019-12-17 10:50:16 +08:00
@charlie21 我觉得不是。。这个 wrapper 应该是对 gtk api 的包装而不是 codegen
123s
2019-12-17 10:55:34 +08:00
所以是写给前端用的?

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

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

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

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

© 2021 V2EX