作者adrianshum (Alien)
看板java
标题程式语言文法简化 (was: [问题] 从文字档读取演算法)
时间Fri Aug 21 12:00:42 2009
: 推 Schelfaniel:Java 规定就是这样,不想写 public 就用 Scala 吧 08/20 11:36
: 推 PsMonkey:楼上拉票拉很大.... [误] 08/20 11:46
: → Schelfaniel:我是觉得语言本身就应该提供一些能省略的机制的, 像是 08/20 11:57
: → Schelfaniel:美国真多加拿大人 其实是 (在)美国(有)真多加拿大人 08/20 11:59
: 推 PsMonkey:嗯.. 持反对意见 XD 08/20 13:23
: → sbrhsieh:就这个问题而言,五楼提出的建议是本末倒置。 08/20 16:06
: 推 puzi:楼上认真了....XD 08/20 21:33
: → Schelfaniel:本末倒置嘛?如果我和你功力一样,少打个public就比较快 08/21 09:26
: 推 qrtt1:写程式又不是打字比赛,快慢意义不大。 08/21 09:29
: → Schelfaniel:好吧,反过来说好了 Java 的 default 出现率很低... 08/21 09:40
: → Schelfaniel:如果把 default 和 public 反过来 (default 要多打字) 08/21 09:42
: → Schelfaniel:这样整体程式一口气可以少掉一堆 public 看起来很简洁 08/21 09:43
: → Schelfaniel:至少我觉得让程式简洁一点也没什咩不对,当然你可以说 08/21 09:44
: → Schelfaniel:"Java这样比较习惯"或是"让新手知道要用public"之类的 08/21 09:46
: → Schelfaniel:如果要用Java,Java的规定就是要遵守,少打就是不行的 08/21 09:49
: 推 PsMonkey:请不要推文成章.... 08/21 11:20
对於这个观点, 我个人是中立立场 :P
有些情况下, 能少打也不失为一件好事,
但少打几个字简洁些并不一定都是好处.
有些情况下, 是真的要 programmer explicitly
确认自己真的要做某些东西, 就算这些东西是最
常见的也好.
比如 C# 在 override 的时候要加上 override
keyword (现在 java 也可以加 @Override 了,
不过相比之下 C# 的做法比较好), 虽然 99% 的情
况下, 你都是要override 的, 但万一有一次, 你
其实是想建一个新 method, 怎麽不小心和 super
class 的 method 同名了, compiler 就可以靠着
你少打这字提出 warning/error.
类似情况, 我在开发公司 framework 也有遇到, 有时
看来 "没声明" 的情况下, 给予某种 default 处理
好像很方便也理所当然, 但某些情况下的确会让程式
的可读性及可维护性变低. 有些情况下我还是觉得逼
developer 不断 explicitly 声明, 你不声明我就当
你不需要比较好
public 要 explicit, 某程度我觉得是由 C++
或其他 OOP 的做法带过来, 但当初别人决定 public
虽然是最常用但还是要 explicitly 声明, 很可能就
是因为他们觉得东西不该随意给其他人看到, 除非你
真的想给别人看. 万一有人是忘了给 accessibility
modifier 而不是故意不给的话, 那东西就不该给其他
人看到, 所以 C++ 是当成 private, Java 可能因为觉
package 内或 child class 的都是 "自家人" 所以把
accessibilty 局限在这.
当然, by default 是不是该让所有人看到你的 member,
这个可以商榷, 我要带出的是, 有时多打些字, 虽然写
来有点烦闷, 看起来又有点累赘, 但有时这些累赘也是
有他存在的价值的. :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
※ 编辑: adrianshum 来自: 202.155.236.82 (08/21 12:03)
1F:推 PsMonkey:这就是 Java 罗唆的好处阿... [握拳] 08/21 12:09
2F:推 PsMonkey:不罗唆的话,我就不写 Java 啦...... [泪奔] 08/21 12:09