Friday, June 26, 2009

D - Good, Bad, Ugly, Pretty

Well I just got back in South America and it looks like the community is trying to get an honest evaluation of the D language so that it can plan for its future correctly. This is a healthy process (unless the complaints are ignored), therefore I will voice my opinion on the state of D, or more so what should be done for D's future success.

First of all, I see the biggest problem for D is that the community is small, and there is no incentive for the community to grow. All jobs are done in C++, Java, C#, etc. Because D isn't really old or rich, the community isn't likely to grow much in the future. From my experience, D is a hobby language and that isn't looking like it will change much in the future, not without a lot of money. I see D's small community and lack of real world jobs in D as the MAJOR problem with D, and probably as a huge reason why people try D, like it, then move on. Those who stay are not in it for the money, but the love of the language.

Second, productivity tools. You can have the most productive language in the world, but if C++ or C# has better productivity tools for refactoring / coding, the productivity of the language itself may not matter as much as the productivity gained through the productivity tools. Plus having no productivity tools scares away main stream programmers.

Third, stability. While stability is somewhat accomplished with D 1.0, there is a new DMD release, new phobos + Tango release about once every month or two. These releases tend to have small breaking changes that make old code obselete if not updated every month.

Fourth, simplicity. The simpler the language, the easier it will be for new people to pick up or maintain. Some people enjoy complexity, while I enjoy the simplest possible solution. D 1.0 is almost perfect, but IMO D 2.0 is creeping on the complexity scale. If a concept can't be quickly grasped by most programmers, perhaps it should be left out.

I really don't see the D language itself as the problem, and I see the D tool chain easily improving in the future. The real problem with D is that no one is ever going to use it in serious applications, because no one really knows it. Its not taught in the University, D has no means of spreading the word of itself, its not revolutionary enough to really catch anyone's eye. No one will use it because no one uses it, there are other languages that perform a decent job with decent productivity tools to accomplish practically the same thing as D (C#, Java, Python, etc).

So, what's the future of D? I think the future of D is in indie games. The end user doesn't care what language its in, productivity is increased, and most game bindings are already converted to the D language. Since indie games are usually written by a small team without industry experienced "bosses", they can freely choose the language they want to use.

D will continue to excel in hobby projects as well, since there is no real money stream coming from D incorporated to fund itself.

My prediction is that D's state will probably stay the same, maybe picking up some more indie game developers, for the future.

Wednesday, June 24, 2009

Back From SA

Back from SA:

Need a couple weeks to get settled down, working on ArcLib if time permits.