当前位置: 首页 > 编程日记 > 正文

神爱程序员,于是带来Python

640?wx_fmt=png


“我累了,需要很长时间的休息。”


2018 年 7 月,在 PEP 572(Python 改进提案) 被接受后的第三天,由于仍然不断面对着别人的质疑,反馈意见不断袭来,让这位一手缔造新的编程语言帝国的图灵奖获得者 Guido van Rossum 感到疲惫不堪,老头儿已经 62 岁,累了。


从 Guido van Rossum 的邮件内容可以看出,他已经厌倦了运营该组织。他写道,“我不想再为 PEP(Python 改进提案 PEP 572)劳神了,而且尽管我做着艰难的决定,却发现仍然有很多人不满意。”


从 Python 最初的缔造者,到被社区质疑宣布“退位”, Guido 都保持着他程序人生的那份执拗,当然还有他的“仁慈”。


与其他编程语言的创造者一样,Guido van Rossum 也有着属于自己的技术高光时刻。他出生在荷兰,1982 年在阿姆斯特丹大学获得数学和计算机科学硕士学位,不过,他最爱的还是与编程相关的活儿。


那时,使用最广泛的语言是 C 语言、Pascal、汇编语言,但这些语言是为了让机器能更快运行,对计算机硬件的“压榨”太过饱和。


作为程序员的 Guido 当时很是困惑,用 C 语言来实现一个功能完全没有问题,但效率太低,编写过程需要耗费大量的时间 。使用 Shell 也可以,许多 C 语言下上百行的程序,在 Shell 下只用几行就可以完成。Bourne Shell 作为 UNIX 系统的解释器已经长期存在,它能将 UNIX 的许多功能连接在一起,实现系统运维、文件处理等任务,不过在处理像数据运算、系统调用这些任务时却非常麻烦。


那么有没有一种语言可以像 C 语言那样能够全面掌控计算机的资源,同时又能像 Shell 语言那样简单易用呢?Guido 这样想——也许其他很多程序员都这样想过。


他考虑了荷兰 CWI (Centrum Wiskunde & Informatica, 数学和计算机研究所)开发的 ABC 语言,当时他就在那里参与设计了 ABC 语言,可以让语言简洁易用,易于学习,以教学为目的。


不幸的是,ABC 语言没有成功,Guido 后来将其归咎于非开放的原因。而当有机会重新设计新的编程语言时,Guido 不会第二次掉进这个坑。


1989 年,为了打发无所事事的圣诞节假期,Guido 开始写 Python 语言的编译/解释器,Python这个名字来自他所喜欢的电视剧 Monty Python's Flying Circus (一部情景幽默剧)。两年后,Python 第一个版本终于问世,Guido 用 C 语言写了编译器,并能调用 C 库。它还包括类、函数、异常处理、包含表和词典在内的核心数据类型以及模块为基础的拓展系统。


由于 Python 的编写吸收了 C 和 ABC 语言的优点,比如用 def 定义函数、强制缩进,虽然对经常使用某一类语言的人来说,在转向  Python 这种“杂交”的新语言逻辑时,总会有点别扭,但在适应之后你的感受会完全不同,Guido 认为没有必要纠结于此,而这只是其中一部分。


事实证明,Python 作为结合了解释性、编译性、互动性和面向对象的脚本语言,让很多程序员得到了解放,随即流行起来,吸引了大量程序员开始改进这门语言,从此,他们又多了一把开启计算机世界大门的钥匙。


640?wx_fmt=png

(2018 年 IEEE 顶级编程语言交互排行榜和 2017 年排行榜前十名对比图,在 IEEE 评选的多项指标中 Python 位居榜首)


自那以后,随着计算机性能的提高,Python 开始广受欢迎,它成熟、对象库多,适用于脚本操作和数据分析。而在如今在人工智能时代,Python 在所有编程语言中独领风骚。


Python 有这样的成绩当然也离不开 Python 开发者,他们来自世界各个角落,为其发展添砖加瓦,如 Python 标准库中的正则表达参考了 Perl,而 lambda, map, filter, reduce 函数则参考了 Lisp。开发者们还为社区建立了 newsgroup,网站(python.org),以及相关基金 (Python Software Foundation)。当然,能做到这些离不开 Python 之父一开始就倡导的开放原则。


如今,随着大数据、AI 技术蓬勃发展的助力,Python 一跃成为了这个时代最受欢迎的编程语言之一,而且与  Python 相关的应用已遍地开花。


细数 Python 主要的应用方向,有自动化运维、WEB 开发、网络爬虫、数据分析、云计算、人工智能等,Python 在这些应用中是首选编程语言。


在 Python 社区,Guido 被程序员们称作“仁慈的独裁者(BDFL)”,独裁者现已退居二线,但他的 Python 一路高歌近 30 年,生命力却愈加强大,其前沿应用也不断得到拓展。


640?wx_fmt=png


语言简洁,学习易上手,Python 语言因此广受程序员的追捧,而其在就业、薪资待遇上也没有让人失望。去年,职友集通过分析来自全国的 12809 份样例资料,显示全国 Python 工程师的平均月资能够达到 19160 元,其中 20 - 30K 的工程师数量更是超过了四成。对程序员而言,Python 可能是一门投入小,但见效快、回报还高的编程语言。


如果你想了解 Python 前沿应用和技术实践,作为技术潮流的推动者,CSDN 为所有感兴趣的开发者提供了一个探讨和学习 Python 的契机。


4 月 13 日-4 月 14 日,CSDN 将在北京主办“Python 开发者日( 2019 )”,汇聚十余位来自阿里巴巴、IBM、英伟达等国内外一线科技公司的Python 技术专家,还有数百位来自各行业领域的 Python 开发者。


大会议题除了运维、开发等大家熟知的 Python 应用领域外,还将重点围绕人工智能、云计算、大数据等新领域,为与会者分享 Python 在不同场景下的的应用优势和实战经验。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,讲师手把手教你轻松实现打怪升级。


目前购票通道已开启,早鸟票限量发售中,3 月 15 日之前可享受优惠价 299 元(售完即止)。欢迎点击阅读原文报名参加。


演讲嘉宾(已确定)


640?wx_fmt=png

魏贞原


演讲主题:Python 在机器学习领域的应用与实践


讲师介绍:IBM 高级项目经理,《机器学习 — Python 实践》与《深度学习 — 基于 Keras 的 Python 实践》作者,世界500强企业的数据分析团队 Leader,主要负责银行客户的复杂系统开发,在 Python 的 Web 开发、数据分析、机器学习与深度学习方面有多年的实践经验。


640?wx_fmt=png

张校捷


演讲主题:基于 PyTorch 实现 NLP 的深度学习技术及应用


讲师介绍:英伟达(NVIDIA)资深深度学习架构工程师,负责基于 CUDA 的深度学习框架的优化。目前主要使用的技术栈是作为深度学习框架后端的 C/C++/CUDA,以及深度学习框架前端的 Python,对主流的深度学习框架如 PyTorch 和 TensorFlow 比较熟悉,并对其在计算机视觉(CV)和自然语言处理(NLP)方面的具体应用有一定了解。


640?wx_fmt=png 

秦续业


演讲主题:用 Mars 来并行和分布式执行 Numpy


讲师介绍:阿里巴巴技术专家,Python 爱好者。致力于将 Pyhton 生态和大数据计算结合,编写并开源了Mars 框架。Mars 是一个基于张量的超大规模的统一计算框架,支持使用 Numpy 接口对超大、多维数据进行计算。目前,正在尝试使框架兼容 Pandas DataFrame, 以支持表类型数据计算。


640?wx_fmt=png   

宋天龙


演讲主题:Python 在 Google BigQuery Machine Learning 中的应用


讲师介绍:TrueMetrics 合伙人,前 Webtrekk 中国区技术和咨询负责人,前国美在线数据分析经理, 资深数据分析领域专家。在电子商务、零售、银行、保险等多个行业拥有丰富的数据项目工作经验,参与过企业级项目包括流量数据仓库建设、DMP、网站流量系统建设、企业 BI、RTB 和 DSP、决策支持平台、站内个性化推荐、站外个性化营销等大型数据工作项目。著有《Python 数据分析与数据化运营》、《企业大数据系统构建实战:技术、架构、实施与应用》、《网站数据挖掘与分析:系统方法与商业实践》。


640?wx_fmt=png

王威


讲师介绍:平安科技智能引擎部高级算法研究员,中国科学院数学与系统科学研究院数学研究所博士,毕业后从事人工智能算法尤其是计算机视觉算法的相关研究,直接针对业务需求实现相关算法解决业务痛点,接触的业务主要包括各类发票和证件的检测、识别以及信息提取,训练出来的通用识别模型达到业界领先水平,使用在平安科技的各项需要文字识别的业务场景中。目前完成的项目中,使用的主要语言就是 Python。


除上述演讲嘉宾外,还有博世(中国)投资有限公司大数据分析师王红星天云大数据算法团队总监谭可华已确认参会演讲。


更多重磅嘉宾正在确认中,敬请期待...


640?wx_fmt=png


640?wx_fmt=gif“阅读原文”了解大会详情!

相关文章:

Dubbo配置文件详解

为新项目练手,把项目中用到的web service、RMI的服务改用DubboZookeeperSpring,网上找到几篇不错的配置详解 1.此篇博文主要从以下几种配置方式来讲 XML 配置文件方式、XML 配置文件方式、annotation 配置方式 https://www.cnblogs.com/chanshuyi/p/514…

Mono源代码学习笔记:Console类(四)

NullStream 类 (internal class) 下面就是 mcs/class/corlib/System.IO/NullStream.cs: 01: namespace System.IO 02: { 03: class NullStream : Stream 04: { 05: public override bool CanRead { get { return true; } } 06: public override b…

Java帝国对Python的渗透能成功吗?

作者 | 刘欣转载自码农翻身(公众号 ID:coderising)引子Java 帝国已经成立 20 多年,经过历代国王的励精图治,可以说是地大物博,码农众多。 可是国王依然不满足,整天想着如何继续开拓疆土&#xf…

【杂】突然有个想法,为了防止公司或其他,监视你的qq或微信,可以做个程序,将信息打乱,分别用qq和微信传输,然后,再还原

突然有个想法,为了防止公司或其他,监视你的qq或微信,可以做个程序,将信息打乱,分别用qq和微信传输,然后,再还原。

CTO 基本功大盘点 —— 没有这些技能,谈何远大前程?

本文由 「TGO鲲鹏会」原创,原文链接:CTO 基本功大盘点 —— 没有这些技能,谈何远大前程? 作者|刘海星 2018 年马上就要过去六分之一了,你的 KPI 完成多少了? 别沮丧,其实我想说的是&…

Windows Phone 7 不温不火学习之《创建用户控件》

同样出自微软的产品,像ASP.NET 一样,Windows Phone 7 也有一个叫UserControl 的东西。这个相当于一个组件,类似于Android 继承View 。 本篇将实现一个用户控件,默认为它添加高宽,并为它添加一个自己的事件,…

从起源、变体到评价指标,一文解读NLP的注意力机制

作者 | yuquanle转载自AI小白入门(ID:StudyForAI)目录1.写在前面2.Seq2Seq 模型3.NLP中注意力机制起源4.NLP中的注意力机制 5.Hierarchical Attention6.Self-Attention7.Memory-based Attention 8.Soft/Hard Attention9.Global/Local Attention10.评价指…

【Git】ubuntu上git commit提交后如何保存和退出类似vim的界面,回到命令行

问题 使用 git commit 命令后,进入类似vim的界面,开始时,不知道如何保存,甚至不知道怎么退出该界面。 解决方法 1、使用 git commit 命令后,进入的是nano文本编辑器(类似vim); 2…

linux硬盘满了问题排查

关键指令: df du find step1: 如果发现硬盘满了,首先要确定一下,使用df查看硬盘使用情况 df -h step2: 从第一步结果判定满了,确定哪些文件或哪个文件占了大头,使用du指令做逐步排查&#xff0c…

win2003登陸及關機設定

開啟未登陸可以關機鍵關機﹕ 到控制面板,本地安全策略,安全性選項﹐启用允许在未登录前关机 關關機事件跟踪﹕ 运行“gpedit.msc”命令打开组策略编辑器,依次展开“计算机配置”→“管理模板”→“系统”,将“顯示关闭事件跟踪程序…

【Qt】信号和槽对值传递参数和引用传递参数的总结

在同一个线程中 当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象;(测试时,打印传递前后的地址不同) 引用传递不会复制对象;(测试时,…

Node.js入门(含NVM、NPM、NVM的安装)

本文最初发表于博客园,并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。 以下是正文。 Node.js的介绍 引擎 引擎的特性: JS的内核即引擎。因为引擎有以下特性: (1)转化的作…

GitHub日收7000星,Windows计算器项目开源即爆红!

说起此番微软开源 Windows 计算器,有道是“春风得意马蹄疾,一日‘摘星’ 7000”……整理 | 仲培艺来源 | CSDN(ID:CSDNnews)微软又来给自己拥抱开源的决心送”证明素材“了!昨日,微软官宣在 MIT…

域环境下的***

首先还是先简要看一下域的概念吧: 域 (Domain) 是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行…

如何重构“箭头型”代码

本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得很多…

让数百万台手机训练同一个模型?Google把这套框架开源了

作者 | 琥珀出品 | AI科技大本营(公众号id:rgznai100)【导语】据了解,全球有 30 亿台智能手机和 70 亿台边缘设备。每天,这些电话与设备之间的交互不断产生新的数据。传统的数据分析和机器学习模式,都需要在…

【OpenCV】cv::VideoCapture 多线程测试

cv::VideoCapture多线程测试结果: 在多线程中使用抓取摄像头视频帧时线程安全的,但是,多个线程会共用摄像头的总帧率。 比如,我用两个线程测试30帧的摄像头,每个线程差多都是15帧。

都有Python了,还要什么编译器!

编译的目的是将源码转化为机器可识别的可执行程序,在早期,每次编译都需要重新构建所有东西,后来人们意识到可以让编译器自动完成一些工作,从而提升编译效率。但“编译器不过是用于代码生成的软机器,你可以使用你想要的…

【Qt】Qt发布程序时,报错: could not find or load the Qt platform plugin xcb

问题描述 Qt程序在发布时,报错: This application failed to start because it could not find or load the Qt platform plugin “xcb” in “”. Reinstalling the application may fix this problem Aborted (core dumped) 原因 没有将libqxcb…

jsky使用小记

jsky是一款深度WEB应用安全评估工具,能轻松应对各种复杂的WEB应用,全面深入发现里面存在的安全弱点。 jsky可以检测出包括SQL注入、跨站脚本、目录泄露、网页木马等在内的所有的WEB应用层漏洞,渗透测试功能让您熟知漏洞危害。 打开——新建扫…

BSP场景管理方法简介

BSP(Binary Space Partition,二叉空间分割)方法,在大型3d游戏场景管理方面,可以认为是已经证明了的,最成熟的,最经得起考验的场景管理方法。诸如虚幻系列引擎(Unreal 1,2,3)&#xf…

【Qt】Qt样式表总结(一):选择器

官方资料 https://blog.csdn.net/u010168781/article/details/81868523 注释 qss文件中使用:/**/ 来注释 样式规则 样式表由样式规则序列组成。样式规则由选择器和声明组成。选择器指定受规则影响的部件;声明指定应在小部件上设置哪些属性。 如: QLabel { color: white;…

JVM-01:类的加载机制

本文从  纯洁的微笑的博客  转载 原地址:http://www.ityouknow.com/jvm.html 类的加载机制 1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.…

CVPR 2019 | 惊艳的SiamMask:开源快速同时进行目标跟踪与分割算法

作者 | 周强(CV君)来源 | 我爱计算机视觉(公众号id:aicvml)责编 | Jane上面这张Gif图演示了 SiamMask 的效果,只需要鼠标滑动选择目标的包围框,即可同时实现目标跟踪与分割。这种视频里目标的像…

看看Entity Framework 4生成的复杂的分页SQL语句

之前发现Entity Framework 4生成的COUNT查询语句问题,今天又发现它生成的分页SQL语句问题,而LINQ to SQL却不存在这个问题。 >>> 来看一看,瞧一瞧! 上代码: 看生成的SQL语句: 1. Entity Framework…

这份“插件英雄榜Top20”才是Chrome的正确打开方式!

作者 | zhaoolee整理 | Jane出品 | AI科技大本营(公众号id:rgznai100)前言”一入开源深似海”!给大家推荐优秀的开源项目、实用工具已经成为 AI科技大本营的固定节目。“我待开源如初恋”,逛淘宝,点收藏&am…

【Qt】Qt样式表总结(二):冲突和命名空间

Qt样式表总结(一):选择器 解决冲突 针对同一个控件的相同属性,使用多种选择器时,会出现冲突。如: QPushButton#okButton { color: gray } QPushButton { color: red } 解决冲突的规则是:更…

编程自动化,未来机器人将超越人类?

近年,创业者陈曦正专注于一个项目——编程自动化。即机器人可以自己编程,这到底意味着什么呢? 在美国科幻大片《终结者2》中,20世纪末的1997年7月3日,人类研制的全球高级计算机控制系统“天网”全面失控,机…

Repeater 嵌套 Repeater

作为一个刚入行的IT小鸟,每天学习,是必须的! 光自学肯定是不够的!由于本人IQ比较低,经常一个小问题都会想不明白。 还好有媳妇儿的帮助,才把这个功能给实现了。 现在就在这里总结下,以示敬意。o…

【Qt】Qt样式表总结(三):QObject 属性

【Qt】Qt样式表总结(一):选择器 【Qt】Qt样式表总结(二):冲突和命名空间 QObject 属性 可以使用 qproperty < 属性名称 > 语法,设置任何可以Q_PROPERTY的控件 MyLabel { qproperty-pixmap: url(pixmap.png); } MyGroupBox { qproperty-titleColor: rgb(100, 2…