《玩转D语言系列》二、D语言现状、基本规定和相关资源介绍
这算是本系列文章的一个序吧,主要是为以后的学习做铺垫,文本分为三个部分,第一部分是对于网上一些比较旧的资料的问题的一些更正,当然我也不可能看过所有的资料,难免会有遗漏。第二部分是D语言最基本的规定,第三部分是相关的资源
一、对于一些网上旧资料上的内容不准确之处在此指出
1、D对闭包的支持不好
目前版本支持完全的闭包,所以不用担心
2、D不支持动态链接
目前版本支持动态链接技术,但Windows平台需要注意的是D的runtime建立在dmc(一个C编译器)runtime 基础上,它与VC的二进制格式不兼容,所以如果要调用VC生成的DLL,或者为VC生成DLL需要另外的工具转换,具体方法在以后的文章中会有介绍,这也是我觉得D语言Windows版本不好的一个地方,至于为什么使用dmc,可能是因为设计者本人对dmc的感情吧,左手右手都是肉啊,但对于用户来说的确造成了一些不便,不过问题也不是很大
3、D存在两个不同的标准库Tango和Phobos,且两者不兼容,Phobos过于简单
Tango是D1时期流行的库,目前虽然有D2的移植版,但Phobos目前是主流的标准库,很多新的开源项目都是基于Phobos的,所以可以放心使用Phobos,Phobos库已经比原来强大了许多,而且随着更新版本的更新会越来越强,预测将来Tango会做出让步以做为Phobos的补充,而不是水火不容
4、D不支持嵌套类
支持,且支持的非常好
5、D没有预处理
的确,不过D有代替方案
6、D语言的第三方库很少
目前第三方开源库相对以前已经多了不少,刚查了下github,目前上面有六千多个项目,主流技术支持都不错,如数据库,网络,图形等,而且所有C语言的库都可以直接使用
最新信息可查看 http://code.dlang.org,这里包含了所有提交到官方开源库的项目,全部是以dub管理的
所有guthub上的D语言项目可以访问 https://github.com/search?utf8=✓&q=language%3Ad 即直接搜索 language:d
7、D没有好的IDE支持
目前IDE支持已经挺好了,我用过的有:
VisualD(Visual Studio的一个插件,需要注意的是免费版的VS不支持插件,最好用专业版)
DDT(Eclipse 插件,使用dub管理项目,dub是一个项目构建工具,也是D开源项目的管理工具,基于json配置,以后会介绍这个工具的使用)
KDevelop(KDE桌面下的主要IDE,支持D语言,不过官网上没提到,也挺好用)
Code::Blocks(支持D语言,不过这个工具对代码提示一直不是很强,如果不注重这个功能可以一用)
更多IDE支持情况可以参考 http://wiki.dlang.org/IDEs
编辑器支持详细情况请访问 http://wiki.dlang.org/Editors (主流编辑器几乎都支持)
注:目前我在使用的是DDT,虽然我不喜欢eclipse,但是在Mac系统下也没有更好的选择
8、D没有大公司支持,没有大公司使用
目前Facebook在用,也是支持D语言的公司,因为D语言的设计者在那工作
9、中文资料较少
目前是这个情况,而且相对比较老,不过我正在为这个方向做贡献,不为利益,只是从心里面真的很欣赏D语言,同时也希望能结识一些同道中人,一起交流
10、如果您对D语言在网上的一些资料内容还有什么问题欢迎留言交流
二、基本知识
1、D语言源代码文件必须是UTF-8、UTF-16、UTF-32编码,且支持bom,支持*nix 的#!解释器命令
2、D的源文件组织与文件系统兼容,源文件称为模块,包含源文件的目录(以编译器的工作目录为根的相对路径)称为包
3、D的源代码区分大小写
4、学习D语言最好先学会C语言,因为做为一个系统编程语言不可避免的要与C API交互,所以D最适合熟悉C语言且需要提升生产力的人使用
5、在以后的文章中我会假设您会C语言,并且了解一种面向对象的语言
三、相关资源
1、D语言官方网站是 http://dlang.org 因为使用了被国内屏蔽了的CDN,所以可能您需要FQ,推荐找一个免费的VPN,我正在使用的是MxVPN
2、D的编译器有哪些,在哪里可以下载到
DMD(官方编译器,对D标准的支持是最快的,并集成rdmd,可做为D语言的解释器用,如果使用其它编译器这个工具也可以单独下载,是一个D语言写的程序)
GDC(GNU版本,适合Linux系统,版本更新紧随DMD,但一般Linux发行版本中的版本会较老,最好下载最新版本)
LDC(LLVM版本,目前我还没有尝试过,不知道对D语言版本的支持如何,有兴趣的朋友可以尝试)
无论您使用什么系统,通常DMD都是不错的选择,只是在Linux中安装时库的依赖会相对较多,GDC和Linux契合度较高,毕竟GCC是Linux默认的编译器,但对于编译后的程序的依赖都是一样的,在后序的文章中没有特别说明将使用DMD做为编译器
编译器的下载都可以通过此链接下载::http://dlang.org/download.html
4、安装好编译器后可以使用上一篇文章中的HelloWorld程序测试,也可以使用官网或者手册上的任意一个例子做测试
《D程序设计语言》中文版 电子书 百度网盘下载地址:http://pan.baidu.com/s/1qB65w
《D 语言中文参考手册》 百度网盘下载地址:http://pan.baidu.com/s/1o684aL0,此手册是D 2.0.54版,目前最新版是2.0.67,略显老,不过这是唯一的中文翻译的手册。语言和库方面的变化请参考官方网站的 Change Log
注:以上两个中文资料均由 张雪平 翻译,在此感谢张雪平为中国D语言的发展做出的贡献
ddt eclipse update site :http://ddt-ide.github.io/releases/(需要dub,在还不知道dub为何物的时候建议不要使用)
只有这个插件的安装可能会遇到问题,所以这里直接给出eclipse update site的地址,其它IDE应该都不是问题
如果您看完了本文还有什么疑惑或者遇到什么问题欢迎给我留言