我不確定問題的標題是否正確,但請閱讀問題。爲什麼我們需要依賴管理的複雜性
我一直工作在C/C++對我的工作生活中的大部分(近11年)。我們只有C/C++源文件/頭文件,並且所有依賴項都由Makefiles管理。事情很簡單,易於管理。
過去1.5年我已經轉移到Java域。我覺得非常惱火與任何新工作的最困難的方面是依賴經理。例如maven,leiningen,builder,sbt等等等等。當我從開源世界下載任何新東西時,只需要花費大量時間來設置編譯,構建和運行環境,就可以使用它。當我使用eclipse時也是如此。爲什麼不能將所有的依賴關係與要下載的軟件一起放置?爲什麼諸如maven,leiningen等的工具必須單獨建立互聯網來下載依賴關係。我知道maven構成一個本地存儲庫,並且應該能夠在本地找到依賴關係,因爲它總是下載整個互聯網,但爲什麼會使用這個模型。我位於防火牆之後,並非一切都可以訪問,並且這些工具無法下載依賴關係。我相信在大多數工作環境中都存在同樣的情況。
最近,我開始使用Clojure,和男孩它已經爲Clojure的獲得日食配置有疼痛感。 Leiningen應該是一些必須用於任何clojure開發的魔法。有時候感覺學習leiningen比學習clojure概念更重要。我爲leiningen下載了所謂的「獨立」jar文件,因爲「自我安裝」不適合我。但它騙了我。只要我運行'lein'命令它正在互聯網連接,並試圖下載一些東西。爲什麼?它甚至不會打印幫助菜單,而無需連接互聯網。爲什麼?我不能繞過我的互聯網防火牆來滿足它的要求,因爲我不知道,也沒有人能告訴我這個傢伙想要什麼。根本沒有別的辦法。
而且每個人似乎都在發明自己的。 Java有螞蟻,這很簡單,去了Maven,一些項目使用基於Ruby的Builder,Clojure有leiningen,Scala有。去有別的東西。爲什麼?爲什麼我們需要在一個已經充滿複雜性的世界中增加複雜性。爲什麼不能有一個工具。
所有您在Java技術方面的專家,請原諒我的咆哮。我相信這個問題將會由於一些不努力去理解事情的人而被低估和封閉。但請相信我,我已經花了足夠的時間與這種不必要的複雜性作鬥爭。
我只是想知道別人是如何解決這個問題,或者我是唯一一個不幸面臨這些問題。
「我確信這個問題將會由於一些不努力去理解這些事情的人而被低估和關閉」。我們回答具體的問題。我相信這是很痛苦的,但是你需要將你的問題形成一些有可能被回答的問題。這,不能。 – Dmitry 2013-03-06 10:05:38
問題是爲什麼我們需要這種複雜的依賴關係管理,而且我是唯一面臨這些問題的人。如果其他人正面臨這些問題,這件事可以做些什麼。謝謝你的評論。 – weima 2013-03-06 10:13:11
有許多問題可以解決,但太多問題無法解決。例如,如果您嘗試在不包含的情況下使用std :: cout <<字符串,則C++會吐出垃圾。再次,這更像是一個哲學問題,複雜性在這裏停留。 –
Dmitry
2013-03-06 10:15:21