锁定老帖子 主题:Scala拾趣--从Java7说开来
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-08
同意,弄一个JAVA3000出来也不错
|
|
返回顶楼 | |
发表时间:2008-05-08
呵呵,看到了很多c#的影子。。。。
还有,那个annotation,是java6里面出现的,是吗?是不是类似c#中的attribute啊。。。。 至于java的泛型,不能说泛型没用吧,泛型可是个好东西。只不过相对于c#中的实现来说,似乎java的实现不够好,主要是性能上不够强,好像 |
|
返回顶楼 | |
发表时间:2008-05-08
icanfly 写道 Eastsun 写道 问题是如果需要兼容,就不太可能实现的很优雅
譬如JAVA5中的泛型。。。和鸡肋差不多。 以及将要加入的闭包,其实现方式也够呛。 这种打补丁式的改进总不会太完美。 PS:弄一个JAVA3000出来也不错,抛弃向后兼容性。 我同意,JAVA顾虑得太多,应该学学Python,要使用旧JAVA语法的用JAVA旧的版本,要使用新的语法可以用新的版本,这样不但JAVA类库中有些“鸡肋”可以踢除,本身语言简洁性也得到提高!希望JAVA语言的开发工程师们不要老停留在要兼顾以前版本的陈旧思想里了! 那么庞大的开源类库,谁去转成新版本,不向下兼容导致的问题更多 |
|
返回顶楼 | |
发表时间:2008-05-08
Norther 写道 个人觉得property那部分,可以用annotation,比引入新的关键字和谐的多,可以在编译期做些手脚,根据annotation生成get,set方法,例如
class Student{ @Property //代表可以get 和set private String name; @Setter //代表可以set private Integer age; //省略get set方法 } 同时也可以对"="和"."符号做特殊处理,例如 student.information.content = "hahaha";//会编译成student.getInformation().setContent("hahaha"); student.age = 19;//会被编译成student.setAge(19); 如果这这样了 和直接把属性的访问级别放成public有什么不同? 如果要在set方法中对值进行过滤又如何实现。 典型的滥用annotation。 |
|
返回顶楼 | |
发表时间:2008-05-08
还是现有的好,一行代码的书写有什么好处呢!读起来就很费神。
代码规范,可读性强比它不好多了。 |
|
返回顶楼 | |
发表时间:2008-05-08
泡 泡 写道 那么庞大的开源类库,谁去转成新版本,不向下兼容导致的问题更多
这的确是个问题。 但应该可以通过渐进式的改变来解决这个问题: 发生变化时,先将它标记为Deprecated,并在第一个版本中兼容它,再下一个版本就把它丢弃。这样就有一个缓冲时间来修改了。 或者可以先保留class的二进制兼容,抛弃源代码级的兼容性。 |
|
返回顶楼 | |
发表时间:2008-05-08
python also deprecate some features occasionally.
|
|
返回顶楼 | |
发表时间:2008-05-08
俺是从C转JAVA的,现在又怀念C了,还是觉得语法简洁才是美
|
|
返回顶楼 | |
发表时间:2008-05-08
能不能先把无符号数加上?!
|
|
返回顶楼 | |
发表时间:2008-05-08
pancras 写道 Norther 写道 个人觉得property那部分,可以用annotation,比引入新的关键字和谐的多,可以在编译期做些手脚,根据annotation生成get,set方法,例如
class Student{ @Property //代表可以get 和set private String name; @Setter //代表可以set private Integer age; //省略get set方法 } 同时也可以对"="和"."符号做特殊处理,例如 student.information.content = "hahaha";//会编译成student.getInformation().setContent("hahaha"); student.age = 19;//会被编译成student.setAge(19); 如果这这样了 和直接把属性的访问级别放成public有什么不同? 如果要在set方法中对值进行过滤又如何实现。 典型的滥用annotation。 当然有不同,这个机制没有这么蠢,如果你提供了属性相应的set方法,它就不生成,就用你的,这也可以在set里进行过滤,只是在编译的时候做点手脚,对虚拟机没有影响,真是灰常灰常的简单和灵活。 另外我不明白这怎么算滥用了,就加入两个annotation,就叫滥用了?宁可引入关键字去滥用关键字?那什么不是滥用? |
|
返回顶楼 | |