2008-12-11 13 views

Respuesta

36

Creo que cualquiera que esté considerando seriamente el desarrollo de C++ como una carrera profesional debe aprender Boost, y aprenderlo bien. Una vez que ingresas a la programación seria, te darás cuenta de lo beneficiosas que pueden ser estas bibliotecas y de lo mucho más productivas que pueden hacerte. No solo son multiplataforma, sino que una vez que ingresas en el crujido de datos con grandes números, las bibliotecas de matemáticas especialmente parecerán un obsequio de arriba.

+9

Boost (comienza a) levanta C++ de sus raíces en C (ensamblador bonito) y lo ayuda a alcanzar la usabilidad que otros lenguajes han disfrutado durante bastante tiempo (Java/Python/Ruby/Lisp/etc.). –

2

Boost tiene un amplio conjunto de bibliotecas que obtienes de forma gratuita. Obtén información sobre todas las bibliotecas disponibles en boost para que puedas usar una si es necesario. Acerca del aprendizaje, selecciona las bibliotecas que se incluyen en C++ 0X para que pueda usarlo y pronto los compiladores lo admitirán. Acerca de la biblioteca en particular, aprenda cuando lo necesite.

1

Juzgando (científicamente :-) por la gran cantidad de preguntas sobre SO sobre C++ que tienen las mejores respuestas en la línea de "Use Boost :: SomethingOrOther", diría que es muy importante.

Lo que me llevó de C a Java en lugar de C++, fue la cantidad enorme de las clases suministradas en Java. Boost casi logra convencerme de que regrese, excepto por el hecho de que ahora estoy sumido en servicios web donde Java es la lengua franca.

13

Como desarrollador de juegos, me ha sorprendido la cantidad de gente que no sabe acerca de Boost. Lo mencioné a los contactos en varios estudios de juegos y no solo no se usa con frecuencia (¿es una licencia o un problema que lo represente?), Pero muchas personas ni siquiera han oído hablar de él. Esto me lleva a creer que desde una perspectiva profesional, no es realmente crítico aprender Boost, pero desde el punto de vista del desarrollo personal, definitivamente es vital. :)

+0

True Boost parece ser considerado como una bestia mítica entre muchos programadores de juegos profesionales. Lástima que más personas no lo usen. –

+0

En la compañía de juegos en la que trabajé, de hecho era un problema de licencia. Si bien nada en la licencia de impulso nos impidió desarrollar juegos con él, no estábamos asegurados contra futuros litigios potenciales con respecto a su uso. Así que nos pagaron efectivamente para reinventar la rueda repetidamente, mal. –

+0

Le pregunté a un programador de juegos amigo mío si utilizó el impulso hace aproximadamente un año, a lo que respondió: "impulsar? Que es principalmente en el lado de la interfaz de usuario de las cosas, nunca lo usé". : P – radman

4

Es muy importante, especialmente porque muchas bibliotecas de Boost ingresan al estándar C++. Al usar Boost, se obtiene una visión temprana de cómo se verá el estándar (shared_ptr, ¿alguien?).

Además, incluso si no los usa, las bibliotecas de Boost están muy bien escritas y, a menudo, interesantes de ver; hacen algo de C++ realmente avanzado.

6

En cuanto a los requisitos previos, debe estar familiarizado con el STL y la experiencia de las plantillas no le haría daño. Siempre me sorprende la cantidad de programadores de C++ que no usan STL ni las plantillas.

1

Recuerde que boost es solo un conjunto de bibliotecas que se pueden usar para mejorar la productividad (deje de reinventar la rueda).

Son, por todas las cuentas, bien escritas y usan técnicas que usted podría no (por ejemplo, no lo hará) pensar por su cuenta. Si su intención es buscar en el código fuente para aprender técnicas avanzadas de C++, entonces noquee, pero creo que compraría un buen libro.

Por otro lado, si solo desea utilizar algunas funciones de la biblioteca para mejorar su productividad, considere sus opciones. ¿Qué estás desarrollando y qué tipo de bibliotecas necesitas?

Nuestra empresa cuenta con productos de plataforma cruzada que utilizan el impulso de manera exhaustiva, pero también contamos con productos de solo Windows que utilizan algún impulso pero, en su mayor parte, confían en las bibliotecas de microsoft. Las bibliotecas MS son de buena calidad y tienen (una) excelente documentación (parte del éxito de MS radica en hacer que Windows sea tan fácil de programar como sea posible para desarrolladores de terceros). Menciono a MS específicamente, ya que ofrecen una amplia gama de bibliotecas para muchos fines, como impulsar. También utilizamos muchas otras bibliotecas de terceros más enfocadas (es decir, bibliotecas que brindan funcionalidad en un área como la criptografía).

4

Creo que impulsar es tal un potenciador de la productividad que no creo que acepte un trabajo en una tienda de C++ que no utiliza boost.

3

Un idioma es una herramienta. Úselo si lo ayuda a lograr algo.

Estoy tan harto de estas religiones. "¿Debo usar Boost? Si no uso Boost, ¿eso significa que no soy un programador de C++ real? ¿Me gustarán otros programadores de C++?" Por favor. Cualquier programador de C++ que se preocupe si usa use Boost o cualquier otra biblioteca es un imbécil de mente cerrada, y no debería tener nada que ver con él.

Más bien, encuentre una persona inteligente y de mente abierta que pueda decirle cómo Boost y quién sabe qué otra biblioteca lo ha ayudado en su propio trabajo. Incluso admitirá que a veces no necesitas esas bibliotecas.

Respuesta alternativa: volver a implementar parte de Boost o STL es una buena manera de mantener nítidas tus habilidades de programación. En otras palabras, un programador de C++ que no puede recurrir a C porque está sin sus bibliotecas es un programador débil.

+0

¡Muy buena respuesta! Además, creo que extrañarás una gran parte de C++ si sigues usando bibliotecas para hacer cosas dolorosas, como serialización, redes, etc. Finalmente, cuando postules a la publicación de trabajos, te harán preguntas que a menudo son equivalentes a las esas bibliotecas lo hacen, la clasificación sería un buen ejemplo. ¿Cómo podría responder esas preguntas si siempre ha usado bibliotecas para todo? ;) – ForceMagic

+0

Preferiría que mis programadores conocieran y utilizaran las bibliotecas vigorosamente en lugar de reinventar la rueda (normalmente una rueda peor). Saber cuándo usar una biblioteca determinada y cómo puede ser algo así como un arte en sí mismo. Estoy de acuerdo en que es importante recordar lo básico también (lo básico es que sea de nivel inferior, no más fácil). –

Cuestiones relacionadas