学习Delphi的五个理由

几天前,我在Facebook上进行了一场激烈的辩论。像大多数活跃在IT社区中的人一样,我的社交媒体Feed上载满了您可以想象的每个趋势IT概念的广告。最近,这些广告都是关于机器学习和AI的。或者,我应该说,使用这些流行语来吸引人们对其产品的关注的公司。我还没有见过AI曾经用来卖鞋子,但是这只是时间问题。

云计算概念背景与很多图标

像任何技术一样,云的强大之处仅在于您的洞察力

还有一个问题是:是的,一个14岁的孩子可以在15分钟内将AI聊天机器人与产品XYZ组装在一起。但这并不意味着他或她了解用户界面下正在发生的事情。当然,目标必须是教给孩子们一生受益的技能。

那些了解我的人也知道,是的,即使我确实应该闭嘴,我也倾向于说我的意思。另一方面,这也是公司和开发人员给我打电话的原因,因为我会打电话给废话并帮助他们避免这种情况。这是我工作的一部分,以帮助使用Delphi的个人和公司选择适合其需求的版本,获取适合其目标的组件–并在他们需要一些投入的情况下制定战略。我什至会深入研究并在需要时进行一些代码转换。与领土。

通常,我只是忽略了在标题中加上“ cloud”或“ ai”的广告,因为它主要是为非开发人员设计的点击诱饵。但是出于某种原因,这则广告吸引了我的注意。也许它触发了90年代末期早期Java广告的痛苦,或者它释放了潜在的侵略性,避免了受到Microsoft Silverlight的心理困扰。谁知道该广告是关于一家挪威公司的,该公司专门教年轻的学生如何成为专业的开发人员。您知道“三周内成为专家”类型的发布者吗?令我吃惊的是,他们没有提供涉及原型语言的一门课程,并且他们正在兑现自己的承诺,而事实并非如此。唯一涉及的人工智能是Facebook的广告引擎。

事实是–在桌面级别,世界上有足够多的开发人员。桌面和Web市场淹没了开发人员,这些开发人员可以下载库,在表单上放置组件并连接到数据库。世界真正需要的是更多使用原型语言的开发人员。如果您不知道那是什么,那么在我们继续之前,让我做一个简短的总结。

原型语言

原型编程语言是围绕计算机实际工作方式而设计的结果,这些语言和工具链体现了以下几个属性:

  • 指针和原始内存访问
  • 传统内存管理,无垃圾收集
  • 程序和面向对象的执行
  • 内联汇编器
  • 几乎没有外部依赖
  • 静态链接(嵌入预编译的代码)
  • 编译后的代码无需操作系统基础架构即可运行
  • 适用于内核,驱动程序,服务,桌面,网络和云级别开发
  • 产生各种芯片组机器码的编译器

在撰写本文时,只有两种原型语言(实际上是3种,但是汇编语言是特定于芯片组的,因此我们将在此处跳过),即C / C ++和Object Pascal。这些是用于编写所有其他语言的语言。如果您打算从头开始编写自己的操作系统,则只适合使用C和Pascal。这就是为什么这些是曾经用于制作操作系统的唯一语言的原因。

io

Delphi是世界上20种最常用的编程语言之一。它在2017年排名第11位。像所有排名一样,它会根据季节和市场变化而波动。

显然,我并不是在建议人们学习Delphi或C ++ Builder来编写自己的OS,或者您必须知道组装程序才能制成发票系统;我只是在说,即使您所做的只是编写桌面应用程序,您从学习Delphi和C / C ++中学到的见识和技巧也将使您在各个层次上都变得更好。

乐观的语言

乐观或人性化的编程语言与原型语言一样长。Basic是一种开放式语言,C#和Java是开放式语言,Go和Dart是同一种开放式语言。诸如node.js,python和Erlang之类的脚本引擎(如果您错过了Scott Hanselman关于该主题的史诗般的东西,那么您可以请客)。他们之所以被称为乐观人,是因为他们用功能交换安全 ; 从苛刻的硬件现实中沙盒开发人员。

乐观语言通常被设计为根据“人类希望事物成为什么样的方式 ”起作用(因此称为“ 乐观一词)。这些语言在很大程度上依赖于现有的基础结构才能正常工作,并且每种语言都倾向于专注于特定的任务-随着时间的流逝,它们只会分支并变得更加通用。

乐观的语言没有错。除非将它们以某种优势或与原型语言相媲美的价格出售给年轻学生。这是一件非常危险的事情–因为老师有责任为学生做好现实生活的准备。我什至不知道看到刚从大学毕业的年轻开发人员获得“这份工作”的次数,只是意识到业务的核心,即任务关键型东西是用Delphi或C / C ++编写的,他们从未学过。

人们不知道现代世界上有多少语言依赖于这些语言。几乎令人震惊的是,如何在2019年成为一名开发人员并对这些区别视而不见。不要误会我的意思,这不是学生的错,恰恰相反。我很高兴事情开始好转(更多有关此事的进一步讨论)。

原始全栈

回到我的小encounter;发生的事情是,我只是按照“为什么不给孩子一些有益于他们一生的东西”的方式评论。就我而言,这只是一个过客的评论,我应该忽略它;不久之后,我便按下了Enter键,当时一小群网络战士似乎在捍卫他们对2019年“全筹码”的解释。忽略了在1988-ish左右使用完全相同的术语这一事实。我认为是由Aztec或SAS-C创造的。没关系

阿兹台克人

原始的“全栈”在传统开发中具有非常不同的含义。虽然我不记得它是Aztec-C还是SAS-C,但是整个堆栈都是台式机的驱动程序

长话短说,我最终与这些少年们讨论了过去35年中技术的发展情况。从理论上讲不是这样,而是从C = 64发布以来一直是程序员。我还向他们介绍了原型语言,并指出了我在上面所做的区分。如果您不知道区别,就无法比较。

我没有其他语言的问题,我用了几个自己,我的意思很简单:如果我们要教下一代程序员一些东西,那么就让他们教我们生态系统所依赖的永恒的原理和工具。我们需要将Delphi和C / C ++重新纳入课程表,因为这反过来将帮助学生成为更好的开发人员。最终他们做什么工作都没有关系,因为有了基本的了解,他们将更适合。期。

如果您首先学习Delphi,那么您将成为更好的Java开发人员。如果您学习Delphi,将会成为更好的C#开发人员。就像大自然具有复杂性一样,计算也是如此。并且了解每一层如何工作以及那里存在哪些法律–将对您编写高级代码的方式产生巨大影响

所有这些都很好,互联网勇士们似乎有些困惑。他们没有为进行实际对话做好准备。因此,起初有些粗糙,最终却变成了有意义的,友好的对话。

说到教育:我很高兴地说,挪威的两所大学现在又有学生在使用Delphi。这是朝正确方向迈出的一步!人们正在重新发现Object-Pascal的生产力,以及为什么该语言仍然是世界上许多公司的生硬之宝。

盗版,问题的灵气

与这些年轻的开发人员交谈时,对我影响最大的是,他们与Delphi或C / C ++几乎没有任何关系。从教育的角度来看,这不仅令人震惊,而且是智力上的紧急情况。他们对Delphi唯一的了解是传闻和胡说。

海盗行为

虚假陈述的根源是盗版,公开地是过时的版本,该版本从未设计过可在现代操作系统上运行。使用社区版,人们可以享受现代化的高性能Delphi,而无需诉诸非法活动

但是一段时间后,我终于发现了他们的信息从何而来!直到今天,Delphi 7仍在大量盗版。这是出于某种奇怪的原因,在亚洲非常流行(当我跟进时,大多数torrent IP都在那里结束了)。因此,青少年下载了任何标准的古老的Delphi 7,他们遇到的第一件事就是不兼容问题。这是可以预料的,因为Delphi 7是很久以前发布的。但这就是在下载了这些破解的非法捆绑软件之一之后留下的印象。

我下载了这些“立即可用”捆绑软件中的一个,以进行更仔细的查看,其中包含至少500个商业组件。您拥有完整的TMS组件集合,Developer Express,Remobjects SDK,ImageEN,FastReports,SecureBlackBox,Intraweb —数万美元的代码。有一个非常明显的因素Delphi 7和涉及的组件都已严重过时微软甚至不再支持Windows XP,它是在青铜时代初期编写的。

因此,现实情况是这些年轻的开发人员一生中从未见过现代的Delphi。在他们看来,Delphi意味着Delphi 7,他们几乎可以在任何地方下载(这是非法的,到处都是病毒,请保持清楚)。怪不得对此主题感到困惑(!)

他们很高兴了解社区版本,因此最终我至少要唤醒他们了解现代Delphi所代表的强大功能。社区版是一件了不起的事情。自社区版发布以来,在Facebook上加入Delphi-Developer的成员数量几乎增加了一倍。

一些学生去了Embarcadero,下载了社区版,他们的下巴掉了下来。他们以前从未见过这样的开发环境!

给我五个学习德尔福的好理由

delphi_box鉴于这一集,我想可以分享五个原因,为什么Delphi和object-pascal仍然是我的主要编程语言。

在使用JavaScript,Python或任何情况下,我都不会遇到任何问题-但是在涉及关键任务的数据处理和服务方面,需要24/7的正常运行时间;或根本无法容忍CPU峰值的嵌入式解决方案。我是德尔福。

这五个原因也与我给青少年的原因相同。所以去。


大深度和翼展

Object Pascal(德尔福是其中的流行方言)是一种很棒的语言。从本质上讲,就功能而言,C / C ++和对象Pascal之间几乎没有区别,但是对象Pascal的语法比C / C ++(IMHO)更具生产力。

Delphi和C ++ Builder实际上共享运行时库(有两个,仅Windows的VCL和独立于平台的Firemonkey)。开发人员经常在这些语言之间混合和匹配代码,因此可以用C ++构建器使用用Delphi编写的组件,并且可以使用用C编写的库并将其链接到您的Delphi可执行文件中。

一个有趣的事实:人们认为Delphi很老。但是C语言实际上比pascal大3岁。在他们使用这些语言的同时,Embarcadero(使Delphi和C ++生成器的开发者)将您期望的所有有趣的功能从现代语言引入到Delphi中(诸如泛型,内联变量,匿名过程之类的东西) )。因此,Delphi已过时或不合适的神话就是那个神话。

食物链

编程语言生态系统

而且还有额外的奖励!与C / C ++一样,Delphi代表了跨越数十年的课程和血统。停下来想一想。数十年来,这是一种已发展为解决各种可能出现的技术挑战的语言。这意味着您可以相信该语言可以提供什么。

世界上有数百万的Delphi开发人员。实际上估计有1000万。该语言在TIOBI语言索引中排名第11;它正在不断发展,具有清晰的路线图和时间表-大小公司都将其用作其业务的基础。甚至挪威政府也依靠德尔福。用于处理挪威人口医疗保健信息的系统是纯Delphi。这就是针对520万人的数据处理。

Pascal对象不仅经受了时间的考验,还创新了它。就像C / C ++对象一样,pascal的翼展和深度从汇编器到系统服务,从数据库引擎到可视化桌面应用程序,再到从桌面一直到Cloud和基本Web技术,都可以达到。

因此,学习Delphi的第一个很好的理由是深度Delphi涵盖了本机堆栈,从内核级驱动程序到高速数据库引擎,再到可视化桌面应用程序。它也非常适合云服务(Windows和Linux目标)。


简单易学

我提到Delphi功能强大,并且深度与C / C ++相同,但是为什么要学习Delphi而不学习C ++?好吧,该语言(对象pascal)是专门为提高可读性而量身定制的。结论是,人脑比符号或字形识别单词的速度更快-因此,读取复杂的Pascal代码而不是复杂的C代码更容易。尽管个人口味。

尽管有深度,Delphi还是易于学习和掌握的乐趣!

尽管有深度,Delphi还是很容易学习和掌握的!

Pascal对象也非常具有声明性,具有尽可能少的未知因素。这教导人们编写整洁有序的代码。

也许我最喜欢的一个Pascal代码文件同时包含接口和实现。因此,您不必编写在C / C ++中常见的第二个.h文件。

如果您已经了解OOP,无论是Java,C#,Rust还是其他任何东西,学习Delphi都是小菜一碟。您已经了解了类,接口,泛型,运算符重载,并且几乎可以跳到内存管理,指针和结构(pascal中的记录,C中的struct)。

在Embarcadero Academy挥杆并参加课程,或者前往Amazon并在Delphi上购买一些好书。下载Delphi社区版,您将立即启动并运行。

还记得在Facebook上加入Delphi Developer,成千上万的活跃开发人员在这里聊天,互相帮助并共享24/7的解决方案。


定位多个平台

如今,借助Delphi和C ++构建器,可以轻松地针对多个平台。您可以通过单个代码库定位Android,iOS,OS X,Windows和Linux。

一个代码库,多个目标

一个代码库,多个目标

我的意思是,您打算用Java编写一个版本的应用程序,用C#编写第二个版本,在Objective C中编写第三个版本,在Dart中编写第四个版本吗?因为如果计划使用每个操作系统制造商提供的开发工具,这就是您要面对的现实。仅仅为了将产品推出市场就需要大量的时间,金钱和精力。

使用Delphi,您可以立即使用本机代码访问所有平台,从而缩短了产品上市时间和ROI。人们使用Delphi是有原因的。

Delphi在移动平台上发出的LLVM优化代码也将为您带来出色的性能。


丰富的代码库

人们常说,年龄的好处是智慧。我想计算等效项是大量,丰富的组件,库和临时代码的集合,您可以将它们放入自己的项目中或只是学习。

您可以搜索几乎所有主题的Google,并且会有Delphi的代码。Github,BitBucket和Torry的Delphi页面包含了开放源代码框架,涵盖了从编译器内核,MIDI接口,游戏开发到多线程,机器集群服务器解决方案的所有内容。一旦开始寻找,就会发现它。

GitLab-vs-GitHub-vs-bitbucket-1

互联网上有许多用于Delphi和C ++ Builder的代码,组件和库。还请记住专门的网站,例如Torry的网站

还有很多技术合作伙伴可以为Delphi生成组件和库-就像前面提到的那样,一旦学习了绳索,就可以使用C编译代码进行链接。

哦,当我较早提到数据库时,我不是在谈论传统数据库。德尔福让您无所顾忌,而我也正在谈论从头开始编写数据库引擎。有几种数据库引擎完全在Delphi中实现。ElevateDB是一个示例。

Delphi还附带了Interbase和Interbase-light(嵌入式和移动式),因此您可以轻松访问数据存储解决方案。FireFAC还允许您直接与已建立的数据库连接-再次提供大量免费的商业解决方案。


速度与技巧

我最喜欢Delphi和C ++的地方在于您的代码或编写代码的方式会直接影响您的结果。在某些新型的,乐观的语言中,优化的技巧很少是一个因素。但是,您可以使用母语来使用较少时间或更有趣的传统技术:探索以更少的成本实现相同目标的方法。

作为一种本地语言,Delphi和C / C ++可以生成快速的可执行文件。但是我喜欢您自己的技术,您自己的组件和您自己的库总是有空间的。

书籍

像数学一样的技术是永恒的

需要编写系统驱动程序吗?好吧,速度突然变成一个非常重要的因素。在该级别上,垃圾收集器可能是一场灾难,因为它会按时间间隔启动并导致CPU峰值。也许您想编写一个编译器,或者需要一个可靠的脚本引擎?如何将V8 JavaScript引擎直接链接到您的程序中?使用Delphi,所有这些操作都非常简单。

因此,有了Delphi,我可以两全其美,可以在需求微妙的时候使用手术刀,还可以用链锯切割繁琐的工作。诸如属性绑定之类的东西是上帝赐予的。这是一种技术,您可以在视觉上将任何组件的属性绑定在一起,就像事件一样,并创建因果链。因此,如果值在绑定属性上发生更改,则会触发绑定的任何内容,依此类推,如此等等-太棒了!

因此,您无需编写任何代码即可创建具有网格和导航功能的完整数据库应用程序。那只是一个简单的示例,您可以立即执行更多操作,并且可以节省大量时间。

但是,当您真正需要编写高性能代码或构建可让您的公司与众不同的杀手级框架时,您就拥有了自由!


因此,如果您还没有签出RAD Studio,请前往Embarcadero并下载免费试用版您会惊讶并意识到为什么这么多人喜欢Delphi和C ++ Builder。

https://jonlennartaasenden.wordpress.com/2019/02/08/5reasons/

 

posted @ 2020-01-19 09:39  findumars  Views(1167)  Comments(0Edit  收藏  举报