Boost ein Beispiel für guten Stil?



  • Hallo.

    Da ich im Moment gezwungenermaßen mit boost::asio arbeite, stellt sich mir eine Frage...

    Sind die Boost-Libs Beispiel für guten Code?
    Mir jedenfalls rollt es bei der Arbeit damit die Zehennägel hoch.
    Alles ist ewig tief in verschiedenen Namespaces verschachtelt, für triviale Aufgaben muss ich mehrere Objekte erzeugen etc

    Sieht das außer mir keiner so?

    Grüße



  • Icematix schrieb:

    Da ich im Moment gezwungenermaßen mit boost::asio arbeite,

    was wäre denn Deine Alternative, wenn es nicht 'gezwungenermaßen' so wäre?

    Icematix schrieb:

    stellt sich mir eine Frage...
    Sind die Boost-Libs Beispiel für guten Code?

    Meiner Meinung nach: Ja. Das deckt sich übrigens mit der Meinung von z.B. Herb Sutter und Andrei Alexandrescu

    Icematix schrieb:

    Mir jedenfalls rollt es bei der Arbeit damit die Zehennägel hoch.
    Alles ist ewig tief in verschiedenen Namespaces verschachtelt, für triviale Aufgaben muss ich mehrere Objekte erzeugen etc

    Kannst Du konkrete Beispiele nennen, und dabei auch beschreiben, wie es denn anders gehen kann bzw. sollte.

    Gruß
    Werner



  • Manche Funktionen von Boost (nagut, eigentliche alle) sind ziemlich brainfuck'sch geschrieben. Die Funktionsweisen dahinter sind aber sterbens intelligent.



  • > Das deckt sich übrigens mit der Meinung von z.B. Herb Sutter und Andrei Alexandrescu

    Nicht aber unbedingt immer mit der von Struppi. Siehe FAQ @ http://www.research.att.com/~bs/



  • Ad aCTa schrieb:

    > Das deckt sich übrigens mit der Meinung von z.B. Herb Sutter und Andrei Alexandrescu

    Nicht aber unbedingt immer mit der von Struppi. Siehe FAQ @ http://www.research.att.com/~bs/

    Ah - interessant; kannst Du Quellen nennen?

    @Edit: meinst Du das: <http://www.research.att.com/~bs/bs_faq.html#boost>



  • <a href= schrieb:

    http://www.research.att.com/~bs/bs_faq.html#boost">It contains many extremely useful and well-engineered libraries, such as asio, filesystem, regex, and thread (apologies for not trying to identify more useful libraries; there are just too many).

    @K.:
    Ich find auch nen paar nicht gerade einleuchtend, aber das liegt kaum daran, dass sie brainfucked geschrieben sind, sondern eher daran, dass ich eben maximal gut c++ kann - wenn dort features genutzt werden, die ich nicht kenne, ist es klar, dass ich das gesamtwerk nicht verstehe, wenn ich mich nicht damit auseinandersetze...
    und dann zu behaupten, dass es doof geschrieben wäre, find ich ein wenig anmaßend 😛

    bb



  • Ah - interessant; kannst Du Quellen nennen?

    <a href= schrieb:

    http://www.research.att.com/~bs/bs_faq.html#boost">
    Some of the libraries are too clever for my taste. Sometimes, generality and simplicity coincide; in Boost, the balance is IMO too often so far towards generality that novices and average users are lost.



  • @unskilled
    Ich meinte "brainfuck'sch" im Sinne von "zu Hoch für mein Level" und nicht im Sinne von "voll plöd geschrieben". 😉



  • Ad aCTa schrieb:

    Ah - interessant; kannst Du Quellen nennen?

    <a href= schrieb:

    http://www.research.att.com/~bs/bs_faq.html#boost">
    Some of the libraries are too clever for my taste. Sometimes, generality and simplicity coincide; in Boost, the balance is IMO too often so far towards generality that novices and average users are lost.

    Ja - dem würde ich auch zustimmen. Man kann es nicht allen recht machen. Und wenn eine Lib für die eigenen Anwendung ein overkill ist, so wählt man halt eine Alternative so weit das sinnvoll und möglich ist.
    Aber das ist für mich kein Widerspruch zu sagen: boost ist guter C++-Stil.

    Gruß
    Werner



  • Boost besteht aus vielen Libs, und nicht alle Libs kommen von den selben Personen. Nicht nur wie sie designed sondern wie sie implementiert sind, unterscheiden sie sich. Einfach pauschal sagen, das sie gutes Design haben, kann man deshalb nicht.

    Ich selber finde z.B. nicht alle Boost Libs nützlich... für micht nicht nützlich. Boost.Asio finde ich z.B. schrecklich! Ich kann pers. damit nichts anfangen. Zu Low-Level... nicht jeder braucht Low-Level-Libs, so wie von Bjarne Stroustrup auch schon gesagt. Aber das ist auch nicht schlimm, ich benutze dann halt Asio einfach nicht, sondern suche mir was anderes (z.B. POCO). Aber trotzdem benutze ich Boost Libs ausgiebig, weil es halt doch für mich noch viele andere nützliche Libs gibt (z.B. Signals, Filesystem).



  • Ich finde den Boost Stil grauenhaft. Überdesigned und unleserlich. 👎



  • Ob eine Bibliothek für jemanden persönlich nützlich ist, sagt nichts über die Qualität ihres Codes aus.
    Ob eine Bilbiothek brainfucked ist, weil bei maximaler Generizität trotzdem noch ein Höchstmaß an Performance für fast alle nur denkbaren Compiler rausgekitzeld wird, sagt erst recht nichts über die allgemeine Qualität des Codes aus (abgesehen davon dass es viel und kompliziert ist, aber eben nicht schlecht)

    Ansonsten siehe Artchi - verschiedene Leute schreiben verschiedene Stile, wobei bei älteren Libs viele Leute beigetragen haben.

    Ich hab mir schon einige der Bibliotheken von innen angesehn und bin bisher nirgends auf wirklich schlechten Stil gestoßen. Zwar ist der Gesamtcode oft hochkomplex, die Einzelteile sind aber fast immer recht leicht verständlich.


Anmelden zum Antworten