
Originally Posted by
BlackStar
Boost tries to solve some of these problems and bring some form of sanity to the language - if you are ok with adding 500MB worth of dependencies to your project.
Where did you come up with that? Do you mean the debug symbols? I don't think you can really call those dependencies. Otherwise, boost 1.46 on AMD64 is a whooping 6.4MB dependency, 13MB if you count both mt and non-mt versions. Compare this with ~100MB for mono or a lot more for Microsoft's .net
Code:
du -shc /usr/lib/libboost_*mt-1_46.so.1.46.1
88K /usr/lib/libboost_date_time-mt-1_46.so.1.46.1
140K /usr/lib/libboost_filesystem-mt-1_46.so.1.46.1
364K /usr/lib/libboost_graph-mt-1_46.so.1.46.1
112K /usr/lib/libboost_iostreams-mt-1_46.so.1.46.1
112K /usr/lib/libboost_math_c99-mt-1_46.so.1.46.1
112K /usr/lib/libboost_math_c99f-mt-1_46.so.1.46.1
112K /usr/lib/libboost_math_c99l-mt-1_46.so.1.46.1
224K /usr/lib/libboost_math_tr1-mt-1_46.so.1.46.1
252K /usr/lib/libboost_math_tr1f-mt-1_46.so.1.46.1
224K /usr/lib/libboost_math_tr1l-mt-1_46.so.1.46.1
72K /usr/lib/libboost_prg_exec_monitor-mt-1_46.so.1.46.1
460K /usr/lib/libboost_program_options-mt-1_46.so.1.46.1
16K /usr/lib/libboost_random-mt-1_46.so.1.46.1
949K /usr/lib/libboost_regex-mt-1_46.so.1.46.1
477K /usr/lib/libboost_serialization-mt-1_46.so.1.46.1
88K /usr/lib/libboost_signals-mt-1_46.so.1.46.1
16K /usr/lib/libboost_system-mt-1_46.so.1.46.1
116K /usr/lib/libboost_thread-mt-1_46.so.1.46.1
805K /usr/lib/libboost_unit_test_framework-mt-1_46.so.1.46.1
1.4M /usr/lib/libboost_wave-mt-1_46.so.1.46.1
344K /usr/lib/libboost_wserialization-mt-1_46.so.1.46.1
6.4M total
I can give you that C# allows for somewhat faster development for small projects, but don't try to claim it requires less resources, be it CPU, RAM or disk space. That's just ridiculous.

Originally Posted by
BlackStar
C++1x is much better, but still fails to fix the core issue of C++: its insane compilation system ("write everything twice", "recompile templates on every use", "each compiler has its own ABI, so you can't use .so files - unless you write everything three times", "each platform has different conventions, exact behavior is undefined, have fun".)
I'm not sure I understand what you mean by writing everything twice or 3 times, or where the compiler ABI comes into play. At least gcc did not break it's C++ ABI since version 3.4 that was released in 2004.
P.S.

Originally Posted by
BlackStar
- GC by default, manual memory management only if necessary
By manual memory management you mean mixing managed and unmanaged code? Because when you start doing that about all the "sanity" of C# vanishes. And I have yet to see a large C# project that does not require unmanaged code.