2008-12-11 41 views
20

我很好奇Boost。但我想問:Boost爲C++開發人員學習有多重要?

  • 它是多麼重要,使努力學習增強?
  • 在跳躍Boost之前應該具備哪些先決條件?

爲什麼我很想知道Boost是很多人都在討論Boost在IRC的頻道和這裏在StackOverflow。

回答

36

我認爲任何認真考慮將C++發展作爲職業生涯的人都應該學習Boost,並學習它。一旦你進入嚴肅的編程階段,你會意識到這些庫可以帶來多大的收益,以及它們可以爲你帶來多大的生產力。它們不僅是跨平臺的,而且一旦進入大量數據處理階段,特別是數學庫看起來就像上面的禮物。

+9

Boost(開始)將C++從它在C(很漂亮的彙編語言)中的基礎中解放出來,並且幫助它達到其他語言在很長一段時間內(Java/Python/Ruby/Lisp /等)的可用性。 – 2008-12-11 18:09:56

2

Boost擁有豐富的庫,您可以免費獲得它。獲取boost庫中提供的所有庫,以便在需要時可以使用它們。關於學習,請選擇包含在C++ 0X,以便您可以使用它,編譯器即將支持。關於特定的庫可在您需要時進行學習。

1

通過大量關於C++的問題來判斷(科學地說:-),這些問題的答案沿着「Use Boost :: SomethingOrOther」的最高評分答案,我認爲這非常重要。

從C到Java而不是C++的東西,是Java中提供的類的數量。 Boost幾乎設法說服我回去,除了現在我已經沉浸在Java是通用語言的Web服務中。

13

作爲一名遊戲開發人員,我曾因有多少人不知道Boost而感到震驚。我已經提到了它在各種遊戲工作室中的聯繫方式,不僅它經常不被使用(許可或移植它是一個問題?),但許多人甚至沒有聽說過它。這讓我相信,從職業角度來看,學習Boost並不重要,但從個人發展的角度來看,這絕對是至關重要的。 :)

+0

True Boost似乎被認爲是衆多職業遊戲程序員中的一些神話般的野獸。太糟糕了,更多的人不使用它。 – 2008-12-11 08:28:40

+0

在我工作的遊戲公司,確實是一個授權問題。儘管助推許可證中沒有任何內容阻止我們開發遊戲,但我們沒有針對未來有關其使用的訴訟提供保險。 所以我們得到了有效的支付,反覆重新發明輪子,很差。 – 2008-12-11 15:27:29

4

這是非常重要的,特別是來自Boost的許多圖書館正在進入C++標準 - 通過使用Boost,您可以早日瞭解標準的外觀(shared_ptr,任何人?)。此外,即使您不使用它們,Boost庫也會寫得非常好,而且通常很有趣。他們做了一些非常先進的C++。

6

至於任何先決條件,你應該熟悉STL,模板的一些經驗不會受到傷害。我總是驚訝於有多少C++程序員實際上不使用STL或模板。

1

請記住,boost只是一組庫,可用於提高生產力(停止重新發明輪子)。

根據所有的說法,它們都是很好的書寫和使用的技術,你可能不會(即明確地不會)自己想出來。如果你的目的是通過源代碼來學習先進的C++技術,那麼就會讓自己失望,但我想我會買一本好書。

另一方面,如果您只是想使用某些庫函數來提高生產力,請考慮您的選項。你在開發什麼,你需要什麼類型的庫?

我們公司擁有廣泛使用boost的跨平臺產品,但我們也有僅使用一些boost的窗口產品,但大多數情況下依賴於Microsoft的庫。 MS庫的質量很好,並且具有(imo)出色的文檔(MS成功的一部分在於使得對於第三方開發人員來說,儘可能容易地編程窗口)。我特別提到了MS,因爲它們提供了許多類似於boost的庫。我們還使用了許多其他更專注的第三方庫(即在密碼學等一個領域提供功能的庫)。

4

我覺得提升是一種提高生產力的手段,我認爲我不會接受一個不使用提升的C++商店的工作。

3

語言是一種工具。如果它能幫助你完成某件事,請使用它。

我很厭惡這些宗教。 「我應該使用Boost嗎?如果我不使用Boost,這是否意味着我不是真正的C++程序員?其他C++程序員會喜歡我嗎?」請。任何關心你是否使用Boost或任何其他庫的C++程序員都是一個心胸狹隘的混蛋,你應該與他無關。

相反,去找一個聰明,開明的人,告訴你Boost和誰知道什麼是其他圖書館在他自己的工作中如何幫助他。他甚至會承認,有時候你不需要那些圖書館。

備用答案:自己重新實現Boost或STL的一部分是一個很好的方法來保持您的編程能力。換句話說,一個C++程序員因爲沒有他的圖書館而無法回到C是一個軟弱的程序員。

相關問題