事情是这样的,某天一位中医大师来跟我们程序员传播中医思想……
大师:阴阳相当于事物的两种状态,只不过是一种符号,就像计算机中的0和1一样,真正的程序员都是非常推崇中医思想的,我邻居家的儿子就是一个程序员,在微软工作,他曾经……
我:大师,为什么是两种状态?不是三种状态?四种状态?
大师:你这不是抬杠么?为什么计算机是二进制?阴阳是一种相对表示方法论!热是阳,寒是阴,多热是阳?多寒是阴?看你跟什么东西来比较,比如跟0℃相比,100℃就是阳。
我:这题我会!计算机并不需要一定用二进制,图灵机计算模型的表示完全不需要依赖二进制,Lambda Calculus 计算模型甚至不需要有状态 。并且,程序不能只用0和1两种状态表示比较大小的结果,你把大的说成阳,小的说成阴,那相等该怎么表示?所以现在先进的编程语言都会加入 Ordering 类型,分别用 GT、LT、EQ 表示大于、小于、等于。你觉得相等就相等嘛根本无需比较,可是相等的概念也是相对的,比如相对于99℃,99.1℃是不是阳?99.01℃是不是阳?…… 所以程序比较 Floating Number 时,都是取一个容许的最大误差 epsilon,两个值相差绝对值小于 epsilon 就认为相等。请问中医分类阴阳时取的 epsilon 值是多小?如果大师指的是布尔逻辑,首先,01和布尔值混用只是C语言恐龙时代遗留下来的不良风气,然后现代软件开发都建议避免用 Bool 类型表示对象的状态,避免 {status:Bool}这种烂代码,因为它没有传递任何信息,if object.status == True ? 你说一个东西状态是阳?什么鬼?这属于典型的不肯好好说人话!正确的做法是要么定义成 {isOverheat:Bool},要么定义一个 data TemperatureStatus = Overheat | Supercool | Regular ,你看, if body.temperatureStatus == Overheat then return Paracetamol!这代码多好理解!如果将来重构需要添加新的状态,还省了把其它接口中的 Bool 换成新类型。从程序设计角度来讲,不直接说一个东西温度多冷多热,绕圈子说一个东西属性是阴是阳,不但没有任何好处,还丢失了重要信息,使代码难于理解。代码越难于阅读理解,隐藏的 Bug 就越难于被发现,比如代码 herb.irritationLevel = weather.temperLevel ,两种不同类型的值是不能这样直接赋值的,草药的刺激属性怎么能随便直接跟天气温度混淆呢?至少要有个什么证明什么转换吧?如果全用 Bool 表示,这个 Bug 就这样悄无声息地躺在那里,如果用 Enum/Algebraic Type,编译器就能立即发现这个 Bug。还有,函数参数也要避免使用一堆无意义的 Bool 参数,doctor.diagnose(true,false,true,false,false),这什么鬼代码?说人话不会吗?同理,推而广之,用阴阳表示温度大小是烂代码,一鼓脑用性寒性热概括药物的辣度、营养含量、卡路里、重金属含量等等同样也属于烂代码。更多干货请参考:《Clean Code》、《Code Complete》、Avoiding Booleans、Boolean blindness ,谢谢!
大师:行了行了,反正就那么个意思,就是那个GT、LT符号,万物都有强弱大小状态变化,我们比较分成阴和阳,你看,强奸也说强,强国也说强,这就像阴阳寒热,万物都是相通的,天气有寒热,药性也有寒热,中医就是利用药物这些寒热偏性去纠正人体的偏性,你们程序员叫这个什么来着?一切皆对象!继承!多态!譬如食盐能炒菜,工业盐也能炒菜,因为他们都有盐性!樊代明院士举过一个很贴切的例子:癌细胞个头大,洋鸡蛋个头也比较大,所以洋鸡蛋就是癌细胞。
我:不对不对!食盐和工业盐都属于盐,这叫 Subtype Polymorphism(子类型多态),然而程序语言中子类型多态要遵守Liskov substitution principle(李氏代换原则),父类型能用的地方都能代换成子类型,能用任何化学盐类的地方,换成食盐也行,但反过来不行,不同兄弟类型也不能相互代换,所以工业盐不能炒菜,编译器会报错的!大小比较接口用的是 Ad-hoc polymorphism(特设多态), type class Ord<a>,但类型变量 a 只有一个,不能同时为多个类型,比如一个寒热比较的接口:HotOrNot<T>,草药的寒热不能和人体的寒热相比较,两个 Hot Girl 可以更 Hot,但一个 Girl 加一根辣椒并不能更 Hot,事实上在程序里面这两者加到一起就是个 Type Error。至于强奸和强国,连 Duck Type 都算不上,他们只是名称相似,没有任何其它联系,不能相互代换,国家不可能通过强奸公民而成为强国。如果中医的寒热分类属于上面任何一种多态,那分类相同药物和人体病症之间就可能相互作用的说法逻辑上是说不通的……
大师:不不不!药物功效在前,理论解释在后!是因为这个药能治热性的病证才被归类成寒性的,寒者热之,热者寒之,就像你们计算机里面,是先有病毒,然后才叫杀毒软件的嘛!
我:热者寒之,寒性的药物有很多,难道随便哪一种寒性药都能治任何热证吗?如果不能,那还是不符合多态代换原则,你在程序里定义了一个 abstract class Coldness,给接受该类型的函数扔一个该抽象类的子类实例,结果还是经常报类型错误,这程序还怎么跑?病人不会崩溃么?如果药物寒性仅仅表示它有可能治热证,那成功概率具体有多大?如果只针对热证的几种具体子分类,那应该定义成 Sum Type,而不是「清热解毒」这样一笼统地概括不求甚解,即使广谱抗生素,也有一个抗菌范围。假如杀毒软件像中医那样神神叨叨的话,那我们下载的就不是什么「AutoRun专杀/灰鸽子病毒专杀」工具,而是下载一堆「寒性/热性优化大师」挨个穷举尝试了。
大师:哎!中医讲究灵活变通,你们程序员就是死脑筋,要不说程序员多中医黑呢。治病哪有百分之百包好的?也要看命!说这么多有什么用,难道你们程序员能写出没有 Bug 的程序吗?
我:嘿!说到点子上了!拥抱Dependent Type,告别Bug!Coq、Agda总有一款适合你!
某些人真是搞笑,好像他们掩耳盗铃把我评论删了,中医就值得相信了。
我只不过指出一些数据显示,补充疗法会带来更高的风险:
延误病情,补充疗法显著增加癌症患者死亡风险!JAMA刊文引发热议
站在高处图个嘴快说反对中医的人啥都不懂,可是被中医耽误治疗你又不负责任。
小儿外科裴医生:为什么有一些人反对/支持中医? 这么说吧,当了十几年的医生,接诊过不少因为看中医而耽误的孩子,但还没有发现哪种不看中医就会耽误的病。
不过对于那些神逻辑患者来讲,即使被中医治死了,他们还是要继续推荐中西医结合:
1:各种职业里,恐怕就是ITer是最讲事实最讲逻辑的了。
你们一群中医er,要是能讲事实讲逻辑能说服大多数ITer的话,多了不说,至少社会上九成的人都能搞定了。
反过来说,ITer恐怕是最难被不讲事实不讲逻辑的东西忽悠住的一群人。
2:人生病了,其实就相当于程序出了bug。
那么,debug技术哪家强?
3:ITer怎么debug的?
首先有bug report,描述bug的现象。然后有各种的log,还有各种的专门的测试工具、专项测试以及测试数据。然后再分析数据,找出原因,复现bug以验证原因,最后上hotfix。
那你看西医,生病了,有各种专门的仪器和检查,还有检查数据和结果。然后分析检查报告,找到病因,然后在实验室或者什么显微镜下,真的能看到那些什么病原体之类稀奇古怪的东西。最后才是开方子治疗。
所以,这两者在逻辑思路和处理手法上,是有天然的亲和力的——至少总比莫名其妙的望闻问切,含糊几句阴阳湿热之后就开方子的中医要亲切得多。
因为他们脑子正常,有基本的科学素养啊。
题主不用特指某个人群或职业,其实与这无关。我看来,黑中医的人普遍偏执和狭隘。所以他们在自己行业,我觉得凭这种态度也业务不精!以后交友,你可以看对方的朋友圈和知乎,如果他是中医黑,你可小心了!
我虽然反对中医黑,但我极少屏蔽他们,除非个别开始人身攻击,厉子卿、五叶我都没屏蔽,他们可以来我的任何文章发表他们的观点。我从未辱骂过任何中医黑,但我基本在中医黑的文章中全无法评论留言,他们把反方观点全部屏蔽了,其实是掩耳盗铃。高下立判!
中医为啥招黑?其实还好,参与讨论的大概二十个里面只有一两个是真正做临床的医师,大多数人的答案看似“有理有据”,其实都是道听途说,连反驳的价值都没有,而医师的回答通常是比较理性的,有价值的。
我也是做临床的,深知中医没有大家想象的这么牛逼,不是什么病都能治。比如被吹得很牛逼的肿瘤,现在大多还是能手术则手术,放化疗的效果也不错,中医中药在这环节里起到增效减毒的作用,这方面的疗效是已经有不少国家级课题证实了的。这方面说从属呢也没说错,但现在还不能说死,毕竟我听说广东省中医院中医经典病房那边已经做出了一些纯中医治疗的个案,仍然有待推广和临床研究。
中医学也绝对没有普通人想象得这么不堪,真正发挥作用的时候那是可以技惊四座的。比如自己前几天在病房值夜班的时候,病人晚上发带状疱疹神经痛晚上痛得睡不着,我给他扎了几针,5分钟下来就缓解了不少,也很快入睡了。如果是西医值班,除了喂加巴喷丁和三阶梯镇痛药还能干嘛?效果能有中医处理得又快又好吗?
所以我们这群对中医有个B数的临床医师才是真正有发言权的。
中医招黑,其实也是外行带节奏带的,先把中医捧高,再狠狠摔落,那可不得跌惨吗。
至于题主提的问题:
按个人经验来看,在知乎接触到的中医黑里以程序员为代表的一类工科生确实占比更大。
这些人群的共性特征,就是他们是平时运用数学工具解决问题并不断获得验证的群体。这些人确实平均的逻辑能力够强。
可是医学跟理工科不一样。理工科很多问题是可以通过模型解决的,而医学不行。医学,不管是西医还是中医,都是经验性学科,且人体的复杂性是难以想象的。首先医学的这个特征就决定了,它极其难以纳入模型,很多时候即便是运用统计学工具寻找到了一些期望值,那也会有很多超越逻辑工具认知范围的情况。比如某疗法的治疗前后对比有统计学差异,那也会有一些“被遗忘”的群体,对吧。
所以首先医学就必然存在一些根据经验“想当然”的情况,有时候真的不得不依赖经验。所以夹杂了很多经验(想当然)的西医理论其实也并不能称之为科学。
跟西医比起来,中医理论更加令人不可思议,看起来这么朴素的理论竟然撑起了这么大的临床!这莫不是假的吧?我自己学习的时候也觉得非常不可思议。但是中医的疗效放在面前。它在现代也是经得起统计学的考验的,即便没有中成药通过以西医诊断为规则的美国FDA认证,但至少绝对不是安慰剂。
可是理工科的朋友们就不服气了,因为中医理论超越他们的认知,因此很多现象不能用逻辑来解释,也确实有很多“被中医药的疗效遗忘”的未愈个案,所以他们这么黑中医,那也不奇怪了。
而在我看来,中医中药在现代的框架下有很多无法认知却异常有效的部分,这些需要我们这些现代人一点一点去挖掘,去验证,去探索。
当然创新的必要前提是传承,传承,传承。请不要觉得我们整天就是跳大神不科学,因为只有将她完整地传承下来,才能有认知,发展和扬弃;才能做临床试验,才能有分子通路的研究啊。
如果不信任中医,我支持大家用脚投票,不要紧的。但请不要用最恶毒的心去揣摩我们中医药工作者。
本人欢迎各学科的大佬通过自己的方式研究中医学。学术争鸣是更加欢迎。
厌恶随意给中医学套上“不科学”的帽子,或者拍拍脑袋、打打比方就不负责任地否定中医学的行为。