Java帝国对Python的渗透能成功吗?
作者:CQITer小编 时间:2019-02-26 21:02
Java 帝国已经成立20多年,经过历代国王的励精图治,可以说是地大物博,码农众多。
可是国王依然不满足,整天想着如何继续开拓疆土, 这一天晚上他又把几个重臣招来商议了。
IO大臣说:“陛下,现在天下大势初定,我Java帝国已经占据了后端开发,大数据,Android开发等重要地盘,再想拓展殊为不易!”
“是啊, 前端被JavaScript所盘踞,我们很难渗透啊。” 线程大臣补充。
国王点点头,这话不错,JavaScript一统前端,Flash消失了,Applet不见了。想到Applet,国王就一阵心痛,当时Java是靠了Applet才引起码农的关注,一炮走红,后来怎么就不行了呢?
“那人工智能呢?” 国王狠狠地问道。
“陛下明鉴,人工智能底层都是C/C++的地盘,应用层被Python等所侵占。 ” JDBC大臣回答。
“云计算呢?”
“似乎是Go语言的地盘。”
“嘶——” 国王觉得有点牙疼。
IO大臣赶紧为君主分忧:“陛下,现在群雄涿鹿,八分天下,边境战火连年不息,陛下不仅维持住祖宗的基业,还有不小的扩展,已经是一代圣主了,不过多年征战,民力维艰,老臣有一计,也许能换来奇效。”
“爱卿快讲!”
“老臣以为不战而屈人之兵才是上策,作为世界最强之王国,不仅要武力上震慑群雄,更要输出我堂堂Java帝国之文化和价值观。”
“什么文化和价值观?”
“首先我们要大肆宣扬静态语言的种种好处,比如编译期检查发现错误,代码适合阅读和维护,适合大规模团队合作,口号我都想好了,就叫‘动态一时爽,重构火葬场!’ ”
“嗯,这口号不错!” 国王赞许,“爱卿真是老成谋国。”
“可是有些语言也是静态的啊!你怎么宣传?” 老对头线程大臣发难。
“陛下您想想,我们有很多宝贝,” IO大臣根本不理线程大臣, 继续侃侃而谈:“ 比如IoC, AOP,反射、动态代理、泛型、注解、JDBC、JMS...... 还有我们引以为豪的JVM。这些东西,那些国家可不一定有,我们派出传教士,把这些东西灌输给他们的臣民,让他们体会到Java的种种好处,慢慢地就把他们给同化了!到时候他们的码农自然而然就会加入我Java帝国。”
“陛下万万不可,不同的语言有不同的特点,我们的文化别人是接受不了的,到时候只会引起群雄耻笑。” 线程大臣觉得IO大臣脑洞大开,简直是胡闹,非要误国不可。
“可以一试嘛!” 国王牙不疼了,“此事由IO大臣全权负责,一年后看效果。”
泛型
作为被派往Python王国的传教士,吉森带着IO大臣的重托,风尘仆仆,终于来到了Python 王国。
IO大臣在挑选人选的时候,有个重要的原则:是Java的死忠粉丝,最好是对其他语言根本不了解,省得思想被污染。 这吉森就是其中的佼佼者。
吉森先找到一个地方安顿下来,然后边四处闲逛, 他惊奇地发现,这里类方法中的self 满天飞, 还有强制代码缩进,果然和我大Java不同,颇有异域风情。
前面是个茶馆,人声鼎沸, 吉森走了进去,看看能不能牛刀小试,宣扬一下Java的文化。
“小二,我观察了半天,你们这里怎么没有讨论泛型啊?” 吉森拉住上茶的店小二。
“泛型? 那是什么东西? ” 小二大惑不解。
“你肯定是个外乡人,不是来自C++就是Java,我说得没错吧?” 旁边不知道什么时候来了一个老头儿。
“老先生眼光不错,我确实从Java王国来,我很纳闷,这里怎么没有泛型啊,据我所知, 泛型可以在编译期做类型检查,码农们在写代码的时候也不需要做类型的转换,非常好用的啊。” 吉森开始灌输Java的种种好处。
List files = new ArrayList();
String file = files.get(0); //不必做强制类型转换
files.add(new File(.....)) ; // 编译错误
“外乡人,我们Python中的变量是不需要声明类型的,不会做编译期类型检查,只有在运行时才会检查这个变量到底是什么类型,能否调用它的方法, 你说,我们要泛型有什么用?”
吉森大惊,卧槽,这IO大臣怎么没告诉自己啊, 人家根本就没这个需求!
想想我大Java费了那么大劲儿去实现泛型,没想到在Python这里完全无用武之地, 还输出什么文化! 传什么教!
反射



