php转向go,这就是我为什么从 PHP 转向 Go 的原因

150

355 天前   b7048e5c0150a989fed46971f5ac1886.png 1

@liuxu #147 你这个回复信息量有点大,一点点说

首先,我在 #128 和 #138 的回复,都是表达“把‘语言本身’和非‘语言本身’的东西”分开的意思。

然后,就我个人而言,我并没有说哪个语言“不如”哪个语言,或者哪种语言“不如”哪种语言的意思。比如我在 #138 说的是“PHP 不适合自己”,而不是“PHP ‘不好’”,也就是说我认为楼主本主题表达的是个人观点,但是为什么这个“个人观点”(以及如你所说,本站其他人的“个人观点”)听起来就好像“哪个语言‘不如’哪个语言,或者哪种语言‘不如’哪种语言“呢?

我先说我的个人观点,对于”动态类型和静态类型没有谁好谁坏“,”脚本语言和编译型语言有什么好与不好的“这种言论我不评价,我个人偏向于说”不同的语言以及不同种类的语言适合不同的场景“。

比如静态类型语言在”交互式使用“的场景下一般就不如动态类型语言好用,我目前没见过静态类型语言有好用的交互式 shell 。

但是说到(虽然楼主一直没说但是你一直在说的)性能问题,静态类型语言的”性能天花板“是要比动态类型语言高的,我不止一次说过这个问题: https://v2ex.com/t/594287#r_7803900 https://v2ex.com/t/632869#r_8401400 然而换到另一个角度,这个性能天花板有多重要,到底什么时候能达到性能天花板,这又是另一个问题。

很多人没有意识到的一件事是,我们现在说的话,做的决定,干的事,都是建立在大量的假设( assumption )下的,这些假设,很多人习以为常但是并不自知(有时我们把这种东西叫做“常识”)。比如上一段说的性能问题,是建立在现有主流计算机体系架构的前提下的,如果换到一个不同的架构中,结论可能会不一样。

接受和学习新东西的过程,很大可能伴随着”不断发现并打破自己原有的假设“的过程(现在某些人喜欢用”重建三观“之类的词来表述这一过程)。

比如数据库这东西,十年前可能大多数人会觉得数据库一定要有 SQL,没有 SQL 不叫数据库,NoSQL 火了之后才发现原来数据库可以有其它的形式。

有些老一辈就有”网上的一定是骗人的“之类的假设,如果不能打破这种假设的话,肯定是不能享受各种互联网应用的。

注意这个“发现并打破原有的假设”的过程,是在新事物的输入下,被动触发的。而相应的可以认为,创造新东西的过程,则是主动的”寻找未被打破的假设并试图将其打破“的过程,这些”未被打破的假设“,很大概率上就是大家”习以为常但是并不自知“的。

比如 GPU,最开始只是拿来显示界面和玩游戏的,你需要信号转换就给你加信号转换电路,你需要 3D 投影和灯光就给你加投影灯光电路,我就满足我手头的需求就可以了。后来有人发现游戏越来越复杂,总加功能不是个事,该改变模式了,于是把其中的某些组件做成了可编程的,大家写的游戏花样也越来越多。这时候它名字还叫 GPU,宣传还是游戏画面多么好。后来有人从这坑里面跳出来了,发现这东西跟 vector processor 有啥区别呢,能编程算力又高,好像没人规定我只能做 rasterization 吧,于是 GPGPU 出现了。又过了十几年 GPGPU 的风把老黄吹上风口了,图形领域一群无聊的人在比谁的全局光照和光线追踪算法效果更好效率更高,老黄告诉他们我在 GPU 里面把这东西做进去了,你们软件的问题我用硬件解决了,现在是你们发挥的时候了——NVIDIA 的人在 DXR API 教程中说:”在 Programmable Shading 刚刚引入的时候,很多人以我们根本无法想像的方式使用这个功能,做出了很多奇奇怪怪的效果( https://www.shadertoy.com ),现在又有新的功能了,并且它是可编程的,我希望能复制当年的盛况,硬件 Raytracing 的能力并不仅仅能用来做 Raytracing,或者说,Raytracing API 并没有’正确‘的用法( There isn't a 'Right' way to use Ray Tracing.)“

再有,哥白尼所提出的“日心说”,其实按照现在的观点并不完全“正确”,然而它在历史上依然有很重要的地位,就是因为在当时的环境下“地心说”属于“习以为常但并不自知”的东西,哥白尼思考、 挑战并打破了这一“常识“。

哥白尼这个例子的有趣之处在于,哥白尼所打破的常识(假设),是在特殊的宗教环境下形成与维持的。这种“特殊环境”和本站有一定的相似之处——本站的主体用户群体是所谓“互联网”行业的程序员,所开发的东西大体也类似,所以本站的大多数言论,其实都是在“程序员”“互联网行业”“互联网应用”甚至”男性““一二线城市”之类的假设之下。

而我前面说了,很多人无法意识到自己平常所做的“习以为常但并不自知”的假设,所以会轻易地无视掉这些假设,对自己的观点进行 generalize——比如某语言在互联网行业不好用,那就是没用的语言;某技术我用着不对付,那就是垃圾的技术,这就构成了你看到的“某语言‘不如’某某语言”的言论。

这并不限于本站,其实大多数人都是这样,我上面说了:创造者打破假设,学习者的通过跟随创造者的脚步,才能意识到“啊,原来还可以这样”。大多数人并没有足够的“寻找并打破假设”的能力(或者说可能有这个能力,但是没这个意识),所以大多数人并不能创造出什么新东西来。

但是这种能力的缺失的锅,我认为不能甩到“大多数人”身上,毕竟一个人从出生开始,就被社会进行各种各样的规训,大多数人接受的教育也并不注重这方面的内容——这些规训和教育,都是让你接受并巩固已有的东西(思维定式)的过程,接受的越多,就越有可能成为社会合格的螺丝钉,也越没可能发现并跳出假设。(有没有可能不接受这些假设,从而让自己成为一个彻划时代的创新者呢?不太现实,我认为文明的一个重要前提是知识的代际传递,拒绝前人知识与这一点相悖)

还有一种可能,就是人们能够意识到自己所做的一些假设(比如“仅适用于互联网行业”活着“仅仅是我的个人体验和个人观点”),但是在发表言论时,并不会有意对这些假设进行说明。这个锅同样也不能甩到“大多数人”身上,因为我们做了无数多的假设,没人能枚举整个上下文中所有的假设,更不能完整地写出来。自然语言的局限性要背一部分锅,毕竟在编程语言中,每个变量是什么值,每个结构是什么意思,上下文中有什么东西,都可以通过查源码和 spec (如果有的话)来严格地定义,自然语言做不到。

简单来说可以认为,本站的大多数帖子中,当出现“某语言不如某某语言好用”这样的言论时,脑内需要自动变换为“某语言在互联网项目中不如某某语言好用”,甚至“某语言我用着不如某某语言好用”。所以我对楼主主题内容的理解是“楼主认为 PHP 不适合自己”。

这是我对你所说的“V 站怪现象”的解释。(当然,我并没有做“某个人或者某群人存在奇怪的恶意”这样的假设,我在这里额外做的假设是“楼主,以及大多数发表类似言论的人,表达的都是自己真实的个人感受”)

值得一提的是,这个理论和 Elon Musk 以及 Jim Keller 等人经常说的“First Principle”有一定相似之处。按照 Jim Keller 的话说:”(Elon Musk) has a deep belief that no matter what you do, it's a local maximum…Elon was good at taking everything apart and what's the deep first principle. That ability to look at it without assumptions and how constraints. And that's super fun and he's into it“ (

) 很明显他认为 Elon Musk 是有很强的“寻找并打破假设”的能力的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值