作者PsMonkey (痞子军团团长)
看板PLT
标题何谓「好的」程式语言
时间Thu Feb 22 12:57:21 2007
这个问题其实困扰我很久...
反正这个版开了,就先站上来当标靶
各位请随意炮轰... [茶]
先把「语言」的范围排除像 HTML, XML 那种描述性语言
也跳过 SQL 这种... 我不知道怎麽归类的语言
然後,为了简单起见,也跳过 web 开发语言
(像 JSP、PHP、JavaScript、ActionScript)
就只讲最传统定义的语言
诚如各位所知,我是写 Java 的
事实上,几乎也算「只会 Java」
所以会以 Java 为出发点,然後在推销 Java 的时候受到一些反弹
从这来讲,可能会比较... 不会出错
(咪的... 到底要不要进入主题阿... [踹])
面对 C 家族的狂热分子
Java 典型被批判的就是「没有指标」
或着应该说「没有办法直接用指标」
甚至有人用「全梭了」的肯定语气跟我说
「没有指标很难写程式」
我是不敢怀疑他是不是偷鸡 囧>
也没有掀他底牌来看(他也不让我看就是了)
不过... 不碰硬体控制之类的,我也没遇到什麽「很难写程式」的部份
但是,对我来说,没有指标的世界真是美好阿... [茶]
(更不用说要看什麽「指标的指标」这种残害智商的东西)
而 Java 的书,尤其是早期推广时代的书
都会把「没有指标」这件事情当作是一个大优点
夹在两造双方之间,其实就平民小卒来说,还挺困扰的
同样的事情也发生在 gc、效率等等问题上
我写 Quick Basic 起家的,然後可以说接着就跳 Java 了
面对 C 得靠 malloc() 才能做到「执行期间决定阵列大小」
还得自己去控制位置... 然後最後还要自己释放空间
对我这种笨蛋而言... 唉... [远目]
(虽然说 C++ 也有 Vector 之类的东西...)
有人跟我说,这样子效率比较好
gc 是很消耗 resource 的行为
恩... 想想也是...
那麽,是要赌自己控制 resouce 会比较好
还是期望语言本身提供 gc 的演算法可以达到「可接受」的范围?
因为我是笨蛋,而且我相信开发 JVM 的人比我聪明百倍...
但是,又有人跟我讲
Java 没办法处理很大量资料的状况
所以他虽然是从 Java 起家的,不过後来还是乖乖写 C
(他好像是作即时影像处理的,然後随便就是几百MB 的资料在记忆体当中)
hmmm... 还没写过那种恐怖的东西... 很难想像
但是 Java 真的作不到吗? 好像也很难想像...
也许作起来要花很多功夫?
但是... 能不能把这个状况当作是极端状况来对待?
我的意思是... 毕竟一般人写一般程式
用 Java 好像很快乐也不容易出大纰漏?
我们毕竟会常常需要用到动态决定大小的阵列
而很少要处理很大量很大量的资料?
写到这里,似乎就能预料有神人级的人会跳出来说
「语言只不过是工具,视状况而决定工具
所以讨论工具好坏是没有意义的」
这样讲好像很对,但是又好像很不对
毕竟,像我这种笨蛋... 连 Java 都写的不是很好了
要视状况在工具之间跳来跳去,似乎有摔死的可能 Orz
(当然,现实状况是... 环境逼着你跳,你不得不跳)
又反过来说,面对另外一群人
他们会 argue Java 不够快 or 不够简单
像 Perl 的使用者会觉得 Java 宣告起来很麻烦、字串处理很麻烦
Ruby 的使用者会说 Java 写起来不够快
(恩... 不过看到的好像大部分是针对 Web 开发的部份?)
另外一个... 囧点...
是好像很少人会把 C 家族跟 Perl, Ruby 来作对比
(至少 PTT 的讨论版很少看到)
但是 Java 会拿来跟 C 家族来比较,也会被拿来跟 Ruby 来比较
好了,就先扯到这边
====
这个问题的切入点,以我浅薄的知识也想得出一些
不过一开始还是先随意吧... 这样子标靶比较大一点... [茶]
所以上头就写的很松散... XD
反正收敛焦点 & 收是版主要烦恼的... [逃]
--
侃侃长论鲜窒碍 首页:
http://www.psmonkey.idv.tw
众目睽睽无心颤 Blog:
http://ps-think.blogspot.com
茕居少聊常人事
杀头容易告白难 欢迎参观 Java 版(@ptt.cc) \囧/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.195.92
1F:推 ephesians:我是写LISP的,不仅没有指标,连资料型态都没几个呢 XD 02/22 17:06