d用户反驳移植到jai的经验
原文
我从一开始就在窗口
上开发引擎
,我甚至为它开发Xbox
,所以,我的D经验
应该可证明是有用的.
:90%
时间,缺失this
指针或错误
我唯一一次
发现缺少this
,我只是在issues.dlang
上发送了一个bug
:当在函数
内部使用匿名类
时,这似乎是DMD
的一个bug
.
:函数栈
上变量经常部分或全部丢失
或错误
从来没有.
:在没有其他可见
问题时,变量值
有时报告
错误
没有.
:静每一
未扩展好,会使调试器
混乱
我还没有调试
过这种代码
:mixins
(D的宏等效项
)生成调试
信息会使调试器
找不到正确
文件(因此必须单步
反汇编)
或,你可用-mixin=targetFileToMixin.d
,可以更容易理解原因.D
中的所有元编程
工具在(如code-d
或VisualD
)工具中都不能正常
工作.
:在VS
中移回指令指针
到上一行,一般会在下一条
指令时崩溃程序
我不会玩指令指针
,这会在任何语言
都不安全.
:奇怪的交互
,不同的编译
阶段,导致元编程
中的意外
,生成误导性
错误.
是的,我遇见了一个,当处理库的静如
版本时,类似问题.
:ldc2
的编译速度非常慢,但有时是唯一
的选择,因为dmd
有bug
.
目前对我来说,情况
正好相反,我不能用LDC
正确地构建DLL
,当用LDC
构建时,writeln/printf
非常有缺陷.
:D提供了禁止垃集
的更好的C
模式.然而,使用该模式时,不能编译
标准库,元编程受到很大
阻碍.
更好C
的问题
:缺少文档
哪个
文档?大多数时候是因为我未正确
阅读文档,再者,别人可给我指出来.
:用插件
时,全局域中,有时会破坏有依赖
顺序的声明.
我记录
了一个与此相关的错误
.
:除非使用特殊类型
的串字面
,否则不解析mixin
中的名字空间名
.
没有
:在静每一
中,在if
后,不能插入多个else if
.
同意,如果可在静每一
中放case
,就应该可放else if
.
总结:
可见那个家伙搞了58KLoc
的纯模板,元编程
和CTFE
滥用.60
秒的构建时间
是不可接受的.我相信,这样的项目是D发展自己
的一个很好的研究案例
.
可惜,看到D在其独特功能
上那种状态
是令人难过的,比如正在推广用CTFE
,但因为它会使构建
速度减慢很多
,而不能实际使用CTFE
.在某处有CTFE
缓存PR
,说可加速构建速度
,可惜,不知道为什么未继续
下去.
虽然我不会把D换成另一种语言
,但我部分同意
博客里说的话:在D中添加新的特性
不应是第一优先
,因为有很多其他
东西会破坏
开发者体验.
使用version/static if/mixin template/mixin
有一个清晰和更好
的编译流程,在元编程
端生成更好的调试信息
(这也帮助code-d
和visualD
等工具),然后,使CTFE
更快(或缓存),可使D在D所提供方面
更好.
如果你像C或Java
那样编写D代码
,你不会有太多的痛苦,但是如果开始用插件模板/别名
和其他类似特性
,就会开始咬人
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现