Python 技术应用及现状

Download Report

Transcript Python 技术应用及现状

Python技术应用及现状
by 42qu.com
TIOBE编程语言排行
唯一两获「年度语言」称号的编程语言
TIOBE宣布
2007年度程序语言
2010年度语言大奖
TIOBE编程语言排名的评估方法
该评估是通过统计该编程语言在主流
搜索引擎上被搜索的次数来计算的
搜索包括在搜索引擎,新闻组及博客上的搜索等。主流搜
索引擎由Alexa.com网站上的排名来决定。
如果用"hits(PL#i,SE)"表示编程语言PL在搜索引擎SE上
的指数排名为i的搜索次数,n表示搜索引擎个数,则PL在
前50名编程语言中排名评估的计算公式为
((hits(PL#i,SE1)/hits(PL#1) + ... + hits(PL#50)) +
... + (hits(PL#i,SEn)/hits(PL#1) + ... +
hits(PL#50)))/n
4/13/2015
Tiobe 2010年度语言大奖 评语
• Python已经成为系统脚本“事实上”的标准
(在这个领域,它是Perl的后继者),但现
在它还应用到了各种不同类型的应用当中。
• Python是Web开发者热衷的语言,特别是与
Django框架的结合。
• 由于Python易学性,越来越多的大学开始将
Python作为教学语言了。
4/13/2015
4/13/2015
United Space Alliance (USA)
• 美国国家航空航天局 的 宇宙飞船部门
• Software engineers have long told their bosses and
clients that they can have software "fast, cheap, or
right," as long as they pick any two of those factors.
Getting all three? Forget about it!
快 , 廉价 和 正确 三者不可兼得?
Use Python
云计算服务OpenStack
• OpenStack有两个主要部分 :
Nova,起初是为NASA的计算处理服务而开
发Swift,是Rackspace开发的存储服务组件
。
• AMD、Intel、思科、戴尔、惠普、IBM、雅
虎等超过150个公司参与
• 完全由Python写成
Google三大编程语言之一
• Python where we can, C++ where we must
• 尽量使用Python,不得已时再C++
Google智能无人驾驶车
• 美国内华达州准许上路
• Thrun曾在斯坦福大学的自动驾驶课程教课
• Thrun拍了一段简短的预告视频,在视频里他就坐
在一辆Google无人驾驶汽车里,按下绿色按钮之
后,这辆车就自动启动开始跑起来了,同时汽车
自己还会说一句“我会驾驶哦”。
• Python
全球最大视频网站YouTobe
• 几乎全部使用Python写成
Quroa
Facebook CTO
Adam D'Angelo
离职创建
Python
4/13/2015
Quroa
有人问
为什么Quroa用Python ?
http://www.quora.com/Quora-Infrastructure/Why-did-Quora-choosePython-for-its-development
4/13/2015
Adam 站出来回复了:
Facebook继续使用PHP完全是因为历史原因,并不
是因为PHP现在是最好的选择。
...
Python的性能已经能够满足我们绝大部分需要,
而涉及性能关键的代码我们都尽可能使用C++实现
4/13/2015
Friendfeed
• python
Facebook CTO 布莱特-泰勒(Bret Taylor)
现任 , 上市后刚刚离职
• 泰勒之前曾在Google工作
• 离开Google之后,他创立了FreindFeed,它
曾是一个流行的社交聚合网,后被Facebook
收购
4/13/2015
Friend Feed
4/13/2015
Instagram
• 2012 年4月10日凌晨消息,Instagram 被
Facebook 以10亿美金收购
• 团队规模:13 人
• Use Python (服务端)
4/13/2015
Dropbox估值近百亿美元
• 桌面客户端
• 99.9 % 的代码由Python写成
• 易学易用,好读好写对于创业公司至关重
要
pycon 赞助商
4/13/2015
豆瓣
• 国内最大的书影音分享网站
• 中国网站排名 20
• 网站基于Python
豆瓣的背景
• Quixote
• Quixote是由美国全国研究创新联合会(CNRI,Corporation
for National Research Initiatives)的工程师A.M.Kuchling、
Neil Schemenauer和Greg Ward开发的一个轻量级Web框架。
和几乎所有的开源项目一样,Quixote也是为了满足实际需
要而出世的。
• CNRI当时在进行一个名为MEMS Exchange的项目
(http://www.mems-exchange.org/)。MEMS是微机电系
统的缩写,制造一个MEMS设备往往需要多种制造设备,
单个工厂可能无法提供所需的所有设备。因此,MEMS
Exchange项目就是要整合起多家制造厂的资源,利用互联
网派单和追踪制造过程,形成一个分布式的MEMS设备制
造网络。
4/13/2015
Quixote
• 起初,他们做了一个Java版的客户端程序提供给
用户,但他们发现,没有人愿意使用这个客户端
程序,大家还是习惯性地用邮件发送加工过程。
最终他们认识到,虽然客户端的表现力更强,功
能也更完整,但相比起要下载一个庞大的程序,
用户更加愿意使用他们每天面对的浏览器来做事
情。于是,他们决定改到Web界面上来,要做一
个Web应用。但是用Java的servlets开发Web应用是
一件非常低效的事情,所以他们选择了Zope(和
现在不同,在1999年,Python的Web应用框架没
有什么选择的余地,基本上是Zope一家独大)。3
个月的开发之后,他们得到了一个运转良好的系
统。
4/13/2015
Quixote
• 然而,Zope带来的快乐并没有持续多长时
间。几个月后,他们想提供更加复杂一点
的界面,却发现用Zope写的代码难以维护
和调试,在浏览器的文本编辑框里写代码
也实在不是什么好的体验。由于当时除了
Zope之外也没有什么别的Python Web框架,
他们决定:自己写一个!在2000年,编写
一个新的Web框架是类似于向风车挑战一样
的事情,开发团队自嘲地用堂吉诃德的名
字命名这个框架:Quixote。
4/13/2015
4/13/2015
SAE
4/13/2015
GAE
4/13/2015
文明4
用python写游戏的
人工智能脚本
4/13/2015
网易游戏
• Python 写 网络游戏的服务器
4/13/2015
网页游戏
• 热酷
– 日本最大的网络社交游戏
– 服务器端用Python
4/13/2015
开心农场
也许你还不知道什么是社会化游戏(Social Game),但是你一定知道
那款广受欢迎的游戏《开心农场》。没错,我们就是《开心农场》的
开发团队——五分钟(Five Minutes)!
《开心农场》自08年11月首次发布以来,迅速风靡在QQ、校内、51、
Manyou等各大SNS平台,日登陆用户超过1500万。目前,英文版
Happy Farm在全球最大的社交网络Facebook上发布,目前已挤入全球
前30名。
• 职位描述
•
•
•
•
有1年Python开发的工作经验;
熟悉Python的语法结构以及常用库,较好的独立开发能力,具备良好的代码
风格;
熟悉 MySQL和memcache 的相关操作,熟悉 Linux 系统基本操作理解 MVC 的
意义;
(备注:如果有服务端开发经验,对PYTHON开发很有兴趣,我们也非常渴望
加入!)
4/13/2015
木瓜移动
• 用python写手机游戏
• 用户突破5000万,过去6个月内我们的用户
数增长了2500万
• 每用户平均收入高达22美元
4/13/2015
every do
4/13/2015
其他创业公司
• 42区
• 知乎
• 街旁
• ... ...
中国Python开发者大会
4/13/2015
活跃的中文社区 python.cn
4/13/2015
MIT 和 斯坦福
• 编程入门课程均使用Python语言
创始人访谈
•
Leo Laporte:就我所知,最初 python 的设计是为了教学的目的,你想创建一个
用于学习和编程的语言,这么说对吗?
•
Guido van Rossum: 恩,很多人都这么认为,这个问题问的好,因为它让我可
以追溯一下 python 的背景。python 从一个叫 ABC 的语言继承了很多东西,而
ABC 这种语言在设计的时候就特别考虑到用于教学。那是在上世纪七十年代
晚期和八十年代早期,我在 abc 语言的实现小组,在那里我融入到语言设计
讨论,语言实现,脑力激荡中,相当的令人兴奋。在八十年代末期,89年
的时候,我觉得自己有必要创建一门新语言,我借鉴了 abc 语言中我所喜欢
的特点,并将其中我不喜欢的东西用自己创新的或一些借鉴自别处的想法取
而代之。我的目标要要建立一个为专业程序员使用的脚本语言,而这些专业
程序员主要使用 C 语言和 borne shell 脚本语言作为他们的主要开发语言。
python 的位置大概是介于 C 和 Shell 语言二者之间的,所以我创建 python 并
没有明确的教学目的.
因为我从ABC语言中借鉴了那么多,而 abc 本身又有教学
的目的在其中,所以我建立的语言也就很适合做教学语言
。
4/13/2015
Python Success Stories
http://www.python.org/about/success/
4/13/2015
就业
• Python 人才缺口大
• 平均工资高
4/13/2015
4/13/2015
4/13/2015
4/13/2015
simple-is-better.com
4/13/2015
人生苦短
我用python
4/13/2015