[253] 那一年,我與 JUCE 相遇

I’m Sam
I’m Sam
Mar 31, 2019 · 3 min read
JUCE is a cross-platform C++ GUI framework

約莫 2014 年底,JUCE 當時的版本是 3.x,公司還沒被做樂器的 ROLI 收購。當時因應一個專案需求而評估開發框架時,無意間發現 JUCE 這個 C++ 跨平台開發框架。當時的需求是支援 Windows & macOS,而且編譯後的執行檔大小有 10MB 的限制。瞄了一下 Qt,好像有點難度;試了一下 JUCE,輕鬆達標。就決定是你了!

這決定看來輕鬆,但其實不容易。首先,談到跨平台 GUI 應用程式開發,Qt 是多數人的「首選」。Qt 給人的印象是,技術成熟、開發者社群廣大、文件豐富、參考資源不計其數(書、文章、影片、課程)。

跟 Qt 相比,JUCE 在台灣的能見度幾乎為零,除了官方的英文文件,以及少許的文章及 YouTube 影片外,學習資源少得可憐。再加上多數找得到的資源,多以「如何開發音樂類型的應用程式或外掛」為主,音樂領域以外的應用得靠自己摸索。

公司開業以來最大的軟體開發案,在評估不到兩個禮拜就決定以 JUCE 做為主要開發工具,這風險不低吶(老大說他不懂,由我全權決定)。難道是梁靜茹給的「勇氣」?

當然不是!風險雖高,但評估以下幾點後,確認風險在我的守備範圍內:

  1. Open Source
  2. Just C++ and platform specific codes
  3. JUCE code base quality is great and easy to read

Open Source

類似 Qt,JUCE 採用雙授權:GPLv3 and Commercial License。開源碼專案可以自由修改 JUCE 原始碼,完全免費。也可以購買商業授權,我先前有一篇文章介紹 JUCE 5 在授權上的改變

JUCE C++ and Platform Specific Code

當年堅持使用 JUCE 的理由,原始碼開源是我很看重的一點。背後的理由是:既然是我熟悉的 C++ 程式碼,有什麼問題自己動手改即可,有什麼好怕的?雖然之後遇到幾次必須解析我不熟悉的 Objective-C 程式碼,但還在可控範圍。

Code Quality

最後一點,JUCE 老爸 Jules Storer 對程式碼品質的要求極高,可讀性是很重要的考量,因此熟悉了 JUCE 框架的設計架構後,多數程式碼皆能讀懂。JUCE 沒有太多 Template 魔法,閱讀以及修改容易。

公司幾年前徵資深工程師時,有位看來誠意十足的應徵者,因為我們堅持使用 JUCE 這個名不見經傳的開發框架決定不來了。當時他極力推薦我們改用 wxWidgets 這個開源跨平台框架,但被我拒絕了(我不喜歡 wxWidgets 的架構,其程式碼品質也沒有 JUCE 高)。

JUCE 專案這幾次的改版其中一個重點是導入 C++11 以及後續的標準規格,有機會簡化許多組件的設計。JUCE 初版於 2004 釋出,已經十五年了。許多碼雖不至於年久失修,但導入新的 C++ 標準規格,我相信對專案未來的發展有相當正面的影響。


Originally published at samtsai.org on March 31, 2019.

JUCE Tips

A place you don’t want to miss while learning JUCE

I’m Sam

Written by

I’m Sam

Developer | CTO of I³D Technology Inc. | Blog at https://samtsai.org | Newsletter: http://thecpp.news | WorkFlowy Tips: https://workflowy.tips

JUCE Tips

JUCE Tips

A place you don’t want to miss while learning JUCE

I’m Sam

Written by

I’m Sam

Developer | CTO of I³D Technology Inc. | Blog at https://samtsai.org | Newsletter: http://thecpp.news | WorkFlowy Tips: https://workflowy.tips

JUCE Tips

JUCE Tips

A place you don’t want to miss while learning JUCE

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store