- 主题:粗大-Qt不鸟开源社区了
这部分底层实际是js虚拟机吗?那不是效率越来越差逆行了?
java可是马上aot了
【 在 hgoldfish 的大作中提到: 】
: 因为现在 Qt 重心已经偏向时髦的 javascript 开发了。为此借用 JSON 造了个 QML,相当于 JSON 里面不止有数据,还可以写代码。
:
: 开发的时候,开发者定义数据模型和界面布局。QML 虚拟机监听数据模型的修改,反应到界面上。
: ....................
- 来自「最水木 for iPhone 8 Plus」
--
FROM 124.64.19.*
Qt 已经似乎实现了 JS 的 AOT。我查了一下,以前只有商业用户可用,Qt 5.11 以后,开源社区也可以用了。
Qt 的 QML 我不用,很多特性不清楚。反正跟 js 差不多。一样使用 XMLHttpRequest 搞网络请求。
【 在 KingPower (红宝石) 的大作中提到: 】
: 这部分底层实际是js虚拟机吗?那不是效率越来越差逆行了?
: java可是马上aot了
: - 来自「最水木 for iPhone 8 Plus」
: ...................
--
修改:hgoldfish FROM 112.47.93.*
FROM 112.47.93.*
可怜的Qt! 最早看Qt的文档和例子非常赞,但实际一用,C++还是太烦了,后来Qt升级破坏兼容性,许可证又各种叽歪,公司卖来卖去,还是算了吧,鸡肋。
Gtk也不咋的。现在想写点跨平台GUI还是Tk香?
【 在 eGust 的大作中提到: 】
: Qt offering changes 2020
:
https://www.qt.io/blog/qt-offering-changes-2020: 重点:
: ...................
--
FROM 61.48.62.*
啥都不香,没一个好用的。
随便学一个傍身就好。懂 C++ 的就学 Qt,懂 js 的就 electron,懂 python 的就 pyqt,delphi 也未尝不可。需要写小工具的时候能用上就好。大项目再另外考虑。
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 可怜的Qt! 最早看Qt的文档和例子非常赞,但实际一用,C++还是太烦了,后来Qt升级破坏兼容性,许可证又各种叽歪,公司卖来卖去,还是算了吧,鸡肋。
: Gtk也不咋的。现在想写点跨平台GUI还是Tk香?
--
FROM 112.47.93.*
Web
【 在 Dieken () 的大作中提到: 】
: 可怜的Qt! 最早看Qt的文档和例子非常赞,但实际一用,C++还是太烦了,后来Qt升级破坏兼容性,许可证又各种叽歪,公司卖来卖去,还是算了吧,鸡肋。
:
: Gtk也不咋的。现在想写点跨平台GUI还是Tk香?
:
--
FROM 1.80.221.*
桌面需求始终还是有的,不然 flutter 也不必考虑支持桌面了。虽然个人觉得桌面和手机的交互方式实在差太多了,这个技能有可能点歪了
rust 社区也一大堆轮子正在路上,其中 iced 项目去年得到了资助,还是有市场的
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 桌面开发已经式微。啥方案都是小众方案。别想这些了,咱专门撸 web 吧。
--
FROM 101.98.83.*
你对 javascript 那么有感情,而且还曾经是 delphi 死忠,真的应该去试试 Qt
把 QML 对接到 reactjs 我觉得是可行的。而且估计也不会难。
【 在 eGust (十年) 的大作中提到: 】
: 桌面需求始终还是有的,不然 flutter 也不必考虑支持桌面了。虽然个人觉得桌面和手机的交互方式实在差太多了,这个技能有可能点歪了
: rust 社区也一大堆轮子正在路上,其中 iced 项目去年得到了资助,还是有市场的
--
FROM 112.47.93.*
你可能没理解我为啥推荐用 web 或者技术做 ui,js 并不是决定性因素
首先是不同 dpi、不同平台,native 框架如果从一开始就没考虑仔细,到节后面都是坑。而浏览器引擎团队比单打独斗的个人更有经验,使用者完全不需要考虑这些细节问题
其次是 css 样式和 flexbox 布局方式。如果用 native 控件的话,控件数量本身就有限,想增加一个新控件需要大量工作。如果是框架自己画,那么要么学习框架的 api,要么自己发明一套 dsl,都是需要学习成本的。css 在这方面还是有很大的优势的,不管是布局还是样式,都非常简单易懂。作为对比,android 的 layout weight 不知道是哪个脑残琢磨出来的,以前每次用都得重新读文档。
接着就是工具链,hot module replacement 在 web 开发中也是完全不同的开发方式。不用每次都重新“编译”,或者是刷新页面从头再点一遍。反正我是完全被 hmr 惯坏了,让我再回去闭着眼睛想应该改成什么样,为了避免浪费编译时间,改了一个小地方是不会马上看结果的。另外 hmr 需要 ui 框架的支持,这也得益于 react 推动的 declarative ui。再加上强大的浏览器 devtools,不知道 angular 啥情况,反正 react、vue、redux 之类的扩展都非常好用。
另外我一再强调的是,declarative ui 是 gui 的正确开发方式,传统的库要么再封装一层出来,要么就跟 jquery 一样不再是新项目的主流选择了。观察一下大公司的设计,苹果现在搞了 swift ui 移动、桌面都支持,google 除了 flutter 还有 jetpack。ms 就更不用说了,全面拥抱 react、electron、typescript,比另外两家更彻底。
在这些东西下面,什么语言反倒没那么重要了。比如因为啰嗦我个人非常不喜欢 java,但是 flutter 用的 dart 怎么看都比 JAVAscript 长得更像 java。鸭子类型语言一些非常简单的东西,这边就必须得上设计模式了,这点我就觉得挺恶心的。但是跟人家支持 hmr、方便的 debug 工具比起来,也不是忍不了问题。
最后还有一点就是 web ui 开发起来非常简单,这也是得益于浏览器引擎。比如 gdi 开发自己画 list,首先得算出来每个 item 的高度是多少,然后再根据滚动条位置算该不该显示当前的 item,然后才开始画。再比如语法高亮,原来在 delphi 里用的控件,基本上就是你自己实现一个 lexer,根据控件接口还得额外维护一堆状态。现在 vscode 的语法高亮似乎只要提供一些 regex 就可以了,不需要写代码。再比如过去 native 开发是可以卖皮肤的,现在 web 控件库基本上就是改几个变量的值就完了,很多甚至能在运行时改。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 你对 javascript 那么有感情,而且还曾经是 delphi 死忠,真的应该去试试 Qt
: 把 QML 对接到 reactjs 我觉得是可行的。而且估计也不会难。
--
FROM 101.98.83.*
Android 现在已经被 ConstraintLayout 一统江湖了,width/height 现在通常是 0dp/wrap_content 两个取值。Google 可能很坏,但不蠢,ConstraintLayout 通常不用嵌套就可以实现整个页面的布局,而 flexbox 充其量不过是增强的线性布局,两者不是同一个重量级的。
HTML5 吹了很多年代替原生,两三年前遍地都是要开除原生移动开发程序员的 WEB 前端程序员,现在谁还这么说会被笑死。wx公众号以前用 html5,现在多数已经在改原生控件的小程序。大家都明白了,在移动领域,Web还是做展示好用。果子的通知一发,怕是有不少公司加班加点赶在三月份之前出新版。pc 性能好,倒是 html5 的一个新方向,但这个领域没太多商业价值。
不客气地讲啊,现在整个 Web 前端社区就是在沙子上面堆大楼。js 语言本身太多坑,发明 ts 也改变不了这个事实。而 UI 设计语言 DOM/CSS 本身也是上个世纪遗留下来的老古董。诚然,DOM/CSS 语法简单,容易入门。但 DOM 受限于浏览器兼容性,效率相比原生开发差太多了。JS 框架把 UI 模型转成 DOM 模型配合 CSS 做布局简直是蠢爆了。我仔细研究过,这也是没办法,因为实现 js 的布局管理器是不可能的,浏览器不向 js 提供计算字体渲染引擎的 API,没法计算控件的大小。
现在的原生开发可不是当年的 delphi/gdi/vb6,布局管理器都是标配,像 Qt 显示上万个控件不在话下(对比之下,HTML5卡爆)。而 Qt 的 QML 也是Declarative UI. Declarative UI 是一个大类型,源远流长,非 react 一家独有。反正都是基于 js,你要有兴趣,我建议你试试把 react 挪到 QML 上面。底层用 Qt 渲染,上层用 react/typescript 没问题,你想要的 HMR 一样也可以有。用户点击控件,业务数据变化,js 框架检测 UI 变化,opengl/webgl 渲染动画,多完美。要一毛钱的 html5/css.
【 在 eGust (十年) 的大作中提到: 】
: 你可能没理解我为啥推荐用 web 或者技术做 ui,js 并不是决定性因素
: 首先是不同 dpi、不同平台,native 框架如果从一开始就没考虑仔细,到节后面都是坑。而浏览器引擎团队比单打独斗的个人更有经验,使用者完全不需要考虑这些细节问题
: 其次是 css 样式和 flexbox 布局方式。如果用 native 控件的话,控件数量本身就有限,想增加一个新控件需要大量工作。如果是框架自己画,那么要么学习框架的 api,要么自己发明一套 dsl,都是需要学习成本的。css 在这方面还是有很大的优势的,不管是布局还是样式,都非
: ...................
--
FROM 112.47.93.*