boost für große Projekte wirklich brauchbar?
-
Hallo,
Ich stelle mir seit längerem die Frage, ob boost für große Projekte sinnvoll einzusetzen ist. Ich habe, aufgrund der Tatsache, dass boost heftig entwickelt wird da so meine Bedenken.
Wird Abwärtskompatibilität innerhalb der boost-Libraries gewährleistet oder kann es unter Umständen der Fall sein, dass ich bei einer zukünftigen boost-Version meinen Code anpassen muss?boost wird ja von allen immer so gelobt und im privaten Bereich setze ich es auch sehr gerne ein, aber gibt es große Projekte in denen es auch tatsächlich eingesetzt wird oder bleibt es letztlich eine Spielerei?
Wenn ich mir Boost-Libraries wie spirit oder graph anschaue, dann denke ich mir "mächtig", aber auf der anderen Seite auch "umständlich". Gerade bei diesen großen boost-Libraries ist es ein Problem, dass die Dokumentation mehr als dürftig ist und die Beispiele immer nur einen viel zu kleinen Funktionsumfang abdecken.
Ich suche schon einige Zeit nach einer eleganten Möglichkeit einen tex-artigen Code in eine Baumstruktur zu parsen um nachher die Formeln zu rendern. Auch nach dem mittlerweile 10. Versuch mit Hilfe der spirit-Doku habe ich keinen übersichtlichen Parser mit hoher Wartbarkeit/Erweiterbarkeit zustande bekommen. Gut, ich habe es geschafft alles mit Functor-Parsern zu bauen, aber der Code wird dann umständlicher, langsamer und länger als ein handgeschriebener Parser. Das kann es ja nicht sein. (am Rande: Hat da vielleicht jemand eine Idee zu?).
Ich bin auf eure Meinungen gespannt!
-
Wird Abwärtskompatibilität innerhalb der boost-Libraries gewährleistet oder kann es unter Umständen der Fall sein, dass ich bei einer zukünftigen boost-Version meinen Code anpassen muss?
API Änderungen kommen öfters vor, aber dich zwingt ja keiner die Versionssprünge mit zu machen.
-
Boost wird definitiv auch bei sehr großen projekten eingesetzt. Dank eines verwandten (dessen kollege im iso c++ standardisierungskomitee sitzt), habe ich teilweisen einblick in ein solches projekt. (Da ich aber nicht weiß, wie das rechtlich aussieht, sag ich mal lieber nicht mehr. Nur so viel, eine große dt. bank ist meines wissens nach hauptabnehmer). Und sie machen, sowohl nach meiner kurzen quelleneinsicht als auch den angaben meines verwandten zufolge starken gebrauch von boost. (leider weiß ich nicht mehr was, damals hatte ich erst mit programmieren angefangen und wusste nicht mal was boost ist)
-
Nicht repräsentative List, aber ein Anhaltspunkt (da die Liste erst seit ein paar Monaten gepflegt wird und nicht jeder sein Projekt da einträgt):
Inhouse Projekte: http://www.boost.org/doc/html/who_s_using_boost_/inhouse.html
Produkte: http://www.boost.org/doc/html/who_s_using_boost_/shrink.htmlWenn man mal sieht, das SAPs Netweaver (ein Application Server), Realnetworks Dienste, Adobes eigene Libs (die jetzt OpenSource sind) und viele andere Produkte Boost benutzen, dann finde ich das nicht schlecht. Dafür das Boost absolut kein Marketing hat? Erstaunlich!
Und man muß ja nicht alle Libs benutzen, man pickt sich ja nur das raus, was man braucht. Und wenn sich eine Schnittstelle ändern sollte, denke ich mal, nur wenn es einen triftigen Grund hat.
Weiterhin sind ja nicht alle Boost Libs wirklich offiziell für den produktiven Einsatz freigegeben. Ich glaub Spirit gehört dazu?
-
Rikko schrieb:
Ich stelle mir seit längerem die Frage, ob boost für große Projekte sinnvoll einzusetzen ist.
.. ohne wenn und aber - Ja, sehr gut sogar!
Rikko schrieb:
Ich habe, aufgrund der Tatsache, dass boost heftig entwickelt wird da so meine Bedenken.
Wird Abwärtskompatibilität innerhalb der boost-Libraries gewährleistet oder kann es unter Umständen der Fall sein, dass ich bei einer zukünftigen boost-Version meinen Code anpassen muss?Abwärtskompatibilität wird zwar nicht garantiert, ist aber in vielen Fällen gegeben. Dazu kommt, dass die Basics (Smart-Pointer, bind, function, thread), die man sowieso immer und überall braucht - und damit auch weit über den Code verstreut sind - inzwischen ziemlich stabil sind.
Rikko schrieb:
boost wird ja von allen immer so gelobt und im privaten Bereich setze ich es auch sehr gerne ein, aber gibt es große Projekte in denen es auch tatsächlich eingesetzt wird oder bleibt es letztlich eine Spielerei?
Ja klar siehe Links bei Artschi's Posting. Die Anzahl der Source-Code-Zeilen 'meines' Projekts liegt im 7-stelligen Bereich. Und obwohl das Projekt sehr groß und sehr alt ist (> 12 Jahre!) und bereits mehrere IDE's und Compiler-Generationen gesehen hat, setzen wir boost dort mit Erfolg ein.
Rikko schrieb:
Wenn ich mir Boost-Libraries wie spirit oder graph anschaue, dann denke ich mir "mächtig", aber auf der anderen Seite auch "umständlich". Gerade bei diesen großen boost-Libraries ist es ein Problem, dass die Dokumentation mehr als dürftig ist und die Beispiele immer nur einen viel zu kleinen Funktionsumfang abdecken.
.. Äh - hast Du die Doku nicht gefunden? Die Spirit-Doku halte ich für äußerst gelungen und vollständig. 'Graph' habe ich nicht gelesen. Na ja - ich habe bisher nur kleinere Sachen mit Spirit gemacht. Aber ansonsten hilft man Dir sicher in der newsgroup gmane.comp.lib.boost.user weiter.
Gruß
Werner
-
Hallo
Ist vielleicht eine doofe Frage, aber was ist boost?
chrische
-
Eine portable Bibliothek für C++, die den Umfang der stdlib erweitert. www.boost.org
-
Werner Salomon schrieb:
Rikko schrieb:
Wenn ich mir Boost-Libraries wie spirit oder graph anschaue, dann denke ich mir "mächtig", aber auf der anderen Seite auch "umständlich". Gerade bei diesen großen boost-Libraries ist es ein Problem, dass die Dokumentation mehr als dürftig ist und die Beispiele immer nur einen viel zu kleinen Funktionsumfang abdecken.
.. Äh - hast Du die Doku nicht gefunden? Die Spirit-Doku halte ich für äußerst gelungen und vollständig.
Ich finde die Beispiele in der Doku zeigen nicht das vollständige Potential, was in dieser Lib steckt. Wenn die Beispiele nicht ausreichend erklären, dann müssen die Schnittstellen sehr gut dokumentiert werden und das sehe ich bei Teilen von spirit nicht gegeben.