• 由全能悖论而引发的思考


          本文仅代表我的个人观点,欢迎各位批评与指正。

          如果有人说上帝是全能的,似乎会被别人笑死。为啥呢,因为似乎“上帝没法创造一个他自己都搬不动的石头”。这问题在哲学上引起过广泛的思考。但是如果是一个程序员,似乎完全不会纠结这个问题。上帝必需是全能的。为什么呢?因为,上帝拥有命名权,所有人对语言的解释权只要在上帝手里一切都好办。
     
          “上帝能否创造一个他自己都搬不动的石头?”,用程序员的角度来思考,把这句话断个句:上帝能否创造一个“他自己都搬不动的石头”?答案当然是能啦,上帝随便找个石头,把他改名成“他自己都搬不动的石头”。恩,无论人类怎么表述这句话,只要上帝稍稍改改名就行了。如果拿中国的来说事呢?
     
         “上帝能够画一个方的圆吗?”当然也可以啦,程序员表示完全木有压力啊。计算机是不知道圆是什么形状的,那么无论我是把一个矩形定义为圆(Rectangle circle = new Rectangle();),还是把一个圆定义为矩形(Circle rectangle = new Circle();),这都是成立的。
     
         所以说,创造者从某种意义上来说是永远全能的。因为,他能够掌握被创造者对语言和逻辑的理解,即时是再荒谬的语言,创造者也可以通过更改对语言的语素和语义的理解而达成任何一个“凡人”看上去无法理解的命题。程序员作为程序的创造者和实现者,对于自己的某个程序,程序员也应该是全能的。如果使用这种全能性,就成了程序员必修的一门功课。
     
        使用全能悖论往往可以给一些人造成不小的麻烦。比如,我常做的.net应用程序,这货有个工具叫Reflector,反编译代码完全无压力有木有啊。有些程序员使用花指令,混淆变量名的办法来阻止我们阅读源代码。这也就是全能悖论的一种应用。但是,我更喜欢的就是使用别人先入为主的办法,把所有类的名字改一下,改的有意义但是又无法组合的情况就可以了。因为,即使是花指令也是有一定的结构,而逻辑无法理解的变量名是无法阻止我阅读源代码的。但是,一个有逻辑意义的单词往往可以让阅读代码的人痛不欲生,由其是关键类名的名称改变。
     
        还记得说慌的最高境界吗?十名话里有一句是假的其它几句是真的,这才是最高境界。而阻止别人阅读代码的最好办法,也不外乎就是如此吧。恩画一个正方形的圆。
    public class Circle
    {
    public int r
    {
    get;
    set;
    }

    public void Draw()
    {
    int w = 2 * Math.Cos(Math.PI / 4);
    //Draw
    }
    }
         因为只有一个思想,所以也没有细细的去写那个代码,但是 我想即时是使用画圆的方法也可以画出来吧,本身嘛,一个圆的内切正方形只有一个,这个其实不算什么。但是,由此可以引发的其它感想还是蛮不少的。恩最后,我想说的是:
     
         今天,你全能了吗?
     
  • 相关阅读:
    C#开发ActiveX可行性研究 简单飞扬
    有几件事情 简单飞扬
    1 简单飞扬
    宁静 会一直存在么 简单飞扬
    java 项目中遇到的错误 简单飞扬
    开发线程安全的Spring Web应用(转) 简单飞扬
    p2p网站即时通信 简单飞扬
    游戏外挂原理和技术分析(关于魔力宝贝) 简单飞扬
    关于java使用javacomm20win32实践总结 (转) 简单飞扬
    Java 串口编程 简单飞扬
  • 原文地址:https://www.cnblogs.com/Pray4U/p/2334194.html
Copyright © 2020-2023  润新知