Выбор между ACE и Boost для обучения - PullRequest
1 голос
/ 26 ноября 2009

Я - программист среднего уровня C ++ и проделал некоторую работу, используя ACE, теперь я хочу тщательно изучить одну из этих библиотек, чтобы продолжить свою карьеру. Вот почему мне нужна ваша любезная помощь, чтобы принять решение, то, что я должен изучить в первую очередь. А также, пожалуйста, учтите, что я должен быть опытным сетевым программистом и разработчиком протокола. Спасибо за ваше время и добрые ответы заранее.

1 Ответ

5 голосов
/ 26 ноября 2009

Возможно, это не тот ответ, который вы ищете, но я настоятельно рекомендую вам не слишком искусственно ограничивать себя, когда речь идет о карьерных целях. Выясните, как долго вы ожидаете, что ваша карьера программиста продолжится, а затем спросите себя, действительно ли вы (а) видите, что занимаетесь сетевым программированием только в течение этого времени, и (б) считаете ли вы, что вы действительно и действительно считаете, что одна библиотека Если вы выберете свои глубокие знания, вы сможете удовлетворить потребности, которые у вас есть сейчас, до конца вашей карьеры, без стагнации вашей карьеры.

Что поддержит вашу карьеру программиста в долгосрочной перспективе, это не глубокие знания одной или двух библиотек, а ваши общие способности программиста. Библиотеки - это инструменты (если вы не являетесь разработчиком библиотеки), точно так же, как языки программирования являются инструментами (если вы не являетесь разработчиком языка), и одна из отличительных черт хорошего программиста - это ее способность выбирать подходящий инструмент для выполнения задачи.

Учитывая все это, я рекомендую каждому программисту на C ++, по крайней мере, быть знакомым с фактом существования boost и некоторыми из основных библиотек, такими как библиотека интеллектуальных указателей, регулярные выражения и т. Д. Я бы не ожидал, что кто-то будет работать для меня, чтобы быть экспертом во всех аспектах Boost, но я ожидаю, что даже довольно неопытные программисты C ++ будут знать, где они могут его найти, и что им будет лучше использовать код из Boost, а не пытаться, скажем, писать свою собственную объединенную память распределитель. Примеры, которые я привел, могут не выглядеть так, как будто они непосредственно применимы к сетевому программированию в самом узком смысле, но они, безусловно, понадобятся в большинстве программ нетривиального размера.

Еще одна веская причина, чтобы не отставать от Boost, заключается в том, что многие методы, которые в конечном итоге превратят / могут превратить в стандартную библиотеку C ++, происходят из Boost. Отслеживание того, куда движется Boost, позволит вам следить за некоторыми событиями в сообществе C ++, так как новые идиомы использования все еще разрабатываются в C ++; язык и его каноническое использование не являются «фиксированными», по крайней мере, на данный момент, и, опять же, это то, с чем вам придется идти в ногу, если вы планируете более долгую карьеру программиста на C ++.

...