V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
weiqk
V2EX  ›  程序员

为什么没人讨论 Delphi 和 Pascal

  •  
  •   weiqk · 2023-09-29 11:14:43 +08:00 · 5235 次点击
    这是一个创建于 450 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就语言特征来说有 oo 且严谨又足够简单,前后三十年可能都没有对手

    就开发工具来说我不信有任何一个开发工具能比得上 Delphi 和开源的 Lazarus

    跨平台看下 Lazarus ,几乎所有的平台都支持

    就开发效率而言,无论是 gui 、server 、client 都没有对手,就连做 web 开发都不知道比 PHP 强了多少

    就轮子数量和质量来说我不认为有对手

    但为什么就凉凉了?
    60 条回复    2023-10-04 23:13:00 +08:00
    dandycheung
        1
    dandycheung  
       2023-09-29 11:17:04 +08:00 via Android
    因为它们没有找到在某个领域可以作为顶端上游的地位,从而导致没有坚定(或者说迫不得已)的追随者。能火起来的,都是有蝎子尾巴的,能力过于均衡的不好搞。
    2NUT
        2
    2NUT  
       2023-09-29 11:28:42 +08:00
    语言的发展主要看两个方面:
    1. 有没有足够的资源投入
    2. 有没有解决当时风口的问题
    zzzkkk
        3
    zzzkkk  
       2023-09-29 11:31:16 +08:00 via Android
    Lazarus 做 web 听都没听过
    ppokyou
        4
    ppokyou  
       2023-09-29 11:31:51 +08:00 via iPhone
    @dandycheung 啥是蝎子尾巴
    jjx
        5
    jjx  
       2023-09-29 11:43:36 +08:00
    delphi 作为一个 rad 开发工具
    其 object pascal 没有垃圾收集

    无法作为一个 rad 工具存在的
    0TSH60F7J2rVkg8t
        6
    0TSH60F7J2rVkg8t  
       2023-09-29 11:44:51 +08:00
    我就一直在用 Delphi 做开发,挺好用的。记得以前聊天的时候,好像有不少朋友提到,盛大有好多 Delphi 项目,不知道现在情况如何了。
    ck65
        7
    ck65  
       2023-09-29 11:46:45 +08:00   ❤️ 1
    问一个很外行的问题,Delphi 是一门 pay to use 的语言?还是说除了 Delphi IDE 之外是可以自由使用的?
    Kirscheis
        8
    Kirscheis  
       2023-09-29 12:16:24 +08:00 via Android
    因为大家都喜欢用新技术做事。。新技术总是更有吸引力一点。web 开发现在用 php 也越来越少了,按理说这么多年 php 的生态也挺无敌的,为啥人都在跑路呢。。c/c++都成熟得不得了,大家还都想试试 rust 。

    另外 delphi 以前不是完全开源的吧我记得,这个应该也是使用顾虑之一。
    qcbf111
        9
    qcbf111  
       2023-09-29 12:27:33 +08:00   ❤️ 5
    要说万能个人觉得 c#算是最强的万能语言
    后端 web 挺多的。
    软件工控几乎只有 QT 和 c#。
    游戏行业只有 js ,c++和 c#,比如王者荣耀,原神都是 c#的
    vr ,ar ,mr 也基本是 c#,苹果那个玩意好像也支持 c#开发。
    要说语言潜力往下可以做到 unity dots 这套那样几乎持平 c 语言的性能,脱离 GC ,甚至比初中级别 C 语言选手更好的性能。
    往上可以做到类似 java ,甚至 python 一样一句 Console.WriteLine 就可以完成 HelloWorld 的程序了。
    我觉得这世界上已经没有一个主流语言有这样的潜力和宽度了吧。
    janus77
        10
    janus77  
       2023-09-29 12:40:26 +08:00 via iPhone
    没有人生来就喜欢万能语言。声称“某某语言无所不能”的人,一般都先是某一种语言的拥护者,而这个语言肯定先要在某一特定领域有所成就并能维持住地位(注意这个“维持地位”哦),下一步才能有更大的野望,即成为万能语言。
    那么问题来了,你说的这两种,在什么地方是有所成就并维持住地位了的呢?光靠一个啥都能做,可不能成为他流行的理由
    sakura6264
        11
    sakura6264  
       2023-09-29 12:41:50 +08:00   ❤️ 1
    pascal 变量必须写前面这点挺难受的..
    flyqie
        12
    flyqie  
       2023-09-29 12:47:35 +08:00 via Android
    @qcbf111 #9

    游戏行业还大量用 lua 。。

    很多游戏实际上业务逻辑都是 lua 做,c#初始化游戏传 wrap 然后拉起 lua 。
    iorilu
        13
    iorilu  
       2023-09-29 12:55:30 +08:00 via Android
    delphi 当年也就主要做点简单 gui 工具把

    按理是有点价值的

    只能说现在人不愿意尝试太老的东西,除了 c 语言
    terence4444
        14
    terence4444  
       2023-09-29 13:03:57 +08:00 via iPhone   ❤️ 1
    因为没有公司在后面持续更新了,Delphi 6 以后好像是因为关键人员流失导致停滞。
    MAGA2022
        15
    MAGA2022  
       2023-09-29 13:08:20 +08:00 via Android
    @qcbf111 最强万能语言是 js
    yolee599
        16
    yolee599  
       2023-09-29 13:08:34 +08:00 via Android   ❤️ 1
    因为 Delphi 的开发工具现在要收费了,还只有他一家,就不想用
    leido
        17
    leido  
       2023-09-29 13:10:30 +08:00 via Android
    你在 c/c++还能看到 Pascal 的影子,比如 stdcall
    gpt5
        18
    gpt5  
       2023-09-29 13:13:47 +08:00
    小时候参加竞赛,附加题是 pascal ,所以学了 pascal 。
    但从来没在实际中用过。
    cnbatch
        19
    cnbatch  
       2023-09-29 13:28:44 +08:00   ❤️ 2
    根本原因在于长期不开源。

    当下流行的 Top 10 编程语言,全都是开源的。无论榜单标准是 TIOBE ,还是 IEEE Spectrum ,或是直接看 GitHub 的语言排名,全都不例外。

    C# 最初也不开源,但最终开源了。Delphi 呢?至今仍然闭源吧。第三方的 Delphi 开源兼容品,地位不就类似于 C# 未开源时的 mono 嘛。
    C# 闭源时,mono 都没法推动 C# 火起来。更不用说至今仍在闭源的 Delphi 了。
    hsfzxjy
        20
    hsfzxjy  
       2023-09-29 13:30:13 +08:00 via Android   ❤️ 1
    因为当年用的人都老了..
    flyqie
        21
    flyqie  
       2023-09-29 14:19:45 +08:00
    @cnbatch #19

    确实。。语言不开源的话没有使用的动力。

    出了问题想解决都没办法。。
    yzbythesea
        22
    yzbythesea  
       2023-09-29 14:29:48 +08:00
    初中学 NOI 时用的,几十年前了。
    Ericcccccccc
        23
    Ericcccccccc  
       2023-09-29 14:38:56 +08:00
    你是一个大四学生, 打算找工作呢, 你想寻找一份 Pascal 语言的工作, 请问你投简历的方向是?
    akira
        24
    akira  
       2023-09-29 14:39:55 +08:00
    啥都能做,啥都做不好。。。。
    iminto
        25
    iminto  
       2023-09-29 14:41:00 +08:00 via Android   ❤️ 1
    @ck65
    Delphi 不是语言,pascal 才是语言。

    现在有个 fred pascal ,搭配 lazarus ,全平台免费开源,并且兼容 Delphi 开发。
    idragonet
        26
    idragonet  
       2023-09-29 14:43:54 +08:00
    delphi 都是收费 IDE,而且不能跨平台。
    julyclyde
        27
    julyclyde  
       2023-09-29 14:47:26 +08:00
    感觉你说的“都没有对手”的几个领域里(除了 GUI )好像都从来没有出现过 pascal 啊?
    iminto
        28
    iminto  
       2023-09-29 14:48:48 +08:00 via Android
    虽然 Delphi 商业开发要收费,但是 有 Lazarus 这个开源免费的替代方案。

    Pascal 和 basic 都是在当时比较先进的语言,然而语法没有跟上时代的发展,也没有跟上互联网的发展方向。

    Pascal 和 basic 现在都有一批拥趸,不过用的是 free basic 和 free pascal ,不过也只能作为兴趣来学习了。

    另外,楼主可能不知道,Delphi 做网站开发,我记得就是用的 Delphi 做界面,然后搭伙 php 做后台逻辑,走了步臭棋。。。
    msg7086
        29
    msg7086  
       2023-09-29 16:16:35 +08:00
    说得好像现在 Pascal 还有很多人会写一样。我上次写 Pascal 怕是二十多年前了(望天
    hhhsuan
        30
    hhhsuan  
       2023-09-29 16:16:42 +08:00 via Android
    Delphi 原来还活着啊
    smallthing
        31
    smallthing  
       2023-09-29 17:06:27 +08:00   ❤️ 1
    @terence4444 对 宝蓝的关键人员流失到了微软搞了 C# 前些年又搞了 TYPESCRIPT
    你还能有什么话说
    qcbf111
        32
    qcbf111  
       2023-09-29 17:28:33 +08:00
    @flyqie 也不全是,而且就目前而言 lua 也只是只占一部分,现在大部分已经开始转向 puerts 或者 c#本身作为脚本解析的了。而 c#可是作为渲染管线的控制代码。
    qcbf111
        33
    qcbf111  
       2023-09-29 17:31:59 +08:00
    @MAGA2022 JS 无法做中大型游戏,再简单点说例如原神肯定无法用纯 js 来做。本身 cocos 等一系列+js 的引擎是唯一主流开发小游戏的,但是目前 unity 也能很方便的开发小游戏而且也有成功案例了,所以综合比较 依然不如 c#万能。
    asuraa
        34
    asuraa  
       2023-09-29 17:39:53 +08:00
    各种 gui 框架我是都玩过, 不考虑协议 侵权 正版什么的 静态编译的 qt 是最舒服的....
    0TSH60F7J2rVkg8t
        35
    0TSH60F7J2rVkg8t  
       2023-09-29 18:15:15 +08:00
    @terence4444 并没有停滞呢。以前叫 Delphi ,现在叫 Embarcadero RAD Studio 。而且语言特性也一直在更新中。只不过真的用的人少了,比不上流行语言那么应用广泛。Delphi 除了不能写驱动(也有支持驱动的方案,但不如 C 好用)之外,所有的开发都支持,可以在一套代码下开发支持 Windows, Linux, MacOS, Android, iOS 全平台的应用。
    pusheax
        36
    pusheax  
       2023-09-29 18:44:36 +08:00   ❤️ 1
    10 年前,pascal 是 NOIP 的指定语言之一,现在这比赛都快凉了
    nothingistrue
        37
    nothingistrue  
       2023-09-29 18:52:21 +08:00
    当初选修 Delphi ,开篇几十句话,句句都在说 Delphi 很牛逼,第二次就没在去上过课。

    人要作为牛逼的人去使用一门普通的开发语言,人不该作为普通的人去崇拜一门牛逼的开发语言。
    SekiBetu
        38
    SekiBetu  
       2023-09-29 19:03:20 +08:00
    因为没有资本和大公司投资,就凉了,你看现在开源的语言哪个没有大公司投资当背后操纵手的?
    xiangyuecn
        39
    xiangyuecn  
       2023-09-29 19:08:23 +08:00
    祖传开发手艺
    foxkiller
        40
    foxkiller  
       2023-09-29 19:20:07 +08:00
    20 年前 NOIP 用 Pascal ,不过到高中 NOI 的阶段就改 C 了
    admirez
        41
    admirez  
       2023-09-29 19:34:52 +08:00   ❤️ 2
    我就靠着 delphi 活到现在
    flyqie
        42
    flyqie  
       2023-09-29 19:44:42 +08:00   ❤️ 1
    @qcbf111 #32

    实际上 unity 游戏厂商最早就是用的纯 c#,后来才加上的 lua 。。。

    放弃用 c#写全部业务代码主要还是它不方便热更,以前 mono 时期就有一堆方案(但好像都不是特别优雅),现在大家都上 il2cpp 了更是麻烦。

    不太清楚跟强类型有没有关系,但个人觉得应该也有点这块的原因,而且 lua 入门难度还是比 c#要低的,真需要啥用 c#写完传 wrap 进 lua 也是一个比较好用的方法(况且现在 tolua/xlua 什么的方案都支持 lua 层调 c#层、c#层调 lua 层 )。

    至于大部分转到 c#,方便举出一些例子吗,我这边好像很少看到有新游戏这么搞(PC 端单独带启动器的不算)。
    qcbf111
        43
    qcbf111  
       2023-09-29 19:48:47 +08:00
    @flyqie 具体例子我还没,我只是感觉我加的 xlua 等等群越来越冷清了,ilruntime 和 hybridclr 的群越来越热闹,而我旁边两家正在研发中的公司产品也没有使用 lua ,改用 hybridclr 了
    flyqie
        44
    flyqie  
       2023-09-29 20:04:09 +08:00
    @qcbf111 #43

    ilruntime 和 hybridclr ,貌似确实比之前热闹了。

    看了下 hybridclr 这边写的少前 2 项目,好像还是用到了 xlua ,不知道是不是个例。

    挺好奇最后会有多少厂商用像少前 2 这样的架构,lua 层和 c#层双持分别做热更。
    james122333
        45
    james122333  
       2023-09-29 20:53:15 +08:00 via Android
    当初发现 free pascal 也觉得这东西很有意思
    package 也不算太少
    https://www.freepascal.org/daily/packages/index.html
    只是有段时间没更了 上次记得 QT4 貌似可用
    qiumaoyuan
        46
    qiumaoyuan  
       2023-09-29 20:53:17 +08:00
    严谨、简单、没对手、比得上、开发效率、做 web 强、轮子数量和质量。

    罗列了一大堆,哪怕就其中一个详细说说,我也不会认为你其实都不知道自己在说啥。
    qiumaoyuan
        47
    qiumaoyuan  
       2023-09-29 20:54:30 +08:00
    有趣的是,楼主明明啥都没说,下面跟帖也能写上一堆。空对空,是咱们这行业的传统啊。
    james122333
        48
    james122333  
       2023-09-29 21:09:17 +08:00 via Android
    @qiumaoyuan
    这倒不至于 例如 free pascal 有很多开源的包它有 binding 这些包在类 unix 上出现频率高 不同于其它语言搞自己的 这作法其实大有可为
    james122333
        49
    james122333  
       2023-09-29 21:20:36 +08:00 via Android
    整的好其实就会是 python 的竞品 一些语言其实也是这方向 常用 library 都有调用包
    James369
        50
    James369  
       2023-09-29 22:12:15 +08:00
    @luodaoyi 也想尝试一下,用 qt 的时候应该用 widget 还是 qml 呢
    idragonet
        51
    idragonet  
       2023-09-29 22:57:20 +08:00
    @admirez #41 维护老项目吧。 我的代码入门就是 DELPHI 7 .....只是后来转 C#了。
    anzu
        52
    anzu  
       2023-09-29 23:22:52 +08:00
    想起以前公司找一群培训班的学生进来写 Delphi ,全部用的盗版 RAD Studio ,好像后来被发现用盗版,被迫交了不少钱。
    jhdxr
        53
    jhdxr  
       2023-09-29 23:25:46 +08:00   ❤️ 1
    很多很多年前写过 pascal ,现在回过头看感觉是最繁琐的语言。。。
    Daming
        54
    Daming  
       2023-09-30 09:22:12 +08:00
    C# 都已经被归类成其他了,更别说这两位了。
    yyyyyyyhb
        55
    yyyyyyyhb  
       2023-09-30 13:28:20 +08:00
    @ppokyou #4 有毒,强到可以干死别人
    asuraa
        56
    asuraa  
       2023-09-30 13:28:41 +08:00
    @James369 简单界面就 weidget 复杂界面直接 qml
    weeei
        57
    weeei  
       2023-09-30 17:05:25 +08:00
    开发操作系统的商业公司他们提供的 IDE 用什么语言,开发者就用什么:
    微软 Windows:C#,C++
    Apple 的 macOS 和 iOS:Swift
    Google 的 Android:Dart ,Konlin
    自由的 Linux 发行版们:Go ( Google ),Java (甲骨文)
    流行的背后都需要有大佬的鼎力支持
    kneo
        58
    kneo  
       2023-09-30 17:30:24 +08:00 via Android
    语法啰嗦,原罪。
    没有对手,说笑。
    zjsxwc
        59
    zjsxwc  
       2023-10-01 08:03:53 +08:00 via Android
    开源的 IDE Lazarus 不够智能,没有 jb 家、甚至连 netbeans 都不如。

    语法太啰嗦,然后 IDE 不智能,就很累。

    自动内存管理完全依赖 vcl 对象的拥有者关系机制( https://wiki.lazarus.freepascal.org/Memory_Management#Ownership_Model ),如果不用 vcl ,自己手动管理内存太累(比如无脑写 try...finally 在 finally 里写一堆释放内存的代码),但还是会有手动的需求。

    包管理机制太落后,不如 rust cargo 。

    没有 协程,async await 等轻量用户态线程。
    realpg
        60
    realpg  
       2023-10-04 23:13:00 +08:00
    我儿子在 1 周岁全球拳击巡回赛里完全没有对手
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2602 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:49 · PVG 18:49 · LAX 02:49 · JFK 05:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.