Day 23:优与劣

遇见 JUCE 是个意外。原本对象是 Qt,但因客户硬体限制作罢,开始寻找其他方案。2014 那年,C++ 跨平台开发框架我只认识 Qt、wxWidgets,前者太大,後者我不看好。找了找,不小心撞见了 JUCE。

虽然学习资源不多,但功能满足当时需求。而且编译出来的执行档大小 2MB 不到,用在硬体受限的专案上,恰恰好。Windows 跟 macOS 版都用 JUCE 开发,虽然期间遇到些难题,但 JUCE 的表现出乎意料之外的好。

当时商用授权月月缴,一期 $50 镁不到,大小专案都用得着,产生的连带效益高。让我逢人就说 JUCE 好,真的好。

优点

  1. C++
  2. 高效能
  3. 开放原始码
  4. 程序码品质好

C++ 的学习门槛虽高,但这几年新加入的一些功能,让 C++ 比以前亲民了些。

JUCE 原始设计是处理声音(Audio)。音乐类的软件很在意效能,特别是即时声音处理的场景,即使延迟只多一点点,也可能出现杂音或破音。因此,JUCE 相当重视程序码效能。

JUCE 作者对程序码品质有所坚持,Coding Standards 写明 Coding Style,虽然有些风格与我不同,但龟毛的程度,以及自我要求,是维持高品质程序码的关键。

Julian Storer 在 2015 年的影片中,拿实际案例(Zlib)说明他对程序码的态度:

缺点

  1. 学习资源相对少
  2. 非平台原生控制项
  3. Accessibility 以及 Touch Input 的支援度有改进空间
  4. C++

JUCE 的学习资源还是少,而且至今还没有中文书可以推人入坑...

JUCE 的 UI Controls 不是使用平台原生,因此,控制项的外观以及表现虽然接近系统原生,但不完全一样。评估时,一定要纳入考量。

Accessibility 功能在近期释出的 JUCE 6.1 正式支援,相较於其他产品,时间太晚。另外,Touch Input 装置的处理有些问题,尚未确认新版本是否改善。

C++ 跟其他後起之秀比起来,相对难使。Spotify 开发的 Pedaboard 就不用 C++ 开发,而是把 JUCE 包起来,用 Python 叠加需要的功能。C++ 还是不少人的障碍...

以上,列出我认为评估 JUCE 时,需要考量的面向。


<<:  LeetCode解题 Day24

>>:  Chpater3 今天来学习画一棵树(III)终於让树摇摆起来罗!原来递回与碎形可以塑造大自然之美

【Android-Span】 设置TextView特定位置颜色+插入图片!

Span可以做到的事情有很多,如 -更改特定位置的字体颜色/大小 -新增项目符号 -可点击 -换行等...

Day 6-单元测试 NUnit 更多常用的特性-1 (基础-5)

Setup 和 Teardown 在单元测试的艺术提到:进行单元测试时,很重要的一点是确保之前测试过...

Day22 跟着 spinlock 旋转吧

前言 昨天讲完了最基础的 atomic的资讯,了解了 atomic可以保护某个变数的资料正确性,当有...

输入群组组件 - 金鱼都能懂的Bootstrap5网页框架开发入门

Bootstrap已是目前全球被大量网页开发者使用的一个网页UI框架了,其特色在於使用简单,开发快速...

[Day 25] 杂记 - GL_TRIANGLE_STRIP与GL_TRIANGLE_FAN

各位读者抱歉,今天是很水的一回,因为今天加班,很晚才到家,单纯分享一个之前看到的问题。之前因为时间直...