【问题标题】:Pascal and its current applications [closed]Pascal 及其当前应用程序 [关闭]
【发布时间】:2010-11-01 08:02:00
【问题描述】:

我在 1997 年学习了 Turbo Pascal,我非常喜欢它作为一门语言。一切都非常结构化,编译器确保你以正确的方式做事。后来我尝试了 Delphi,但从未对它很感兴趣。

从那时起,我使用了许多不同的编程和脚本语言(C、C++、PHP、Python、Perl、TCL),最近我开始想起我以前的 Turbo Pascal 日子。

所以,我想知道 Pascal 在今天有哪些实际用途,以及有哪些 API 和框架可用。有没有人有在现代开发环境中使用 Pascal 的经验,或者它只是一种死语言?

澄清我的问题:Pascal 可以用于现代应用程序开发吗?是否正在使用以及如何使用?

维基百科链接或快速谷歌搜索无济于事,我去过那里。这就是我问“专家”的原因。

【问题讨论】:

  • 很高兴知道您为什么不喜欢 Delphi?
  • 我在 Delphi 中创建的应用程序总是看起来有点丑陋和格格不入。我也没有必要的数据库背景,网络以创建任何有用的东西。不是德尔福的错 :)
  • 哇 Android,你看看它就知道了,它很强大,我在 3 个月前刚学会用 Delphi 编程,它很棒(我唯一不喜欢它的就是 Pascal 语法:- )
  • 嘿,在我的书架上,我有一本来自 Borland 的小书,名为“在 21 天内自学 Delphi 2”。也许我会:)
  • 这个问题属于programmers.stackexchange.com

标签: pascal


【解决方案1】:

请注意,旧 (1.0.x) 版本的 Free Pascal 编译器源代码实际上与 Turbo Pascal 兼容(因为可以使用 TP 进行调试),这展示了基本的 Pascal 功能。

使用 Pascal 作为基本语言的问题与 C 大致相同,因为它们在语言级别上几乎是等价的。唯一的区别是编译器的数量、用途和质量。

我强烈建议您使用 Delphi 方言(使用 Delphi 或 Lazarus/FPC),而不是回到 Turbo。

DOS-isms 和 16-bitisms 会严重限制您,FPC 或 Delphi 支持几乎没有 DOS-isms 和 16-bititms 的整个方言。

Turbo Pascal 是 DOS 时代的主要编译器之一(如果不是 THE),而 Delphi 仍然是世界上销量第二高的 IDE(仅次于 Visual Studio),所以我认为“死语言”和“教学”语言”位有点夸张。

【讨论】:

  • 我喜欢术语“DOS-isms”,甚至更喜欢“16-bitisms”。 否则,我完全同意。现代 Delphi 和 FreePascal 不再像 TP。它们已经有了很大的发展。 Plain Pascal 最初是作为教学语言开始的,但是,嘿,大多数人也是从婴儿开始的,但大多数人都在进化。
  • FWIW,Pascal 不是一开始是作为一种语言来教授编程,它一开始是作为一种语言来教授编译器构建。当前的 Delphi 和 FreePascal 编译器要复杂许多倍且用途广泛。
  • Afaik 向数学学生教授算法。那时通常没有 CS 作为单独的部门,但那些数学学生(有编程倾向)可能相当于现在的 CS 硕士生。
【解决方案2】:

一位从 Java/C/C++ 切换到 FPC 的满意用户的意见:

Pascal,尤其是 Free Pascal (FPC),对任何事情都非常有用。具有良好性能的应用程序编程(因为它正在编译),游戏编程(例如通过 OpenGL),也适用于 Web 编程,因为它可以编译为 Java 字节码。它可在所有重要平台(MS、Linux、Mac、iOS、Android 等)上运行。

FPC 高度更新,与一些人可能认为我们正在讨论的 70 年代/80 年代的语言相比,它是一种非常现代的语言。它具有 OOP 扩展(包括使用 Objective-C 类的“Objective Pascal”模式),并且 OOP 与 C++ 一样是非强制性的。它还具有运算符重载、函数重载、动态数组、有限的垃圾收集、自动命名空间……此外,它是一种模块化语言(如 Java),而 C/C++ 经过这么多年仍然是非模块化的(用#include 伪造它)。 (我很想认真讨论一下“现代”语言今天必须具备哪些特征。)

我有提到可移植性吗? FPC 带有一个大型运行时库,其中大部分是跨平台的,包括一个类库(主要与 Lazarus AFAIK 一起使用)。 FPC 非常适合编写可移植代码。

作为一种教学语言,一个主要优势是它与 C/C++ 的接近程度。它实际上只在最微不足道的语法(和不同的对象模型)上有所不同,但实际上非常接近 C++。 C/C++ 和 Pascal 之间的移植比 ObjC 和 C++ 之间的移植更容易。但 FPC 的优点是更容易学习,语法更简单。

所以我声称 FPC 作为教学语言和严肃的应用程序编程都非常有用。 (我认为这是理想的,但这更多是一种意见。)

一直有 Pascal 仇恨者制造无知的火焰,通常指的是 70 年代的原始语言。就我个人而言,我认为 70 年代的 Pascal 和 20 年前的问题(当便携性成为问题时)都不值得讨论。有趣的是你现在可以做什么,除了“但其他人都做……”的争论之外,语言之间的利弊。

【讨论】:

  • 如果没有为 Pascal 提供 API 的库,那么它如何“对所有事物都有用”? FPC 不是“非常现代的”。它缺少类型推断、闭包、lambdas、内存管理、打包/解包、多重赋值、列表推导、生成器、切片符号、元组、对比设计、过滤器/映射/归约、字典和作为本机类型的列表、大整数等。运行时库无法与 JVM、.NET 或 Python 进行比较。在大多数国家,没有更多的书籍、杂志、工作、现场会议、在线课程等。为什么今天人们会选择 Pascal 而不是 Python、Nim、D、Go、Rust 等?
  • @alcalde 醒醒,孩子。 Pascal 中有许多库,它们都由实现提供,也可以从 3rd 方来源获得。即使您不太了解该语言(您提到 Pascal 没有内存管理,这是 100% 错误的),也不要认为您可以判断库。
  • @LeleDumbo 没有“很多 Pascal 库”。 Torry.net 有不到 13000 个文件,其中大部分是商业演示或可追溯到 Delphi 3-5。 Python?其存储库中超过 72K。爪哇? 128K。走? 106K。节点.js?超过200K! Delphi 没有对象的自动内存管理。我已经用 Pascal 编程将近 30 年了,我当然很了解这种语言。一个人不能毫不夸张地诚实地捍卫今天的语言今天的生存能力。当亚马逊为 Pascal 提供 API 时,我们可以讨论支持。 Crystal Reports 在 1990 年代等之后放弃了对 Delphi 的支持。
  • @alcalde “对一切都有用”不是真的。但是“最适合某种程序”是绝对正确的。我的意思是最好的。你列出了你认为好的东西,但它们不是——至少并非总是如此。例如类型推断、多重赋值、内存管理。例如,它比 python 级别低,但更快、更干净。也许你还太小不懂事?
  • @alcalde 刚刚发现:stackoverflow.com/questions/41446833/…——这些歧义不可能在帕斯卡中发生。
【解决方案3】:

Pascal 不用于任何实际操作,因为没有库支持。

多牛啊。 Delphi、FreePascal 和 Lazarus 可以使用大量的库。

正如 McWafflestix 所说,拥有简化的环境是有价值的

“简化环境”?那只是贬义。我会说它现在而且一直都非常复杂。

【讨论】:

  • 没有可用于 Delphi/FreePascal 的“大量库”。 Torry.net,自 90 年代以来 Pascal 的包裹整理网站,还没有完全打破 13,000 个包裹。很多东西要么是为旧版本的 Delphi 编写的,要么是试用软件。相比之下,Python 的包管理站点 PyPI 在一年内增加了超过 12,000 个(免费、开源)包。同样,我的分析表明,Torry 以每天不到 0.5 个包的速度添加一个新的、免费或开源的包。 Modulecounts.net 显示 Go 每天 158 个,Java 115 个,.Net 47 个,Python 59 个,等等。
  • @alcalde:是的。也许与 C++ 或 Python 相比,没有那么多,但仍然有大量的库。 但不要再只看托里了,它已经不是以前的样子了。只需谷歌,或查看 GitHub 和类似网站。也可以看看 JEDI 网站。在最流行的 Pascal 实现之一 Delphi 中,您还可以使用 GetIt 管理器查找用于 Delphi 的软件(付费、试用和开源软件)。阅读“begin end”或“DelphiFeeds.com”等网站,了解有关 Delphi 和 FreePascal 的更多信息。再一次,对于帕斯卡来说,在托里发生的事情不再那么重要了。
【解决方案4】:

让我们记住 Lazarus 是 Delphi 的免费克隆:

http://www.lazarus.freepascal.org/index.php

还有 FreePascal:

Free Pascal(又名 FPK Pascal)是一个 32 位和 64 位的专业 Pascal 编译器。它适用于不同的处理器:Intel x86、Amd64/x86_64、PowerPC、PowerPC64、Sparc、ARM。

http://www.freepascal.org/

【讨论】:

  • 请放下“FPK”别名。改名已经十多年前了:_)
【解决方案5】:

还没有人提到 TeX(以及 METAfont 和其他 TeXware)是用 Pascal 编写的。

在 90 年代初期,我使用自定义的 Pascal 方言开发了商业 X/Motif CAD 应用程序。

【讨论】:

    【解决方案6】:

    主要的是 Pascal 导数 Delphi(来自 Embarcadero,以前归 Borland 所有)。

    请参阅Wikipedia 了解更多列表,其中大部分是开源的。

    【讨论】:

      【解决方案7】:

      Pascal 能否用于现代应用程序开发。是不是正在 用过,怎么用?

      当然可以,而且被广泛使用。看看 Lazarus CT(免费的 Delphi 克隆),它从单一来源生成现代跨平台本机应用程序。它有大量的组件和很多很多的例子。它是 RAD,具有 8 个主机 OS/CPU 层(win32/64、lin32/64、freebsd 32/64、solaris 32/64)和 22 个目标 OS/CPU 层 (i386-win32, x86_64-win64, i386-linux, x86_64-Linux, arm-wince, arm-linux, powerpc-linux, powerpc64-linux, sparc-linux, i386-freebsd, x86_64-freebsd, sparc-solaris, i386-solaris、x86_64-solaris、i386-haiku、arm-gba、arm-nds、arm-embedded、armeb-linux、arm-android、i386-android、powerpc-wii)。还有什么工具能比得上?

      附言请记住以 admin/root 身份安装它。

      【讨论】:

      • “还有什么其他工具可以匹配?”所有这些,真的。 C、C++、Python、Ruby、D、Go、Java 等
      • @alcalde 他们中的许多人依赖字节码或类似的东西。不太一样。
      【解决方案8】:

      从版本 1 一直到 2012 年的 RAD Studio XE3,我一直在使用 Pascal。那是我的第一语言。帕斯卡中的知识几乎就是它运行的系统中的知识。

      这是一门令人惊叹的语言,它为我掌握 C、嵌入式 C 和模拟/数字电路设计奠定了基础——所有这些都是自学的。后来我研究了 PHP、JS 和 TCP 模型,对理解它们背后的任何核心概念没有任何困难。

      当然,Pascal 现在是 Object Pascal,就像 Basic 是 Visual Basic。以下是 Pascal 在 2012 年在其商业产品中所做的事情。 (非商业版的 pascal 也一样好,甚至更好)

      支持几乎所有的网络技术。 支持几乎所有的数据库技术。 单一代码库中的跨平台。 大型社区、组件和库。

      用 Pascal 开发的一个流行应用程序是 Skype。

      拥有自己的语言的微软去年以 8 亿美元的价格收购了 Skype。

      【讨论】:

      • 嗯,VB 从来都不是 Quick Basic 兼容的。 Delphi 与 TP 高度兼容。 FPC 甚至更多。
      【解决方案9】:

      搜索关键字'pascal',用'programming language' => 'pascal'过滤结果,你会发现一堆pascal的应用,如果不是企业级,至少是严肃的程序员级别。

      有这么多开源和跨平台的ide、库,我认为pascal还活着(除了流行的delphi方言),可以做实际的任务。正如结果所暗示的,pascal可以做操作系统、编译器、交叉-Platform Library,Desktop-Programming。所以,Pascal 似乎至少可以完成很多严肃的任务,如果不是太实用而无法立即赚钱。

      不管怎样,我喜欢这种语言,虽然我没有用它做过任何认真的编程。

      【讨论】:

      • 嗯,流行的大多是面向 Delphi 的,所以如果你从 Pascal 中排除 Delphi,“pascal”会在大小上崩溃。
      • 也许你的意思是“特别”而不是“除了”?因为delphi是它最活泼的形式。
      【解决方案10】:

      我认为 Turbo Pascal 流行的主要原因不是 Pascal 语言,而是 IDE。据我所知,使用它真的很容易,速度很快,甚至调试也很有趣。

      另一方面,Pascal 语言已经过时,因此 Borland 为 Pascal 语言添加了很多东西(并使他们的语言更类似于 Module-2)。

      【讨论】:

      • 不完全正确。 Pascal Ansi/ISO 委员会正在(与 Wirth 一起)研究模块化系统。 Afaik Borland 主要借鉴了他们早期的建议。
      【解决方案11】:

      Pascal 作为一种教学语言很有用;它说明了一些更基本的计算机科学规则,比 C 语言更晦涩。

      【讨论】:

      • 但是为什么它不用于任何实际的事情呢?对于实际工作应用程序来说,它还不够强大吗?学习一门你不能(或不应该)在你(也许未来)作为程序员的职业中使用的语言似乎是在浪费时间。
      • 学习环境非常有用;您多久将那篇宽泛的论文与您用来学习编写 ABC 的指南一起使用?然而,它是有用的。有时,简化的环境可以减少对学生的干扰,从而提高学习效果。
      • Pascal 不用于任何实际操作,因为不存在库支持。正如 McWafflestix 所说,为了学习软件开发的基础知识,拥有一个简化的环境是有价值的。优秀的工程师可以轻松地将这些概念应用于任何其他高级语言。
      • 我意识到这个问题的重点是 Pascal 而不是 Delphi 变体,但 Delphi 几乎具有 Pascal 的所有优势,并且用于许多实际的事情,例如en.wikipedia.org/wiki/…
      • 我想在这里避免任何形式的语言辩论,但 Pascal 非常适用于大型现实世界项目。例如,Pascal 多年来一直是 Mac 上事实上的首选语言——操作系统本身就是用它编写的,大多数应用程序也是如此,而且仍然有人用 Pascal 编写商业 Mac 应用程序。在 Windows 上,Delphi 非常流行并且仍然相当流行,并且已被用于大量实际项目。 Pascal 的第一个版本确实相对简单,旨在作为一种教学语言,但随着时间的推移,该语言变得非常先进。
      猜你喜欢
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多