Python 相較於Java 而言,有什麼優勢?
每種語言都有適合自己使用的場景。
一個後端工程師必備的能力就是選擇合適的場景去選擇合適的語言。
而且,Java程序員往往多少都會點Python。
所以,並不存在說Java程序員和Python程序員之間的紛爭問題。
確切的說,大家爭執的應該是,什麼樣的場景下用什麼樣的語言,有沒有最佳實踐?
適合Python的場景如下:
1、各種運維腳本
包括但不限於統計日誌分析,發送郵件,定時任務,解析文本,替換配置文件等等等等。
Python比Shell更強大,天生就是最適合做運維腳本的東西。
而隨着devops的普及,各種小的運維腳本有了Python之後簡直是如虎添翼。
2、小型爬蟲
如果你要抓取百度新聞,微博,或者是其他論壇等,不需要考慮太多抓取權重,去重等等,用Scrapy爽的不要不要的,特別是在解析xpath方面,在這一點上,Python的簡潔完全是碾壓Java的。
Java解析Json就是一場惡夢,Python和JS處理這種東西輕巧的想要飛。
抓取的內容簡單入庫也很容易,所以如果是要求不高,純粹的抓取入庫,Python完勝。
3、文本處理
假設你要處理文本,截取,排序等等等等,Python寫的小東西真的比Java好用多了,或者是說,我需要跑個定時任務,(tj.java.tedu.cn)定期調一下第三方Api寫到某個DB裏。這些東西都是Python最擅長的地方。
4、算法
NLP和DM中很多算法都適合用Python來做,不過我瞭解的不多,還是用Java爲主。但是推測的出來,算法領域上Python比Java要強很多。
從以上的分析看的出,Python適合的場景是小,跟其他的系統的交互比較少,不需要考慮大數據量和併發訪問,不會有太複雜的結構,也很少會有什麼需求變更,更多的像是Tools。
這也是符合腳本語言的特性。
所以在這些領域裏,Python比Java牛是很正常的,如上所述,在不同的使用場景下來決定用什麼來完成任務,是架構師一個很重要的職責。