Python 之父Fredrik Haard最近发表了一篇“为什么Python对你如此重要”的文章,引起了开发者的热烈讨论。

我相信Python对软件开发人员很重要。现今已经诞生了不少的编程语言,它们都有各自不同的特性:强大者如Lisp,快速如C,运用广泛如Java,论古怪则如Haskell。与这些语言不同,Python是一门比较中庸的编程语言,它将语言的很多特性进行了融合,迄今我还未有其他语言如Python这般协调。

Python知道开发人员阅读代码比编写它花的时间要多得多,因此将精力集中于引导开发者编写易读的代码。当然,Python也能写出令人晦涩(obfuscated)的代码,但是写代码最舒服的方式还是(假如你了解Python)保持适度精炼,即:代码总能明确反映你的意图。这一点很重要。使用Python开发可谓轻而易举。甚至包括许多库,也能用Python完美编写,保证其易读性(你可以比较一下其他语言的框架实现,比如用Java编写的Spring)。

同样Python也意识到对开发人员而言开发速度的重要性。易读而精炼的代码只是一部分,另一部分取决于强大的构造函数,可避免许多繁琐重复的代码。此外,可维护性也是很重要的——代码行数(Line of Code,LoC)在很多度量结果都会中出现,或许没什么用,不过它至少说明了你需要审查多少代码,需要理解多少代码并从中发现问题。

此外,Fredrik Haard还提到了Python的另一个优势——Toolmaking。

快速的软件开发速度、简练的技巧(其他语言开发人员也能轻松掌握Python基本技巧)、庞大的标准库维系了这一优势。任何项目都会遭遇任务自动化任务情况,在我的经验中,用Python写的自动化任务比其他主流语言要快一个数量级——事实上,这也是我学习Python的原因。……

如果你想学习Python可以来这个群,首先是四七二,中间是三零九,最后是二六一,里面有大量的学习资料可以下载。

能够轻松开发custom tool其实还包含了另一层意思,即开发和维护custom software也会很容易。这也是为什么,在庞大的Django成为最著名的Python Web框架之后,还是有大量成功的小巧甚至微型框架存在的原因。当使用一门强大的编程语言,拥有大量标准及第三方库的时候,你并不经常需要考虑妥协(trade-off),而这在使用许多现成的(off-the-shelf)大型框架时是必然会遭遇的。

根据Fredrik的观点,编写能够很好契合客户模型而不是一个框架的软件这点很重要。而许多开发人员将时间都耗在了框架配置以及掩盖它们的缺点上,而不是真正的开发。

python软件是什么原因引起的_Python对程序员重要的原因在哪里?相关推荐

  1. 导致程序员跳槽的原因

    理博软件人事部通过2017年的招聘工作之中总结出来导致程序员跳槽的原因,以及从各大招聘网站上搜索出来的数据,来为大家分享一下面试过程中这样做,才可以拿高薪! 在本次调查中,有32.98%的开发者在过去 ...

  2. python电脑发音-Python之父发声:我们能为“996”程序员做什么?

    4月7日,知名开发者,编程语言Python之父Guido van Rossum在Python讨论区针对国内程序员996工作制发声. Guido发文称,"我们能为中国的"996&qu ...

  3. 软件史上最伟大的十大程序员

    [ 软件史上最伟大的十大程序员 ] 1.John Carmack(约翰.卡马克) John是程序员的教父.他一直致力与推翻世界快速工业化的障碍,在引领时代浪尖的同时仍能将研究成果作为游戏的一部分,它的 ...

  4. Python学习笔记(1)---B站黑马程序员

    Python学习笔记(1)-B站黑马程序员 Python学习笔记(2)-B站黑马程序员 Python学习笔记(3)-B站黑马程序员 文章目录 Linux基础 Python基础 一.Python介绍 0 ...

  5. python中fac函数是什么意思_好程序员Python教程系列之递归函数与匿名函数调用

    原标题:好程序员Python教程系列之递归函数与匿名函数调用 好程序员Python教程系列递归函数与匿名函数调用,函数是Python技术学习中重要的一个环节,深入掌握该阶段的知识内容,对于Python ...

  6. Python学习笔记(3)---B站黑马程序员

    Python学习笔记(1)-B站黑马程序员 Python学习笔记(2)-B站黑马程序员 Python学习笔记(3)-B站黑马程序员 文章目录 五.项目实战--飞机大战 001-Pycharm中安装py ...

  7. 桌面软件开发的复杂性在哪里,一个程序员能完成一个桌面软件开发吗

    桌面软件开发的复杂性在哪里,一个程序员能完成一个桌面软件开发吗.这个估计是很多软件开发外行人士的疑惑.而事实就是一个程序员完成不了一个桌面软件开发这个是为什么,桌面软件开发很复杂吗. 目前软件公司普通 ...

  8. python3 turtle_最新版Python 3.8.6 版本发布,跨界程序员零压力学Python之道!(附下载)...

    Python 3.8.6 发布了,它是 Python 3.8 的第六个维护版本. 3.8 系列的维护版本将每两个月定期更新一次,3.8.7 计划于 2020 年 11 月中旬发布. 随着维护版本的发布 ...

  9. 软件开发管理(产品经理客户和程序员互撕解决方案)

    2019独角兽企业重金招聘Python工程师标准>>> 此图引用CMMI3,清楚地阐述了软件开发管理流程. 重点说明下需求管理这一块, 如遇需求变更,需要有,避免产品经理或客户频繁变 ...

最新文章

  1. [16] 螺旋面(Spire)图形的生成算法
  2. linux怎么压缩后保留原文件,Linux 实现压缩保留源文件的方法
  3. python怎么画波浪_python 实现波浪滤镜特效
  4. 扩展easyui tree的两个方法 获取实心节点
  5. iOS HTML标签字符实体,转译字符串归类大全 【转载】
  6. python迷宫起点终点所有路径_通向终点的路不止一条!python迷宫。
  7. 麦肯锡70页特辑报告论述《人工智能的未来之路》(完整版PPT)
  8. SpringBoot与JPA
  9. 拉拉交友 http://www.les-sky.net 代码备份: 开发自己的可视化编辑器
  10. 【证明】【一题多解】布尔不等式(union bound)的证明
  11. 拷贝linux系统镜像
  12. java实现手机开关机_Android自动开关机实现
  13. 文件夹批量重命名排序递增的方法
  14. 原生android ui设计,在拟物和扁平之间寻找平衡 原生安卓UI设计进化史
  15. 产品静电ESD测试标准
  16. biostar来电自动开机_bios设置来电自动开机
  17. DNS解析为什么不生效?DNS解析不生效原因分析
  18. MFC与Windows编程
  19. linux程序卸载失败怎么办,在Deepin下卸载LibreOffice等软件的方法,附卸载失败的原因...
  20. dnf剑魂buff等级上限_DNF男鬼剑三觉,剑魂重回“鬼剑一哥”地位,再现“一肩成神”风采...

热门文章

  1. 万字干货:一步步教你如何在容器上构建持续部署!
  2. 火热的云计算,你知道这些吗?
  3. java线程一定是thread_深入理解Java多线程(multiThread)
  4. pyboard micropython_pyboard:tutorial:repl
  5. When allowCredentials is true, allowedOrigins cannot contain the special value “*“ that cannot be
  6. ETL异构数据源Datax_datax-web安装部署_10
  7. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(上传安装包并解压_05)
  8. tomcat内存溢出
  9. 小程序开发(2)-之app.js、app.wxss、project.config.json说明
  10. docker-compose命令介绍和使用【官方英文文档翻译】【附加案例】