<br><br><div class="gmail_quote">On Sun, May 23, 2010 at 4:55 PM,  <span dir="ltr"><<a href="mailto:fons@kokkinizita.net">fons@kokkinizita.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
IMNSHO, the way any software works should be understandable by<br>
a) knowing the language, b) reading the code, at least up to the<br>
point that the reader can have an good idea of the big picture,<br>
of data structures and control flow, only excluding application<br>
domain specific details which require special expertise anyway.<br></blockquote><div><br>i think that most experienced C++ programmers understand that using templated libraries effectively transforms the program from being written "in C++" to being written (for example) "with boost". if you don't want to take advantage of the sorts of incredible features that boost offers, thats fine. the problem is that some of us do, even though we recognize that there is a very real price to doing so. you start with a little nibble of the STL, then you dabble with the header-only parts of boost, and finally you're sucked in.<br>
<br>more seriously: because languages like C do *not* define anything like container types, *some* template libraries like the STL actually make much more readable by others: anyone with any level of experience of the STL can understand how the containers in another STL-using program work and what their semantic guarantees are. now contrast this with the vast collection of foobar list implementations that exist for C, now add dynamically-resizing arrays, hashes and all of a sudden its clear that its much harder for the average C programmer to have any clue about the subtle details of how these might work in a given implementation.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Again IMNSHO, a programming language should be used 'as is',<br>
without trying to extend it or introduce concepts that are<br>
not part of it ('shared_ptr', 'promise' (whatever that means),<br></blockquote><div><br>clearly, you've not used shared_ptr.<br><br>after about 2 years of using it, i'm about ready to wonder how, and more importantly why, i ever wrote any code without it, and perhaps more importantly, what possible semantic justification there could be for using anything else (i'm including its cousins like weak_ptr) outside of a device driver. <br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
'spromise' (whatever that means), etc.). All the rest is just<br>
obfusciation, and useful only to some niche of 'believers'.<br></blockquote><div><br>i am glad to hear, however, that you've never used longjmp/setjmp in your code, or thread local storage.<br><br></div></div>