编程语言扎堆整容,Python成整容模板

诗书塞外 Python程序员
编程语言扎堆整容,Python成整容模板
Python2到Python3的迁移让Python社区苦不堪言,但是只有Python社区有这样的分裂吗?绝不是,其实很多语言都面临着迁移的问题,而且有的语言的升级换代堪称整容,整容的模板就是Python。

1、JavaScript 5 升级到 JavaScript 6

这样说其实不太准确,JavaScript的语言标准叫做ECMAScript,所以确切地说就是ECMAScript5升级到ECMAScript6.

这次升级带来的主要特性有Symbol, Proxy, Reflect, Set, Map, Iterator, for...of, Generator, Promise, 异步操作和Async, Class, Decorator, Module.

大家注意看橘黄色的部分,是否有一种Python3.6的即视感呢?接下来我们看一下ES6和Python3在类定义上面的对比:
编程语言扎堆整容,Python成整容模板
何其神似啊~JS社区目前遇到的情景和几年前的Python是一样的,语言推出新标准,但是社区及工具链的迁移需要数年的时间,祝他们好运~

2、swift 2 升级到 swift 3

swift 的升级相比于JS和Python的升级,其实是相对小的升级,但是它仍旧是和2不兼容的!swift 函数和属性的命名很多继承了Objective-C“又臭又长”的特点,一个简单的函数调用画风都是这样的:

let content = listItemView.text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

这次升级在大量的API中去掉了无用冗余的部分,上边这句话就变成了下面这样:

let content = listItem.stringValue.trimming(.whitespaceAndNewlines)

虽然在Pythoner看来还不够简洁,但是对于swift粉们已经是一个重大的解脱了。在小编看来,这句话应该继续简化一下,变成这样:

let content = listItem.string.trim("\S+")

对于Swift和Objective-C的语法,小编只有一句评价:“No Zuo No Die.”

3、C++ 11的逆天改善。

C和C++都是静态语言的老大哥,谁也没有想到C++老大哥会在版本11中做出如此多跟得上潮流的改进。

首先是逆天的auto关键字

  • auto i = 1;
  • auto d = 1.0;
  • auto str = "Hello World";
  • auto ch = 'A';
    这样定义,变量i会自动被声明为整数,d被自动声明为浮点数,多么智能啊!希望下一个版本能把auto这个关键字也取消,反正本来用处也不大,直接i = 1就好了。

其次是逆天的lambda表达式

C++支持lambda表达式,太潮了!一个例子:

auto func1 = [](int i) { return i+4; };func1(6)

为什么我觉得写起来比Java还简单一点?速度又快,写起来又简单,没有天理(⊙o⊙)啊!

还有很多其他新潮的特性,C++的这次升级让不少人眼前一亮。

总结陈词

可以看出,编程语言更新换代是非常正常的一件事,没有一门语言是稳如泰山、从不改变的。而改进的方向恰好是向着越来越Pythonic而改进。这个现象不是巧合,是由于Python在设计时的哲学决定的。Python设计的哲学能够让大多数人认同,就像普世价值能够被大多数人认同一样,所以随着时间的推移,编程语言渐渐都会Python化,这就是编程语言的进化。

Python哲学

优美胜于丑陋
明了胜于晦涩
简单胜过复杂
复杂胜过凌乱
扁平胜于嵌套
间隔胜于紧凑
可读性很重要
即使假借特例的实用性之名,也不违背这些规则
虽然实用性次于纯度
错误不应该被无声的忽略
除非明确的沉默
当存在多种可能时,不要尝试去猜测
应该有一个,最好只有一个,明显能做到这一点
虽然这种 方式可能不容易,除非你是python之父
现在做总比不做好
虽然过去从未比现在好
如果这个实现不容易解释,那么它肯定是坏主意
如果这个实现容易解释,那么它很可能是个好主意
命名空间是一种绝妙的理念,应当多加利用

更多相关文章

  1. 扬眉吐气!Python力压Java,成为第二编程语言!
  2. Python超越Java成为最受欢迎的教学语言;9月,Adblock Plus可能会退
  3. 为什么说Python会成为最流行的编程语言?
  4. 模板方法模式在开源代码中应用
  5. 开始学习C语言
  6. C语言复习(一)

随机推荐

  1. 破解X眼电影字体动态加密|凹凸玩数据
  2. 2000万条直播数据,揭秘斗鱼主播生存现状
  3. “三本”应届走社招,已顺利拿 offer & 附
  4. Python 为什么使用缩进来划分代码块?
  5. Android(安卓)项目多版本管理
  6. Python 的缩进是不是反人类的设计?
  7. 官宣!Python 开发者大会(PyCon US)提供在线
  8. 小鹿海投几百份简历,能不能搭理我一下?
  9. Python 的十万个为什么?
  10. 数说:这只程序员组建的乐队为何能进HOT5?