python反思

开始是抱着不论怎样拼装,也不管内部运作机理如何,先跑起来再说。这样的想法,在初期还是很有启蒙作用的。到后期,只会让自己的思路模糊起来,写出来的代码也是混乱不堪。现在有必要纠正一下思路了,最重要的是代码系统的工作原理和哲学基础,这样才能看到一个清晰的代码世界。知道代码细节技巧有时候很美妙,但我们不是为了展现技巧才去写代码的。组织架构才是最重要的,虽然技术细节有时候的确能让代码具有魔法。接下来还是用弄懂底层和整体上的工作原理,这样才能不会着相。因为开始什么都不懂所以才着急着去弄懂语言的特性,才着急着去想整体的架构和设计。其实这都是无所谓的事情,如果一直在纠结这些问题,那么还真是寸步难行,原地打转。编程,就是有想法了,立刻去做,不用管做得好坏,中间遇到一个问题解决一个,然后整体框架就出来了。好多的思路和想法,灵感都是在编程的过程中才产生的。什么才是所谓的编程界的极客呢?是掌握了语言特性的人嘛?是熟悉函数库的人嘛?是能使用各种框架的人嘛?是能熟练操控硬件的人嘛?是精通数学的人嘛?是对事物和社会有深刻认识的人嘛?是极具思想和富有想法的人嘛?我想这些多有必要的,但是绝对不能把顺序放错了。语言嘛,表达思想的工具而已,虽然有时候思想能被语言塑造。于是开始考虑几个背反的问题。编程是数学还是哲学?是面向硬件还是面向问题?是表述世界还是实现想法?是为了世界的真相还是为了精神的自由?是在造轮子还是搭积木?我以为,只有站在数学之上的人,才能站在编程的顶点。只有站在哲学之上的人,才能更深刻地理解语言,人,世界这三者的关系。数学家说,世界是数学的。的确,他们总是能把事物中包含数学部分抽象出来,然后再回过头来解释解决问题的方法是如何可能或如何不可能的。黑客在入侵一个网络的时候,他们总是站在入侵可能的前提之上的。虽然他们没有用数据工具去分析。他们拿起他们熟悉的工具,作为连通人,事,物闭环的入口。有了入手口,然后就一步步的连接过去,于是他们就控制了某个网络。而数学家,则认为这是在利用工具搭积木的一次性活动,而他们更关心的是如何用数学来好好的和我们面前的这个世界沟通。于是有了图灵机,于是又了lambda演算,有了lisp。的确对一个极富思想的程序员来说,他唯一在乎的就是这个语言的表达能力。而数学正是描述世界的绝佳工具。lisp恰巧沟通了数学和硬件。其他的程序语言,或者偏向硬件,或者偏向问题。这都无关紧要,重要的是,他们其实是数学方言。这样,以后学新语言的时候,就不用像读一个说明书那样无聊了,你应该站在语言设计师的角度去考虑问题了,以后说不定你在解决某个问题的时候,就要必要设计一个自己的语言了。只有站在数学的顶层或者硬件之上的大师,才能看到一个清晰的世界。

你可能感兴趣的:(python反思)