首页 > 非编程专区 > 网络杂文 > [转载]更好的C++——给C++使用者的D语言简介
2007
06-15

[转载]更好的C++——给C++使用者的D语言简介

这是我从CSDN的论坛上转来的一篇D语言的简介,声明一遍,我不是一个唯语言论者,请大家不要有过激的评论.

作为C++狂热的粉丝,你在多年使用C++的过程中是否有过以下症状:
1. 我很想用 boost 和 STL,但是编译太慢,让我想砸电脑
2. 我讨厌一个程序写两次,干嘛要头文件?编译器不会自动提取声明吗?
3. 经常有大师教导你不要用宏,但是现实是没有那个程序不用
4. 我从来不喜欢指针
5. 我想要GC!!!
6. C++的元编程真酷,我也想试试,但是太复杂
7. 多继承、虚继承太复杂,我想要 interface,但是有能保持多继承的威力
8. 羡慕 C# 的Property、delegate…?
9. 大师们经常教导我要用RAII,但是我觉得麻烦
10. …

如果以上问题你都回答Y,那么,我建议你去看看D语言(www.digitalmars.com/d/)医生,他将为你开出一下处方:

1. DMD/GDC D语言编译器编译速度飞快,用再多的模板也不成问题,一个 几MB代码的程序的编译也可以在分秒内完成。
2. D语言提供了模块(module)和包(package)的概念,一个模块就是一个源文件,一个包就是一个磁盘目录,完全解救了程序的物理架构问题。而且编译器能自动提取所有声明和借口,完全没有 C/C++ 的麻烦。
3. D语言没有C/C++中的文本宏,这下你该高兴了吧?而且在D语言2.0版本中将提供基于抽象语法树的AST宏,让你能在一致的语言环境中操纵甚至自定义语法。
4. D的许多特性大大减少了指针的需要,比如与C#/Java 类似类默认就是引用类型,D也有内置动态数组。但是 D也保留了指针,因为你需要解决现实世界的问题。
5. D拥有内置的GC,但是你也可以重在类的 new 操作符来避开GC。D也不是虚拟机语言,而是像C++一样着眼于大规模高性能的系统和应用程序。
6. D的模板与metaprogramming比C++的易用,但是功能强于 C++,甚至可以在编译时执行函数。
7. D拥有一切现代OO语言的要素:interface, abstract class…
8. D拥有恐怕是世界上最简单的Property功能,比如:
class Foo{
    int c;
    int count() { return c; }
}
类Foo 的成员函数 count 可以像属性一样地访问: int x = foo.count;
delegate则强于C#,甚至允许完全的匿名函数: void delegate() d = { printf(“Hi D!\n”)};
9. scope 是C#中 using 的加强版
10…

D是一门很年轻很有前途的语言,虽然现在远远不算成熟,但是它却拥有了超越 C++09标准的特性。就像D的设计和实现者 Walter Bright 说的,看看它的文档,你自己决定吧!


留下一个回复