[bittorrent] Introductory/endgame algorithms

Arvid Norberg c99ang at cs.umu.se
Fri Sep 30 10:54:32 EDT 2005

On Sep 30, 2005, at 15:55, Bill Cox wrote:
>>> Other reasons exist if you're doing a multi-programmer project.
>> Like?
> There's a good reason C sucks yet is still the right choice for large
> projects.  C is simple.  That's why it sucks.  That's also why it's
> right for large teams.

I would argue that you can use and benefit from C++ features even  
though you're not skilled enought to write the libraries that takes  
advantage of them. e.g. using stl is much easier than to write it,  
and using boost.shared_ptr is much easier than to have explicit  
resource management.

> Here's a more detailed list:
> [...]
> -- Large projects usually have complicated data structures, not  
> just the
> simple inheritance tress common in GUIs.  C++ sucks at representing  
> even
> simple directed graphs, since it insists on inheriting  
> functionality one
> class at a time.  C++ is so weak at representing graphs, there are no
> reusable graph classes available from any source I've been able to  
> find,
> except where the reuse is based on nothing better than what I would do
> in C: callback functions and a C API and some void pointers on  
> objects.
> That's not what I call reusable code.

Ever tried boost graph library?

> -- C++ forces header files to change as you write code, since class
> methods are declared in a single header file per class, even if  
> they are
> private, causing everyone else in your group to have to recompile  
> their
> code.  This hostile cooperation environment leads programmers to  
> update
> from CVS/SVN rarely, which leads to other problems.

All statically typed languages has this problem/feature. On the plus  
side, you'll catch more programmer errors compile time instead of run- 

> -- C++ is so complex, that there is no compiler that fully complies  
> with
> the standard.  Thus, C++ code developed by large teams is only  
> portable
> once it has been ported, and only to the compilers to which it was
> ported.  Individuals familiar with porting can write portable code,  
> but
> again, large teams will not be made up entirely of such people.  C is
> hard to write in a portable way.  C++ is harder.

Although I see your point and agree. Having a fully conforming C++  
front-end generating C code would make it exactly as portable as C.


Arvid Norberg

More information about the BitTorrent mailing list