人生苦短,为何要用Python

前言

作为一个非计算机专业的人,接触过的编程语言其实也不算少了。入门的经典C语言就不必说了,用过C#,C++做一些小软件,现在主要用Python偶尔加R辅助,再加上曾尝试写过一两行代码的IDL和Matlab。正所谓贪多嚼不烂,哪一个都没能精通甚至谈的上熟练使用。出国留学之后,希望能做一些和机器学习相关的内容,网上搜罗一遍,看各种语言之争,最后决定从Python入手,至少到目前觉得Python值得我投入那么多时间去学习掌握它。

机器学习|人生苦短,为何要用Python

下面我们就从目前比较流行的开发技术Java来说起,因为Java已经几年蝉联开发语言的宝座(TIOBE[1]排名):

机器学习|人生苦短,为何要用Python

一、从流行的Java看IT技术的趋势

1. Java成功的基因

因电视机机顶盒、微波炉等硬件应用开发,Java起于1990年,发布于1992年;但从Java诞生开始,Java除了能解决一些硬件开发项目以外,一直默默无闻;

但从1990年,第一款浏览器[2]诞生开始,就一直纠结于静态页面缺乏良好的交互性,Java发挥嵌入式优势(嵌入浏览器中动态执行)提供Applet技术实现,暂时解决了早起网页的交互性(鄙人就是在2000年左右看见第一款用JavaApplet编写的网页3D菜单而被Java所吸引)。后来浏览器厂商(NetScape公司)借鉴Java的语法,制定了Javascript语言标准,才算彻底解决了网页的动态交互问题。

1998年,当时的Sun公司,把Java细分为J2SE、J2ME、J2EE、JCard等应用技术领域,通过在美国证券交易所取得完整的企业信息管理与交易系统的商业成功,开始逐步取代当时的ASP与PHP(后来PHP在国内借助页游春回二度就是题外话了)占领取企业开发市场的。其中J2EE(现在官方称呼已经更名为JavaEE)在企业中借助开源,如火如荼发展处各种各样的开源框架技术,取得目前所拥有的霸主地位。

Java的成功目前主要在于两个市场:(1)移动开发市场(主要是Android,J2ME在2008年就基本上随着Nokia的被收购,丢失市场份额);(2)企业开发市场。这两个市场的成功不是偶然的,都是基于Java的两个基因:嵌入式与互联网基因。

机器学习|人生苦短,为何要用Python

Java的故事

2. Java的定格

当中国信息化基本上完整结构性建设后,现在面临的是大量企业因信息化产生的业务数据的处理问题与价值挖掘的需求。而传统的信息化建设将面临天花板。有一个迹象可以反馈出来:很多高等院校的外包服务专业开始取消,部分软件学院开始改名为数据科学和大数据应用。

正是因为Java对信息化建设的成功,开启了一个新的时代【大数据时代】,传统的Java尽管擅长构建大数据信息化框架,却不擅长数据的分析处理;工程师们开始尝试新的技术:Scala语言,R语言,Matlab语言,Python语言等等。

机器学习|人生苦短,为何要用Python

Java、大数据与数据分析

从目前各种迹象(企业招聘,语言排名等)看来Python应该是暂时领先,这得力于Python的厚积薄发。下面是鄙人个人出于职业求职原因,在Boss直聘2年来关注的职业信息:

机器学习|人生苦短,为何要用Python

算法工程师与Python工程师

二、选择Python不仅仅是选择一门语言

1. 选Python就是选择趋势

语言本身不具备生命力,其生命力来自企业应用(正如软件开发是一种寄生产业一样,没有产业就没有信息化;产业是朝阳产业,软件开发就欣欣向上;所以软件开发除了选技术,还要在掌握技术后,选择产业;比如现在很多人选择电商开发就是一种潮流)

所以我们选择Python不是因为Python本身,而是产业因为数据处理的需求,选择了Python,我们也选择Python就是选择了数据分析的企业需求与职业机会。Python绑在螃蟹上就是螃蟹价,绑在白菜上就是白菜价。

我们选择Python就是选择了一种企业技术趋势--数据分析,可能在N年后,Python会被其他语言替代(Swift语言,Julia语言,Go语言都虎视眈眈,奔新的技术趋势而来。不过我认为因为都是新兴语言,还是缺乏积累,可以值得关注,不值得消耗过分的学习成本)。

下面是Python的发展,其历史沉淀足矣支撑企业新技术开发。

机器学习|人生苦短,为何要用Python

Python的发展足够厚重,只是缺少一个机会

Python长期在学术界与科研界使用,当算法等从学术殿堂走向产业的时候,Python被选择是丝毫不奇怪的。

2. Python所代表的企业技术趋势

实际上P数据分析仅仅是开始,因数据分析的商业应用触发,数据分析从框架剥离出来,形成单独的技术:数据科学;当剥离数据后,核心就是算法,而算法是人工智能的强项,人工智能散发第三春,开启商业应用之路。

机器学习|人生苦短,为何要用Python

大数据应用->数据科学->人工智能

其实Java在企业信息化的成功应用后时代,应该是智能时代,以智能算法为核心的新的商业应用蓬勃发展:智能算法像水银一样倾泄到各种传统商业应用,产生各种创新。

三、我们选择Python用来做什么?

既然我们选择了Python,就决定我们把Python当成一把斩刀,既在传统应用有所作为,也在新兴领域建功立业。

实际上,作为一门语言,很多Java能实现的,使用Python都能实现,但在运维,科学计算是Python的传统领域强项(Python早起的初衷是给非计算机专业的人群开发的)

1. 传统领域(语言本身的功能)

系统运维,网络编程,GUI用户界面,数据库(关系数据库与NoSQL数据库)访问,数据解析(正则表达式与JSON、XML数据),游戏(OpenGL),Web服务开发,自动化测试,其他第三方独特的应用(文档处理等等)

2. 新兴领域(语言具备的计算功能)

数据计算,

机器学习深度学习(神经网络),数据分析数据采集(爬虫),计算框架(Tensorflow等),数据可视化


分享到:


相關文章: