Delphi 26 岁

喜欢就关注我们吧!

诞生于1995年的 Delphi 现在已经 26 岁了。1995年2月14日,Borland 公司推出了面向开发者的新工具——Delphi,旨在接替 DOS 时代盛行一时的 Turbo Pascal。

说到这两款产品必然离不开它们的灵魂人物——Anders Hejlsberg,他编写了 Turbo Pascal 第一个版本的编译器,加入 Borland 后继续开发 Turbo Pascal,并带领小组设计了 Turbo Pascal 的继任产品 Delphi。Anders Hejlsberg 还担任了 Turbo Pascal 所有版本与 Delphi 前 3 个大版本的架构师。

▲ 左为 Anders Hejlsberg(另外两位也是大牛,猜猜是谁 )

为庆祝 Delphi 诞生 26 周年,Delphi 产品经理 Marco Cantu 发表了一篇回顾 Delphi 的文章,文章选取了 13 组图片,每组图片包含 26 年前和现在的对比。

1. Windows in 1995

Delphi 于1995年发布时,最常用的 PC 操作系统是 Windows 3.1(以及支持网络的 Windows 3.11),下面是在虚拟机运行 Windows 3.1 的截图。

2. Windows in 2021

下图是 Windows 10,也是 Marco Cantu 主力使用的桌面 PC 当前安装的版本。可以看到,无论是系统界面,还是计算机的硬件功能都发生了巨大变化。

3. Delphi 1 界面外观

26年前发布的初代 Delphi IDE 用户界面。

4. Delphi 10.4.1 IDE

今天的 Delphi 用户界面(使用了怀旧风格的样式)。

5. 互联网起步阶段

互联网刚刚兴起的时候,最受 Delphi 开发者欢迎的论坛是 Compuserve,当然这是“资深”程序员才会感同身受的体验。

6. 互联网现在无处不在

下面这些数据足以看出我们对互联网和网络的依赖,数据来自 https://www.internetlivestats.com/。

7. 手机打来的电话还有很多

Marco Cantu 表示自己在1995年的时候好像还没有手机。当时的手机长这样(爱立信 GH688):

8. 现在智能手机比我们拥有的计算机功能更强大

现代人缺少手机几乎不能生活,目前的手机大多数都是多核电脑,内存比当年的 PC 还大,而且它们可以运行 Delphi 应用程序。

9. Delphi 1 的窗口是一个 TForm

早期的时候,Delphi TForm(和其他 TWinControl 类一样)封装了来自 user.dll 的 Windows 句柄,表单操作调用 Windows API 并触发系统消息。Delphi 是可视化的(见下图),但具有核心的 OOP 结构——应用程序表单继承自基础 TForm 类。

10. 窗口仍然是 TForm(或者 VCL + FMX)

如今,表单仍然是应用程序的基础,无论是 VCL(见下面最开始的基类定义)还是 FireMonkey,在这种情况下,表单都映射到 Windows、macOS、iOS、Android 或 Linux 的 UI 元素。

11. 电子游戏起步阶段

1995年,电子游戏处于起步阶段。

12. 现在电子和在线游戏拥有巨大的市场

下图是一款用 Delphi 编写的手机游戏。

详情查看此博客:https://blogs.embarcadero.com/fun-ranch-mobile-game-is-developed-with-delphi/

13. 在 Delphi 1 中编写计数到 26 的程序

下面是可以在1995年编写的用于在 Delphi 中对数字进行计数的代码,以及由此产生的简单应用程序。

14. 与现在用 Delphi 编写同样的程序并无二致

现在可以用 VCL 或 FireMonkey 编写和编译相同的代码,但也可以利用 Delphi 语言的新特性来编写,如下图所示。

15. 曾经使用的数据库是 Paradox, DBase, Clipper, FoxPro

Delphi 曾因其与数据库具备通信功能而被人熟知 (Oracle + Delphi),它有一个向导,可以轻易地创建数据库应用程序。

16. 现在的数据是 Oracle, SQL Server, Azure, AWS, REST API……

现在可以使用 FireDAC 和许多其他库来访问 Delphi 中的数据,但是数据不再仅存在于数据库中。查看通过 Delphi 的 REST Debugger 获取 rest API 数据的博客。

17. Marco Cantu 在1995年拍摄的照片(Delphi 发布后几天)

18. Marco Cantu  一个月前拍摄的照片

19. RAD 是一场革命

Delphi 提供了(现在仍提供)快速可视化设计(如之前的 VB)和强大的 OOP 框架的独特组合,从而允许在同一环境中以无缝的方式调用和编写组件。下面是早期的广告:

20. Delphi 依旧提升开发效率

尽管诞生了许多其他的编程风格,开发者仍可在 Delphi 中使用任何高级模式(MVVM、IoC 等),Delphi 继续提升开发者的生产力。

21. 26年前技术书籍非常重要,因为开发者无法通过 Google 搜索课程名称或在 Stack Overflow 上进行查找

下面是早期的 Delphi 技术书籍:

22. 现在技术书籍仍然十分重要,无论是电子书或是纸质书

技术类书籍的市场小了很多,也跟之前大有不同,不过书籍仍在印刷。

23. VCL 是 WinAPI 最优秀的库

当时没有其他类库与 Windows API 很好地集成,微软的 MFC 和 WinForms 也从未达到 VCL 的质量和完整性。下面是 VCL 库的层次结构。

24. VCL 是 WinAPI, COM integration, WinRT 以及即将到来的 Project Reunion 最优秀的库

VCL 库不断扩展,截至目前封装了 Windows APIs、COM 和 shell 对象、以及 WinRT platform API。开发团队也一直在添加新的组件并映射到新的 API。VCL 已经拥抱微软 Project Reunion,未来将会提供更加丰富的功能。下面是 VCL 风格的应用程序。

25. 26年前的 Delphi 使用起来很有趣

对于开发者来说,Delphi 具有很多使用乐趣,让人乐于其中。下面是 Delphi 架构师 Anders Hejlsberg 在 Delphi1 埋下的复活节彩蛋。

26. 现在 Delphi 使用起来仍然很有趣

今天的 Delphi 也仍然很有趣,它拥有有一个活跃的社区,以及许多才华横溢的 MVP。上一个版本的 Delphi 也埋了一个彩蛋来庆祝 25 周年纪念。

最后回顾一下 Delphi 的历史:

觉得不错,请点个在看呀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

row number函数_Hive排名函数ROW_NUMBER,RANK 和 DENSE_RANK的区别

需求描述:分析最近三个月每天排名前30的邮箱收件数量。涉及到的表字段:发件时间,收件人。一、ROW_NUMBER表t查询出了3月每天不同类型邮箱收件量的降序排名,表t1通过ROW_NUMBER函数给每行数据添加序列号,select ROW_NUM…

边缘计算k8s集群之SuperEdge

什么是边缘计算边缘计算,是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安…

让你的系统移动起来

最近一直在捣鼓linux系统,听一大哥说想搞好它,最简单的方法就是经常用,用的久了也就自然简单了。。就跟我们用windows一样。。在linux系统里,我最喜欢的是Ubuntu。。个人感觉它做的还不错,有丰富的三方软件支持&#x…

简约而不简单的 Django 新手图文教程

来源:cizixssegmentfault.com/a/1190000008387882本文面向:有python基础,刚接触web框架的初学者。环境:windows7,python3.5.1,pycharm专业版,Django 1.10版,pip3一、Django简介百度百…

【直观详解】支持向量机SVM

【阅读时间】13min - 19min【内容简介】详解解读什么是支持向量机,如何解支持向量以及涉及的拉普拉斯乘子法,还有核方法的解读。1什么是支持向量机-SVM支持向量机-SVM(Support Vector Machine)从本质来说是一种:用一条线(方程&…

C# 打印PDF文档的10种方法

操作PDF文档时,打印是常见的需求之一。针对不同的打印需求,可分多种情况来进行,如设置静默打印、指定打印页码范围和打印纸张大小、双面打印、黑白打印等等。经过测试,下面将对常见的几种PDF打印需求做一些归纳总结,这…

遗传算法经典实例代码_经典算法研究系列 之 深入浅出遗传算法

关注数学,关注AI,关注我们公众号ID:Math-AI经典算法研究系列遗传算法1初探遗传算法Ok,先看维基百科对遗传算法所给的解释:遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是…

java buffalo_随你怎么玩!Buffalo 网络硬盘新潮流

现代时尚的办公环境是怎样的?ADSL、无线网络、笔记本、还有咖啡,惬意地被沙发包裹起来,自由自在地网上冲浪……;当然仅仅有这些还是不够,我们需要视频会议、需要网络下载、甚至打印、扫描,还有需要随时随地…

.NET gRPC核心功能初体验

gRPC是高性能的RPC框架, 有效地用于服务通信(不管是数据中心内部还是跨数据中心)。由Google开源,目前是一个Cloud Native Computing Foundation(CNCF)孵化项目。其功能包括:•双向流•强大的二进制序列化•可插拔的身份…

为什么我怎么也理解不了波粒二象性,是因为智商不够吗?

大家好,各位观众。如果你们之前不能完全理解波粒二象性(现象本身,或者这个概念的内涵和外延)。不用担心,我认为十有八九不是智商问题:量子物理的内容有太多“反常识”了。很多时候,是我们的脑袋…

设备间的连线图例

转载于:https://blog.51cto.com/51fashion/243017

化学版2048,你玩过吗?内含游戏链接

今天来给大家推荐一款游戏——Na(钠),也可以叫它化学版2048。首先2048大家都不陌生,曾经火爆一时的小游戏,于14年由年仅19岁的意大利程序员加布里勒希鲁尼(Gabriele Cirulli)开发出来。2048游戏…

sqlsession.selectlist 会返回null么_StackOverflow经典问题:代码中如何去掉烦人的“!=nullquot;判空语句...

推荐阅读:程序员引路人:腾讯T4曰“面试不仅仅是技术过硬就可以了,你还需要懂得这些”​zhuanlan.zhihu.com问题为了避免空指针调用,我们经常会看到这样的语句if (someobject ! null) { someobject.doCalc();}最终,项…

如何在 ASP.Net Core 中使用 Configuration Provider

ASP.NET Core 是一个开源的,跨平台的,精简的模块化框架,可用于构建高性能,可扩展的web应用程序, ASP.NET Core 中的数据配置常用 k-v 的形式存储,值得注意的是,新的数据配置还支持 层级方式&…

GdiPlus[30]: IGPPen: 线帽

StartCap 和 EndCap 属性分别用来读写两段的线帽, 测试图:StartCap 和 EndCap 测试代码:uses GdiPlus;procedure TForm1.FormPaint(Sender: TObject); constCapArr: array[0..8] of Byte (0, 1, 2, 3, $10, $11, $12, $13, $14); varGraphics: IGPGraphics;Pen: IGPPen;Pt1,Pt…

你知道怎么样排序才能做到多快好省?

小智最近迷上了计算机算法,今天过来给大家讲讲排序算法。准备讲排序算法之前,我们还是要先回顾一下排序这个概念。排序是一门古老的科学。排序问题,用数学的方式可以表达如下问题输入:给定n个数,a1, a2, a3, ..., an…

C# 使用 Index 和 Range 简化集合操作

C# 使用 Index 和 Range 简化集合操作Intro有的语言数组的索引值是支持负数的,表示从后向前索引,比如:arr[-1]从 C# 8 开始,C# 支持了数组的反向 Index,和 Range 操作,反向 Index 类似于其他语言中的负索引…

我的小服务器

朋友做了一个工控机的板子,我要了一块来,自己加上了迅驰1.2G CPU,再从笔记本上拆了一个1G内存和老的移动硬盘 30G IDE,就算搭起了一个最简陋的服务器。此外我从破DVD光驱上拆了一块铁皮底板,打了几个洞,把主…

爱心助农|百万斤丑苹果紧急待售!谁能帮这些特困孩子熬过寒冷冬天?

题记:人们在猛兽横行的蛮荒年代,得以从树上回归地面,是人们守望相助的结果,也是人类能繁衍至今的原因在这个什么都讲究颜值的年代有这样一个东西却以“丑”、“但非常好吃”引起了我们的注意它便是山西临猗的冰糖心丑苹果还要一个…

微软开源AI诊断工具Error Analysis

喜欢就关注我们吧!Error Analysis 使用机器学习技术,助数据科学家更好地了解模型错误模式。在 2020 年 5 月的微软 Build 大会上,微软推出了三个响应式的 AI(Responsible AI,RAI)工具包,这三个工…