对于刚入软件行业的年轻人而言,编程语言的纵横对比是敏感的。等老一点后,这样的话题便可以稍微谈论一下了。
我想这个世界上是没有任何一门编程语言是完美的吧。与此同时每一门编程语言都有它所擅长与不擅长的方面。博览多种语言,采众家所长诚然是一种美好。若是非要给各个语言排座次、论高低,难免就要陷入到无谓的争论之中了。
在编程语言的世界里,我觉得C++与Python可以算的上一组有趣的对比。这两者我都用,主业C++,业余爱好Python。
可爱的Python
抽象上说,C++的设计像是哲学上对完美的一种追求与尝试。它既要兼顾着效率又要强大的抽象与代码通用性。造成的结果是在实际使用中,让像我这样的初级程序员感到无所适从。因为很多东西都不是直观呈现的,而是背后隐含着种种精美的构思与抽象。你要花很多时间去熟悉、适应它。举个例子,C++的标准string类竟然没有split方法。我知道通过一系列的迭代器、算法、函数对象组合能实现这个功能,可毕竟绕了一圈。
从某种意义上说,Python就像是硬币的另一面。它所推崇的“开箱即用”主义力图让一切都显得直观、简便。很多预先学习过其它编程语言的程序员在第一次使用python的时候都会被其难以置信的“贴心”所打动。举个例子,Python里的文件对象,可以直接放在for循环里迭代,结果绝大多数时候恰恰是你想要的。这也是python为何会越来越火,越来越被初学者所推崇的原因之一。
当然了,事物总是有它的弊端,我想Python的弊端大约是工程庞大之后,越来越失控的管理调试、维护成本吧。
究其根本, 编程语言是由人创造的。而每一门语言的创立背后都有它的指导哲学与思想。C++与Python可以说是两种思想的有趣对比。若是一个程序员能两者都了解,想来能扩展自己的见识。