赖勇浩(http://laiyonghao.com)

蒙组委的邀请,在 12 月 4 日参加了在上海举办的 PyCon China 2011 活动(http://cn.pycon.org/2011/),并作了题为《Python 于 Webgame 的应用》的报告(幻灯:http://www.slideshare.net/laiyonghao/python-webgame-10452102,录像:http://e.gensee.com/v_3df867_14)。关于首次 Python Conference,InfoQ 给出了一份非常漂亮的报道(见:http://www.infoq.com/cn/articles/pycon-2011-first-in-china),详细记录了讲演的核心内容。会后,InfoQ 还组织了虚拟座谈会,我有幸被邀参加,就 InfoQ 提出的若干问题给了点自己的小看法,后来被整合发表在他们网站上(见:http://www.infoq.com/cn/articles/virtual-panel-pycon)。在这里记录一下未经润色的我回复的内容版本,由于有一个问题最后 InfoQ 的文章省去了,所以我这里也略去。

===================

1. 近些年Python在语言特性的发展上,有什么值得称道的地方,又有什么需要改进的地方?
答:Python 这些年一直在发展,从 2.6 到 3.2 版本的发布都是非常给力的,在 3.x 持续增加新特性的同时还发布新的 2.6、2.7 版本把这些新特性兼容回 2.x 分枝,这是最为难能可贵的、值得称道的——Python 开发者无论选择哪一个大版本都得到了充分的尊重。关于它需要改进的地方,我觉得已经不多,因为一些 bad smell 的问题已经在 3.x 版本得到了根本性的修正。不过我在 2010 年 11 月底的时候写过一篇博客《我想要的 Python 特性》(http://blog.csdn.net/lanphaday/article/details/6043605),里面谈到 3 个 Python 目前没有提供的特性,分别是在函数式编程、设计模式和面向消息编程方面的增强,但从文章的评论来看,赞同和抵制的人基本相当。关于面向消息编程,我自己实现了一个 python-message(http://pypi.python.org/pypi/message)开源库,已经在我主持的一个商业项目中使用,能够很好地解耦模块关系,在 PyCon 也作了简单的宣传,在此再向大家推荐。

2. 您觉得在移动互联网和Big Data兴起的今天,Python的机会在哪里?
答:很遗憾,这两个领域我都没有深入的了解,以下纯属妄言,仅供参考。凭着从业经验,我觉得把 Python 用在移动互联网的服务器端编程应该是不错的选择,但如果想着把 Python 用在编写移动设备应用方面,我觉得技术选型错误。Big Data 方面,我觉得 Python 作为一门优秀的胶水语言,一定有其用武之地,但把它当作 Big Data 处理的主要编程语言,我觉得技术选型错误。

3. 在使用Python的时候,是否有遇到过性能上的问题,是如何解决的?
答:有的,就像以前使用 C++ 的时候一样。无论使用什么编程语言,都会遇到性能问题。性能问题的根源不是编程语言,而是业务。举个例子,你说 C++ 执行效率高吧,写个 CPU 软件渲染图形游戏引擎跑一下 Unreal Engine 3 提供的特性试试看有没有性能问题?在 PyCon 的快速演讲环节中,阿里云的产品经理李俊东先生就鲜明地提出自己的观点(http://weibo.com/1924010407/xAt3A6Yij):不要迷恋语言性能,要多关注业务性能!遇上 Python 性能问题的时候,解决方案与其它语言遇上性能问题是类似的,有以下步骤:1、使用 profiler 确定性能瓶颈;2、使用更适合的数据结构与算法、更合理的 I/O 模型、更少的运算(如缓存之前的运算结果);3、使用更快的编程语言重写瓶颈部分,就像用 C++ 时使用汇编指令重写那样。更细节的内容,不妨参考我博客的几篇文章:http://blog.csdn.net/lanphaday/article/details/1483728、http://blog.csdn.net/lanphaday/article/details/1502290、http://blog.csdn.net/lanphaday/article/details/2120147、http://blog.csdn.net/lanphaday/article/details/2239445。

4. 多进程部署和协程似乎已经成为了一种趋势,在大会上很多嘉宾都谈到了这方面的内容,您是怎么认为的?
答:在未来,起码在脚本语言的世界里,线程的地盘一定会进一步缩小。在 Lua 和 Ruby 中,你看不到原生线程的存在,但它们还是流行了。充分说明哪怕是多核时代,线程也不受待见。相对于获取更佳的 CPU 并行计算性能,现代的程序员更乐于获取更佳的代码可维护性,因为现代项目已经非常庞大,运行在多台计算机甚至多个数据中心上,榨取单机性能显得有点舍本逐末。我个人浅见是在未来线程会有点像 C++ 的处境,它不会被淘汰,但会被限制在编写为多核优化的程序库等领域,嗯,一个能够 CPU 并行计算的 Python 库的确是有吸引力的,但普通的业务逻辑程序员就不碰线程为妙了。

5. 略。

6. 您认为像Python这样的动态语言应用在开发大型项目或企业级开发的时候有什么局限性?
答:目前来看,我觉得没有局限性。不过一堆程序员一直只把 Python 当成更好的 Shell Script、更好的 Perl 来用,他们懒于进取,满足于使用 Python 写一些用完即弃的小脚本,自然没有实力使用 Python 开发大型项目,然后将失败归结于 Python 有这方面的局限性。Python 很棒,豆瓣、金山、盛大、网易等公司都在大量使用,甚至有许多数十万行 Python 代码的项目在大量赚钱,如果你觉得使用 Python 还会受限,请先苦练自己的技能。

7. 优秀的Python开发者一直都不太容易找得到,在人员的培养和招聘方面您有什么心得?
答:优秀的XX(可以代入任何一门编程语言)开发者一直都不太容易找到。给优秀人才想要的,无论是物质还是感情,你身边自然能够聚焦高手。如果又要马儿跑,又要马儿不吃草,请先摆正你的心态。所以如果招不到优秀人才,不妨从如下三个方向入手:一是改变业务逻辑,降低技术难度,自然不需要优秀人才了;二是另找一条路,比如你一直想找更快的马,找不到的时候不妨买辆汽车,说回来就是换套解决方案,比如 Python 程序员不好找,你 C#/java 不就得了,说不定还更好;三是加强自己的修为,所谓人以群分,强强相吸,你很强大,自然容易找到强大的合作者。

8. 对于打算尝试Python的开发者和企业,您有什么建议?
答:对于开发者,我觉得多学一门编程语言肯定不错,利用业余时间学一下大有增益;但切忌随便看点书或文章就下了结论认为这东西无所不能或一文不值,要学就学深入一点。对于企业,我的看法是不要轻易尝试,哪怕 PyCon 的讲师说得天花乱坠。引入新的技术就是引入新的风险,对之前的技术架构、员工情绪、企业文化都会带来巨大冲击,除非你已经考虑清楚愿意为这件事情折腾到脱一层皮都在所不惜。

转载于:https://www.cnblogs.com/aiwz/archive/2011/12/21/6154325.html

参加了 InfoQ 的虚拟座谈会相关推荐

  1. 虚拟座谈会:有关分布式存储的三个基本问题

    本文转自InfoQ,作者杨赛 现在分布式存储这一块,有块存储.对象存储.文件存储,有不同的开源项目如Ceph.GlusterFS.Sheepdog.Swift,还有不同的商业实现如Google.AWS ...

  2. 无意中参加了infoQ的一期活动,获得了所有奖项,哈哈哈。。。

    七月中旬开始在infoQ上发文章,无意中参与了当期的活动,意外的是获得所有奖项的所有奖品,哈哈哈... 鉴于奖品这么给力,今天给infoQ平台宣传一波,记得把广告费打给我,哈哈哈... 下面给大家展示 ...

  3. 如何策划一场虚拟活动?Mixlab 教你元宇宙布展思路~

    小杜 本周 Mixlab 参加了一次虚拟活动-活动的场地是 Vland 云现场. 主题是分享线上会展的场地创作方法与布展思路. Mixlab & Vland 虚拟线上活动展厅. 找到了 Mix ...

  4. [生而为人-思考] 沈定刚教授座谈会感悟记录

    承蒙老师培养,与研究生师哥师姐们一起参加了一个小范围座谈会,又接触到一位业界大牛,美国北卡罗来纳大学教堂山分校 沈定刚教授,专注医学图像分析.计算机视觉.模式识别等领域. 特此记录,让我感触颇深的有以 ...

  5. InfoQ Qclub参与活动感悟

    InfoQ Qclub参与活动感悟 昨咯参加了infoq主办的ror活动,回来已经快7点多了,之后忙其它事就忘了写了,今天补上. 总的来说给我很大的震撼,生平第一次参加这类的交流活动,有校内的,路透的 ...

  6. 在台湾参加前端大会是什么体验?

    前几天有幸受邀前去台湾参加Modernweb会议,并做了主题分享.两天的前端会议见闻让我对台湾的前端环境有更深入的了解,接下去我想从会议形式.主题.氛围.企业几个方面跟大家分享我的见闻. 形式 今年的 ...

  7. 使用keil,proteus,虚拟串口,完成蓝牙通信

    目的: 通过HC-06的蓝牙芯片,AT89C51的51单片机,借助keil,proteus,通过虚拟串口,在电脑上实现蓝牙串口通信,控制LED的开和关. 存在的问题: 单片机和蓝牙不能联动,暂未找出问 ...

  8. BSN携手比特元公链参加大湾区区块链周

    作为世界上发展最快的技术中心之一,大湾区(GBA)吸引了对商业,教育和金融领域的智能技术应用充满热情的观众,齐聚一堂,共同参加了首届国际虚拟盛会. 2021年的GBA区块链周为期近一周的活动将使成千上 ...

  9. 参加大湾区区块链周 比特元公链携手BSN

    作为世界上发展最快的技术中心之一,大湾区(GBA)吸引了对商业,教育和金融领域的智能技术应用充满热情的观众,齐聚一堂,共同参加了首届国际虚拟盛会. 2021年的GBA区块链周为期近一周的活动将使成千上 ...

  10. 库克访华开座谈会 中国开发者逐渐受重视

    罕见的开发者座谈会 2016 年 5 月 16 日,今天苹果 CEO 蒂姆·库克(Tim Cook )再一次现身中国北京.虽然库克访华已经不新鲜,每年一次至少保持一次,今年已经第八次,但这一次现身是与 ...

最新文章

  1. Java中 this关键字详解
  2. 脸书开源第一个使用卷积神经网络技术的端到端语音识别系统
  3. 响应接收窗口大小( ra-ResponseWindowSize)
  4. Crawler之Scrapy:Scrapy简介、安装、使用方法之详细攻略
  5. sales organization mapping logic debug
  6. 使用Java的@Deprecated前瞻
  7. python代码设计测试用例_Python单元测试与测试用例简析
  8. 异常堆栈信息丢失?到底是怎么回事?
  9. python测试抽奖脚本_B站动态转发抽奖脚本+教程
  10. Maven搭建SpringMVC+Mybatis项目详解
  11. java类型强转会有性能消耗吗_Java代码性能优化总结(转)
  12. vue: 从组件通讯到vuex (上)
  13. android自动秒杀脚本,京东自动秒杀脚本手机版-京东自动秒杀脚本安卓版下载v7.0.4 - 7230手游网...
  14. Caused by: java.lang.NoSuchMethodError
  15. 【考题·数学】矩阵游戏(数学推导)
  16. 用树莓派做一个实时垃圾分类器|超实用!!
  17. java中使用axis发布和调用webService
  18. 【算法】【树】已知先序中序序列求后序序列(详细解释)
  19. BugKu-图穷匕见
  20. Unity2019.4.31f1 通过鼠标和WASD在游戏内控制摄像机移动

热门文章

  1. ubuntu装机必备+主题美化
  2. pyspark连接MySQL数据库,执行SQL语句,返回数据查询结果
  3. 基于URL的轻量级恶意页面检测分类器
  4. linux基础(三)——yum的使用
  5. 语法错误 : 缺少“;”(在“<”的前面)
  6. python配置文件注释_python操作配置文件yaml
  7. 百度区块链 xuperchain 如何剪枝 裁剪区块
  8. hyperledger caliper 测试配置yaml
  9. 区块链 State Machine Replication (SMR)是什么
  10. java 遍历 List 的六种方式 学习笔记