Rob Pike 语录
内容提要
这篇文章总结了Rob Pike的编程格言和观点,包括引入抽象层解决问题、数据结构重要性、面向对象设计复杂性、实践重要性、见识限制想象力、计算机技术趋势、过度限制程序员、缓存不是架构、工程师乐趣、不要过早优化、Unix未消亡、语言应提供工具、缓存bug复杂、Unix主流、真正智能、Socket编程难用、实用性重要。
关键要点
-
计算机领域里,没有什么问题是加一层间接寻址解决不了的。
-
数据为王,编程的核心在于数据结构,而不是算法。
-
面向对象设计就是计算机界的罗马数字,可能导致代码复杂、难以理解和维护。
-
光想是没什么出路的,该动手实践了。
-
见识短浅,想象力就会受限。
-
现代计算:简单的东西变得过于复杂,复杂的东西依旧复杂。
-
过程名应该反映它做什么;函数名应该反映它返回什么。
-
花哨的算法在数据小时龟速,而数据往往就不大。
-
UNIX不仅已经死了,臭的都快熏死人了。
-
想要杜绝傻瓜行为的编程语言,往往自己也变得傻不拉几。
-
缓存不是架构,只是个优化手段而已。
-
没有类型层次,就不用费劲去管理类型层次了。
-
生产力最重要,但工程师的乐趣才是第一位。
-
你猜不准程序会在哪里耗时,性能瓶颈总在意想不到的地方冒出来。
-
如果POSIX线程算好东西,我都不敢想它比什么还好。
-
缓存的bug,哪个不是妖魔鬼怪。
-
用 Unix 就跟只听大卫·卡西迪的歌似的,纯属乐坛井底之蛙。
-
智能终端可不是自作聪明的终端,而是你能调教的好帮手。
-
Socket 是 IO 接口的 X Window,复杂、难用。
-
搞个理论上不那么刺激的编程语言干嘛?因为好用啊,能用才是王道。
-
并发与并行不是同一回事。
延伸问答
Rob Pike对数据结构的重要性有什么看法?
Rob Pike认为编程的核心在于数据结构,而不是算法,强调数据的组织和表示方式比具体算法更重要。
Rob Pike如何看待面向对象设计?
他将面向对象设计比作罗马数字,认为其复杂性和低效性可能导致代码难以理解和维护。
Rob Pike提到的'光想没出路'是什么意思?
这句话强调了在技术和创新领域,实践比单纯思考更重要,鼓励程序员动手实践。
Rob Pike对现代计算的看法是什么?
他批评现代计算的复杂性,认为简单的东西被复杂化,而复杂的东西依然复杂,反映了设计中的问题。
Rob Pike对缓存的看法是什么?
他认为缓存不是架构,而只是优化手段,强调良好的架构设计才是关键。
Rob Pike如何看待程序性能优化?
他指出性能瓶颈常在意想不到的地方出现,强调在优化前应通过数据分析确认瓶颈位置。