PLT 板


LINE

看板 PLT  RSS
※ 引述《PsMonkey (痞子军团团长)》之铭言: : 这个问题其实困扰我很久... : 反正这个版开了,就先站上来当标靶 : 各位请随意炮轰... [茶] 那我就随便说说,充当贺板。 其实一般的程式语言论战,往往都是在说,某某状况时 a 比 b 更好用, 另一方就反击说这个状况可以避免、不常见、不好学、不够快、不自由、 不怎样怎样... 等等。 这种论战所呈现的,并不是理论层次上的比较,而是偏向程式语言特性的 比较,是不同的程式语言阵营在相互叫阵。 就长期而言,愈复杂的程式语言,若没有设计失当,最终会获得胜利,而 较简单的程式语言则会保有一定的最佳应用范围,能存活但会逐渐失势。 ASM vs. C, C vs. C++ 都是这个状况。至於 C++ vs. Java 则是双方都 还在增加复杂度,不过看来 Java 是加码得比较快,颇有胜利机会。 但在这个演化过程中,若一个新程式语言突然过度加大复杂性,则可能会 出现一个中间性的语言,因为较容易学习的关系,而取代这个大家没办法 快速适应的语言,像是 Algol-68, PL/1, Ada 都是这样失败的。 原因很简单,就是人们持续不断但速度缓慢的学习的结果。 不过,抛开这种人类自身的学习因素,就理论而言,程式语言并不是这麽 比较的。 以理论来说,程式语言之间的比较,大概就是三样: 1. 程式语言的资讯控制处理能力 通常非通用程式语言的资讯控制能力会弱於通用程式语言,而处理能力却 不会高於通用程式语言辅以程式库,这就是通用程式语言之所以是通用的 程式语言的原因。 这在处理多媒体档案格式时会相当明显,不能单靠内建语言机制和标准的 程式库就能处理非内建支援的多媒体档案的时候,大概就可以区别非通用 程式语言了。 2. 程式语言所提供的抽象化机制 抽象化是相当难说明的东西,用比较简单的话来说,能够不依靠记忆体的 资讯、不依靠特定识别字就能做出相应变化的程度,就是抽象化的程度。 型别处理是其中最主要的抽象化机制,因此有许多的程式语言理论,都在 讨论型别的问题,像 C 有型别系统,却没有抽象型别,所以抽象化能力 就比不上 C++. C++ 在这方面的优势,可说是主流的通用程式语言中最为强大的,它可以 支援 template metaprogramming, generative programming 之类的高阶 程式设计方法,至於 Java 在这方面就显得苍白无力。 3. 程式语言所特设的自动化机制 这是最容易被误解的事情,例如 GC 是程式语言有没有内建支援的问题, 不是程式语言的自动化机制差异,例如 C++ 如果需要 GC 的话,就可以 使用 libgc 程式库,或是自行实作也不会很难。 像是例外处理 (exception handling), object destructor 才是这类的 自动化机制,若程式语言不提供的话,就很难自行实作。 这种程式语言的比较,是比较理论意义上的程式语言能力的比较。但未必 能力比较强的程式语言,就一定在使用上比较「好」,否则新的程式语言 免不了就会比较强,像是 Objective Caml, Scala 这类的新程式语言, 在程式语言能力上显然比 C++, Java 来得强,若不考虑编译程式问题, 甚至像 Python, Ruby 也比 C++ 强,但到目前为止,都未必足够实用。 而若要论实用性,及考虑学习的因素,在程式语言的能力之外,最重要的 关键则可能是 C 语法相容性,无论过去或可预见的未来,不能与 C 语法 相容的程式语言,就没有机会成为主流程式语言,或是被 C 语法的相似 程式语言取代。 : 先把「语言」的范围排除像 HTML, XML 那种描述性语言 : 也跳过 SQL 这种... 我不知道怎麽归类的语言 : 然後,为了简单起见,也跳过 web 开发语言 : (像 JSP、PHP、JavaScript、ActionScript) : 就只讲最传统定义的语言 应该讲通用程式语言 (general purpose programming language), 专指可 广泛应用於所有程式设计需求的程式语言。 我写的很浮泛,但本来许多主流程式语言之间的差别就没有那麽大,若是 硬要比较差不多的程式语言,例如 C++ 和 Java, 我想只是个人偏好问题 比较多,根本就吵不完。 效率争论也是,那根本就是一翻两瞪眼的明白事情,就老是有人会想要用 哪种程式语言比较容易写得好,造成效率如何如何来争论。简直是把专业 软体工程师当成菜鸟、小白来比较。 像 GC 重不重要,跟它是否变成程式语言内建的功能,相关性并不大,那 主要是程式语言的设计哲学和使用者偏好问题,搞得像是天大地大的问题 一样,实在没有意义。 至於 godfat 所提及的 D 语言问题,它先把规格好好稳定下来再说吧。 还有它的编译程式一直不能支援 64-bit 系统,像我的主机是 AMD64 的 FreeBSD, 就没办法使用,这种状况就不必谈它是什麽样的语言了。 -- ※ 编辑: reader 来自: 61.222.173.26 (02/23 18:33)
1F:推 PsMonkey:好个贺版文... 推...(不过有些不太同意就是了 [逃]) 02/23 19:38
2F:推 godfat::D 02/23 20:43







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP