2008-12-11 43 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是一个软弱的程序员。

相关问题