@
hooluupog meta programming 的确不喜欢。
DSL?你指的是什么?
C的macro还可以,别的就不一定了。macro我的确挺不喜欢的。
其实我并不是讨厌语言,我讨厌的重点是,提供一堆奇奇怪怪的语法糖。然后实际上就是按照某些人提供最佳实践,来定义一些东西,未来出问题了,还是得去看编译产生的目标语言的代码,而这时又回由于编译过,而缺乏文档和相关注释,看起来非常麻烦。而语言衰落是个挺容易的事情,如果未来有人去维护这段代码,而恰好这个‘语言’已经衰落了。这会极大的增加维护的成本。不值得。
ORM之类的,内部提供缓存,提供更简单的语法,以及多数据库驱动,看起来都挺美好的。但是,如果真的要切换数据库,我们往往会发现,并不仅仅是切换驱动那么简单。同时,由于我们没有自己写SQL,所有的SQL都是ORM生成的,这就导致,我们想要优化数据库的时候会面临一个极大的困境:究竟是把ORM给去掉,还是ORM和SQL混合用,还是重写这个ORM。不管哪一个方案,代价都是相当高的。