V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
weiqk
V2EX  ›  程序员

为什么没人讨论 Delphi 和 Pascal

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

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

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

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

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

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

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

    另外 delphi 以前不是完全开源的吧我记得,这个应该也是使用顾虑之一。
    qcbf111
        9
    qcbf111  
       211 天前   ❤️ 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  
       211 天前 via iPhone
    没有人生来就喜欢万能语言。声称“某某语言无所不能”的人,一般都先是某一种语言的拥护者,而这个语言肯定先要在某一特定领域有所成就并能维持住地位(注意这个“维持地位”哦),下一步才能有更大的野望,即成为万能语言。
    那么问题来了,你说的这两种,在什么地方是有所成就并维持住地位了的呢?光靠一个啥都能做,可不能成为他流行的理由
    sakura6264
        11
    sakura6264  
       211 天前   ❤️ 1
    pascal 变量必须写前面这点挺难受的..
    flyqie
        12
    flyqie  
       211 天前 via Android
    @qcbf111 #9

    游戏行业还大量用 lua 。。

    很多游戏实际上业务逻辑都是 lua 做,c#初始化游戏传 wrap 然后拉起 lua 。
    iorilu
        13
    iorilu  
       211 天前 via Android
    delphi 当年也就主要做点简单 gui 工具把

    按理是有点价值的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    罗列了一大堆,哪怕就其中一个详细说说,我也不会认为你其实都不知道自己在说啥。
    qiumaoyuan
        47
    qiumaoyuan  
       211 天前
    有趣的是,楼主明明啥都没说,下面跟帖也能写上一堆。空对空,是咱们这行业的传统啊。
    james122333
        48
    james122333  
       211 天前 via Android
    @qiumaoyuan
    这倒不至于 例如 free pascal 有很多开源的包它有 binding 这些包在类 unix 上出现频率高 不同于其它语言搞自己的 这作法其实大有可为
    james122333
        49
    james122333  
       211 天前 via Android
    整的好其实就会是 python 的竞品 一些语言其实也是这方向 常用 library 都有调用包
    James369
        50
    James369  
       210 天前
    @luodaoyi 也想尝试一下,用 qt 的时候应该用 widget 还是 qml 呢
    idragonet
        51
    idragonet  
       210 天前
    @admirez #41 维护老项目吧。 我的代码入门就是 DELPHI 7 .....只是后来转 C#了。
    anzu
        52
    anzu  
       210 天前
    想起以前公司找一群培训班的学生进来写 Delphi ,全部用的盗版 RAD Studio ,好像后来被发现用盗版,被迫交了不少钱。
    jhdxr
        53
    jhdxr  
       210 天前   ❤️ 1
    很多很多年前写过 pascal ,现在回过头看感觉是最繁琐的语言。。。
    Daming
        54
    Daming  
       210 天前
    C# 都已经被归类成其他了,更别说这两位了。
    yyyyyyyhb
        55
    yyyyyyyhb  
       210 天前
    @ppokyou #4 有毒,强到可以干死别人
    asuraa
        56
    asuraa  
       210 天前
    @James369 简单界面就 weidget 复杂界面直接 qml
    weeei
        57
    weeei  
       210 天前
    开发操作系统的商业公司他们提供的 IDE 用什么语言,开发者就用什么:
    微软 Windows:C#,C++
    Apple 的 macOS 和 iOS:Swift
    Google 的 Android:Dart ,Konlin
    自由的 Linux 发行版们:Go ( Google ),Java (甲骨文)
    流行的背后都需要有大佬的鼎力支持
    kneo
        58
    kneo  
       210 天前 via Android
    语法啰嗦,原罪。
    没有对手,说笑。
    zjsxwc
        59
    zjsxwc  
       209 天前 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  
       205 天前
    我儿子在 1 周岁全球拳击巡回赛里完全没有对手
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2956 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 158ms · UTC 13:24 · PVG 21:24 · LAX 06:24 · JFK 09:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.