前言
作为一个游戏程序员,D语言对我是很有吸引力的!我相信有不少的人和我有同感。我热爱编程,但是我不能说我热爱C++。坦白的讲,如果是我一个人独立编程,我很乐意使用C++,它的好处就不必多说了,但是在一个稍微大一点的团队中,我一直希望找到一种 “更高级”的语言。这些年一直被C++折磨着,即便团队中有一个新人,有少许几行代码,就足够让整个团队调试一整天。最近的一次,有位兄弟写了如下代码:
在一个类中有这个成员变量:DWORD m_array[10];
for(int i=0; i<sizeof(m_array); i++)
m_array[i] = 0;
错误是明显的,但是它并不会立即造成非法操作,它只是破坏了其它成员变量的内容。。。要知道,在一个20万行的程序中找到这个错误并不是那么容易啊。
C#很不错,而且MS推它的力度很大,现在又有XNA,浮点运算效率一直被大家质疑,不知道现在改进了多少?还有一个不爽的事就是――需要带个百十来M的runtime lib。
D语言的发展很值得关注,在TIOBE的调查(http://www.tiobe.com/?tiobe_index )中已经排到14位,而且上升速度紧跟Ruby之后,十分抢眼。对于游戏程序员,尤其适合。:)当然,D还在发展中,但是它值得关注。 D语言在经历了一百七十多个版本,五年的开发之后,终于推出了1.0版!现在是时候实践一下了。:)
为什么D语言如此令人激动,请看这篇文章:
英文原文:http://www.digitalmars.com/d/overview.html
中文翻译:http://blog.csdn.net/uframer/archive/2005/02/03/279661.aspx
我在这里就不赘述了。
准备工作环境
最基本的compiler和linker可以从Digital Mars官方网站下载:http://www.digitalmars.com/d/dcompiler.html。注意,要下载两个包dmd.zip是compiler,dmc.zip是linker。压缩包中还带了MS Windbg程序可以用来调试。为了方便调用,后需要把“dmd/bin/”添加到系统的PATH环境变量中。
在“dmd/samples/d”有几个例子,可以先看看,对D有一个初步的印象。“dmd/html/d”有一些文档,应该好好看看。:)
编辑工具现在后很多,简单起见,我现在使用Ultra Edit,关于如何配置UE,请参考:http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport/UltraEdit。
实战Hello World!
1、
创建一个新的文本文件,输入以下代码:
void main()
{
printf("Hello D!");
}
2、 键入命令行:dmd hello.d –g,此命令会生成hello.exe,其中-g参数是为了生成调试用的符号表;
3、 键入命令行:windbg hello.exe,可以启动windbg调试窗口,在windbg的Command窗口中键入“g _Dmain”,即可开始调试;
这几行代码是不是和C语言一下啊?!这是因为D和C在二进制上是兼容的,而且D引入了C Runtime lib,所以可以调用CRT的printf。下面这几行是调用D的标准库(Phobos)的代码:
import std.stdio;
void main()
{
writefln("Hello D!");
}
OK,基本的编辑、连接、调试就是这样了!下次将尝试创建一个Win32窗口,并初始化会OpenGL。