Thursday, October 16, 2008

ArcLib status + The Problem with D

Just a short time to post, spending most of my time finishing up college, looking for jobs, thinking about the possibility of graduate school.

ArcLib status: ArcLib development should be considered "on hold" until about May 8th, 2009. I'm leaning towards doing some more work on ArcLib after that. It is already on solid ground and the D community is fairly awesome.

The Problem with D: From a language standpoint, there is one major problem with D, and that problem is that D is not C. I have a feeling that most serious system level projects (Operating Systems, Game Engines) are done in C, because...

1. C is everywhere, there is a compiler for every system
2. Everyone knows C, it is tried and true
3. C is a better language to program in than C++ for large scale projects. The C++ STL is not up to par, and C++ adds more complexity than useful abstraction. Game companies that do use C++, like EA, implement their own version of STL. I'm guessing they also use a restricted subset of C++ features.

I think what is holding D back is
1. You can not find a D compiler for every system
2. Not many people know how to program D
3. There is too much legacy code written in C++ / C

Problem 2 and 3 are problems due to marketing and language maturity. Also, as more code gets written in D, even more code gets written C++, so the amount of D code will probably never be able to eclipse C++ / C code.

Problem 1 can be addressed, but needs to be addressed via the community like what is happening with the LLVMDC project.

So, D will probably stay as being a very niche language in the ecosystem of computer language's, catering to those few independent minded folks who do not need to program for the Ps3/X-box, etc., and who actually value the beauty of a language over it's acceptance in the world, and who don't mind having to re-invent the wheel. These "problems" are actually acting like a filter, and so the D community itself is very cohesive.