python简单主要在于它是动态语言,既然是动态语言,也有它的不足之处,比如像你说的有时不知道返回的值和输入的参数是什么类型,必须运行时才会报错。这个其实你在这个问题中已经讲了动态语言的优缺点。有选择就有利弊,比如像JAVA、C#之类的静态语法适合开发大工程的项目,它编译时就知道错误在哪里,静态语言在代码维护性方面和动态语法完全没法比较,更别提动态语言的重构了,不过这也是你一开始就选择接受了python这类动态语言带来的不足,但python开发快,类库又多,出活没问题,写个小工具轻轻松松,这是静态语言在效率上所不能比的。
说点python题外话:如果用python 做web开发的话基本上不用想,正常公司web开发还是优先考虑java、go、C#这些,一是考虑稳定性二是考虑可维护性。java里大部分啰啰嗦嗦的东西基本上都是为了别人交接的话能很快知道怎么处理。python里就不说别的,能做到变量引用不乱套,对于很多初级选手而言就已经是个难关了 。其他领域的话运维还算是对python比较友好的了,其他的基本上都是辅助为主了,你甚至写到简历里人家看都不会看一下。
一个好的程序员可以在一个星期内学会一个scripting language。所以我向来只请好的程序员,而不是会Python的程序员。如果来面试的不断强调自己会Python,反而会扣分。能用bash script 或者 csh script写出来的,才会让人刮目相看。