ℹ️ 關於
「我找不到我夢想中的跑車,所以我自己造了一輛。」 —— 費迪南德·保時捷
GeoChemistry Nexus 是我計劃進行超長期維護的第一個專案——我打算至少在未來五年內持續更新它。
有趣的是,它最初被命名為 Geo-Thermometer。起初,我只是想開發一個與地質溫度計相關的基礎程式,以便於計算和繪圖。然而,隨著專案的進展,特別是在繪圖模組完成後,我突然意識到可以實現一個更宏大的目標。因此,該專案在概念和功能上都得到了擴展,從 Geo-Thermometer 演變為 GeoChemistry Nexus。
在我看來,地質學和地球化學是相對小眾的學科。在這個領域,我發現許多軟體工具要麼年久失修早已停止更新,要麼雖然還在更新但門檻極高,阻礙了許多研究人員。此外,我在研究中也看到了一些不夠嚴謹的做法——例如,有人在繪製地質圖底圖時使用 CorelDRAW 粗略勾勒形狀。雖然視覺上差別不大,但從科學研究的角度來看,這種做法違背了嚴謹的科學精神。
所以我透過:為什麼不自己開發一個工具呢?
一個可以整合大量地質和地球化學圖表模板,支援各種地質溫度計/壓力計計算,並擴展到地球化學計算和當前流行的機器學習功能的工具。如果沒有現成的模板,它提供視覺化繪圖工具以便於建立和分享。輔以現代化的介面設計和多語言支援,它允許研究人員在一個軟體內完成大部分科學繪圖和計算的基礎工作。
視覺化介面可以顯著降低操作難度,而多語言支援降低了學習成本;內建豐富的模板和長期更新將使該程式成為真正有價值且可持續的科學研究工具。
巧合的是,我熟悉 C# 和 Python 等程式語言,並且掌握 WPF 等開發技術。因此,在 2024 年 12 月,我開始開發 Demo。在最初的技術選型階段,我認真考慮過:什麼語言和架構最能實現這一目標?
我的第一個想法是 Python——它可以讓我快速原型化,這對開發者來說是個好消息。然而,從使用者的角度來看,它有致命的缺陷:首先,執行效率低(雖然資料量小時影響不大,但仍有性能差距);其次,它帶來了巨大的安裝包。我曾經用 Python 重構了一個最初用 WPF 編寫的簡單程式。即使打包在一個全新的虛擬環境中,成品也有數百 MB,而 .NET 打包的程式只有十幾 MB——差距巨大。強迫使用者為簡單的功能忍受數百 MB 甚至 GB 的安裝和複雜的配置並不是最佳選擇。
然後我考慮了 Web 開發。優點顯而易見——無需安裝,即開即用。但問題在於:一方面,我對 Web 技術的掌握不夠全面;另一方面,伺服器的長期高昂成本超出了我個人的維護能力。因此,我最終將重心轉回了用戶端開發。
用戶端開發有許多技術方案,但與基於 C++ 的 QT 相比,我更熟悉 .NET。結合 .NET 的高執行效率和 Windows 的普及性,我最終選擇 .NET 作為主要開發平台。最初,我也考慮使用 Avalonia 來實現對 Windows、Linux 和 MacOS 的跨平台支援,但在開發過程中,我發現一些專案依賴項與 Avalonia 不相容,導致遷移成本非常高。以我個人的力量,很難在早期階段重構這些模組。因此,至少在現階段,我的工作仍然集中在 Windows 平台上,跨平台版本可能會在未來的某一天實現。
聯絡我
如果你對軟體開發感興趣並願意與我合作,或者希望提供建議和反饋、圖表模板、演算法支援,甚至進行商業合作,請隨時透過 maxwelllei@qq.com 聯絡我。
如果你在使用軟體時發現任何不足或問題,請隨時提供反饋。由於軟體功能日益增加且複雜,測試很難覆蓋所有情況,可能會有遺漏或不準確之處。我將盡力修正和優化,為你提供更穩定可靠的使用者體驗。