精通python能干嘛-精通java能否给学习python或者其他语言带来便利?

我是先学Java(03年开始,十几年写了无数代码),然后再学的Python(2012开始),刚开始写出来的Python就像Java,完全没有掌握Pythonic的神髓,直到最近半年才有点找到门道,说明精通Java反而有可能成为你的绊脚石。

我个人的体会

两类语言不太一样,虽然都是支持面向对象的,但是Java是静态语言,类结构是预先设计好的固定的,而Python是动态类型的,更多的倾向于使用鸭子类型(Duck Type),这点上的不同,要写很多(10w+)才能有真正体会。

Python函数和变量一样,可以当做值传来传去,于是Java里面很高大上的aop、cglib、动态代理、配置一堆的东西,被Python几行代码就能替代。Java里面常用的设计模式,比如策略、责任链模式之类的,在Python也就是传递函数就好了,根本不用预先定义接口。可以说用了动态语言,设计模式这本书要重写了。

另外Python有些函数式的东西,map reduce filter lambda,这个Java8才开始有(个人认为Java8有点成为和以往不同的Java语言了)。

Python有特别好用的list comprehension,特别喜欢用list comprehension解析json之类,使用Java,就是很死板的语法了,一大堆异常、空值要处理,烦。

最近在继续研究Python的一些generator、yield之类的,感觉这个和Java的util.concurrent的Future是解决同一个问题的不同思路,细节正在比较。

总而言之多学语言有好处,但是不是去学Java、C#、C++这样很相近的从一个根派生出来的语言

建议楼主学习一下不同范式的语言,命令式、函数式...甚至同样的面向对象语言,也有继承和原型两种范式(Java、Javascript),这些范式对更好的运用当前的语言会够很大的帮助,我个人觉得学Python太晚了,吃亏了。我现在还在努力学习入门Clojure。希望对你有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值