为什么要创建 Python 编程语言?

编程语言原本设计是专用于计算机,也用来定义算法或者数据结构。故而程序员试图使程序代码容易阅读。编程语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为在当今所有的计算都需要程序设计语言才能完成。之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常小,而且有许多语言对新手来说太容易学;还有,不同程序之间的运行成本(runtime cost)各不相同。

有许多用于特殊用途的语言,只在特殊情况下使用。例如,PHP专门用来显示网页;Perl适合文本处理;C语言被广泛用于操作系统和编译器的开发(所谓的系统编程)。高级语言的出现使得计算机程序设计语言不再过度地依赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言FORTRAN的一个主要目标,就是实现平台独立。

虽然大多数的语言既可被编译又可被解译,但大多数仅在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,在很多时候,中间过渡的代码往往是解译,而不是编译的。

如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就被称为编译。因此,一个编译器是一个将人可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(object code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作直译。经直译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。

您对当今软件开发状态最大的抱怨是什么?

软件人员没有必要的资源来以经理期望的精确度来估算进度。企业可以提前一年估计其预期财务业绩,误差不超过百分之几。为此,该公司拥有一支专门的财务专家团队来提出预算并监督每个部门的合规性。这些敬业的专业人员向最高管理层(首席财务官或财务总监)汇报工作,后者直接向首席执行官和董事会汇报。公司的业绩由外部财务审计师团队监控,以确保财务报告准确反映业务状况。未能通过财务审计是一件大事,会对公司的股价产生巨大的负面影响。首席执行官确保它基本上永远不会发生。

现在,让我们看看开发人员如何估算编写软件的时间成本。开发人员是编写软件的专家,而不是估算时间表的专家。他们将估算作为副业。没有定期报告是否符合时间表,也没有收集有关差异的数据。时间表通过管理指挥链向上报告,每位经理都可以对其进行更积极的调整。没有专门负责按计划执行绩效的高级管理人员,也没有外部审计。

我们总是迟到有什么奇怪的吗?我相信,如果投入相同程度的努力,软件进度表的估算精度可以与财务绩效估算的精度相同。那么这些资源不可用是谁的错呢?开发商?我不这么认为。管理人员试图将进度不确定性的风险转嫁给开发人员

估计时间表就是预测未来。事实证明这是不可能的。然而,太多的经理希望开发人员遵守时间表,有时他们甚至没有得到意见,如果他们落后于相同的固定工资,他们会在晚上和周末工作,而经理则通过鞭打他们的开发人员获得可变奖金。我希望有一天业界会意识到这种做法的不公平,要么给开发人员按绩效支付工资,要么停止坚持荒谬的工作时间。

编程世界有什么新鲜事?

编程世界在不断发展,新技术和趋势不断涌现。以下是编程领域近期发展的一些示例:

人工智能 (AI) 和机器学习 (ML):这些技术正变得越来越流行,并被广泛用于从自动驾驶汽车到自然语言处理和图像识别的应用中。

云计算:AWS、Azure、谷歌云平台等云计算服务越来越受欢迎,让开发者无需昂贵的硬件即可轻松获取强大的计算资源。

微服务:微服务架构正变得越来越流行,它允许开发人员将应用程序构建为可以独立开发、测试和部署的小型独立服务的集合。这允许更大的灵活性、可扩展性和易于维护。

物联网 (IoT):随着越来越多的设备连接到互联网,物联网变得越来越普遍。这导致对具有物联网技术(如 MQTT、CoAP 和 Zigbee)专业知识的开发人员的需求增加。

无服务器:无服务器架构也越来越流行,它允许开发人员构建和运行应用程序和服务,而无需配置和管理基础设施。

渐进式 Web 应用程序 (PWA):PWA 正变得越来越流行,因为它们允许开发人员创建可离线工作并具有本机移动应用程序外观和感觉的 Web 应用程序。

区块链:区块链技术正变得越来越主流,并被广泛应用于数字货币、供应链管理和数字身份管理等领域。

Rust:Rust 是一种系统编程语言,旨在安全、并发和快速。Rust 因其内存安全特性而越来越受欢迎,这使得它更适合开发系统、嵌入式系统和区块链项目。

这些只是编程世界正在发生的许多发展中的几个例子,新技术和趋势一直在出现。为了在就业市场上保持竞争力并能够利用最新的工具和技术,开发人员必须了解最新的发展情况。

为什么要创建 Python 编程语言?

Python 编程语言的历史和特点

Python 编程语言于 1991 年首次向公众发布,但它的创建可以追溯到 80 年代后期,当时它的创建者 Guido van Rossum 正在研究 Amoeba 分布式操作系统。Van Rossum 需要一种易于使用且语法类似于 C 编程语言的脚本语言,他决定创建自己的语言来满足这一需求。他以英国喜剧团体 Monty Python 的名字命名该语言,Python 的第一个版本于 1991 年发布。自诞生以来,Python 已成为世界上最流行的编程语言之一,拥有庞大而活跃的用户社区。它用于各种应用程序,包括 Web 开发、科学计算、数据分析和人工智能。Python 的一个关键特性是它的简单性和可读性,这使其成为初学者和经验丰富的程序员的绝佳选择。

Python 流行的主要原因之一是它的多功能性。它是一种通用语言,这意味着它可用于构建几乎任何类型的软件,从桌面应用程序到 Web 服务器再到科学应用程序。Python 也是一种解释型语言,这意味着它在运行前不需要编译。这使得测试和调试代码变得容易,并且允许程序员快速编写和测试小脚本。Python 是一种面向对象的语言,这意味着它是围绕对象的概念构建的。对象是一个独立的实体,它包含数据和操作该数据的方法或函数。对象是面向对象编程的关键部分,它们允许程序员通过将复杂的程序分解成更小、更易于管理的部分来创建复杂的程序。

除了简单性和多功能性之外,Python 还具有许多其他特性,使其成为程序员的热门选择。它有一个庞大而全面的标准库,其中包含用于许多常见编程任务的模块,例如连接到 Web 服务器、读取和写入文件以及处理数据。Python 还有一个动态类型系统,这意味着变量的类型是在运行时确定的,而不是在编写代码时确定的。这允许更大的灵活性,并使编写能够适应不断变化的需求的代码变得更加容易。

Python 还具有高度可扩展性,这意味着它可以轻松地与其他语言和工具集成。它经常与其他技术结合使用,例如 Django 网络框架或 NumPy 科学计算库。这允许程序员利用 Python 的优势,同时仍然使用可能更适合特定任务的其他工具和技术。除了用于专业软件开发之外,Python 还是初学者编程教学的热门选择。它的简单性和可读性使其成为学习计算机科学基础知识的优秀语言,并且经常在大学和高中的入门编程课程中使用它。

总体而言,Python 编程语言是各种应用程序的强大且流行的选择。它的简单性、多功能性和可扩展性使其成为专业开发人员和刚开始编程的人的绝佳选择。