论坛首页 Java企业应用论坛

Scala拾趣--从Java7说开来

浏览 25566 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-05-13  
Java应该保持简洁~~
0 请登录后投票
   发表时间:2008-05-13  
对其他语言了解不多,只熟悉点Java和Ruby.对于Java这个规范语言来说,我的感觉就是这些特性让Java变得越来越乱.大概看了一下Defining a BeanProperty,整体感觉既不像Java又不像Ruby,有点不伦不类,这种结合使得没了Java的严谨和Ruby的简洁,总体感觉就是乱.
0 请登录后投票
   发表时间:2008-05-13  
同意,太灵活了,反而会使学习成本加大,看别人的代码会更难理解
一行搞定一个功能看起来不错,可以让别人看你写的代码就麻烦了
0 请登录后投票
   发表时间:2008-05-13  
hax 写道


用Factory和Builder能提供灵活性,比如使用其他的XML DOM实现。M$的习惯一向是只此一家,别无分店,所以直接new就可以了。当然,我也认为java的XML可以简化,但是这不是什么大不了的问题。

XPath那个你冤枉Java了。Java的API是遵循W3C DOM Level 3 XPath的。如果你要骂,应该骂W3C去,嘿嘿。还有,骂之前请注意了,W3C的API允许对XPath表达式进行重用(当然也可以不重用),而MS的selectNodes方法虽然方便,但是没法重用XPath。还有返回值上的类型有限定。XPath其实可以返回并非节点和节点集类型的。所以MS的API是不严谨的。


你得承认,对于大部分状况下,MS的方案更简单,更容易。
拿XmlDocument来说,如果真有替换XML DOM API的必要性,Microsoft也会采用别的方案来实现更换XML dom,可能比如更换DomProvider(在MS的DataReader中就是如此)。

此外就拿XmlDocument的Load动作来说。

doc.Load("http://www.w3c.org/some.xml");
doc.Load("C:\W3C\some.xml");
doc.Load("\\w3c\\some.xml");

Microsoft接替了java程序员大部分的工作,使得程序员可以专注于当前的问题(要加载某一个xml文件),而不需要象Java一样,还要关注要如何加载。。。

我的重点不是在于它的烦琐,而是在于,Sun缺乏一种更简单,更明白的表达方式,这导致的Sun的语法象绕口令,而MS的语法则接近自然语言。另外Microsoft淘汰SAX,而采用Pull的方式,也是出于直观的考虑。

这典型的就是java.io包,这里头的烦琐到接近委琐的状态。

0 请登录后投票
   发表时间:2008-05-13  
这典型的就是java.io包,这里头的烦琐到接近委琐的状态

==============
同意这句话。
0 请登录后投票
   发表时间:2008-05-13  
avaj 写道
这典型的就是java.io包,这里头的烦琐到接近委琐的状态

==============
同意这句话。


保留意见

我觉得Java很多API从设计上来说还是蛮不错的。
比如IO,Swing etc.
给使用者提供了很大的灵活性。
但使用起来确实不那么方便,也容易把新手搞晕~

M$的东西偏向与傻瓜式,上手容易。
但灵活性估计就没那么好了,一切都在M$的掌控中,你只能跟着他转。
0 请登录后投票
   发表时间:2008-05-13  
Eastsun 写道
avaj 写道
这典型的就是java.io包,这里头的烦琐到接近委琐的状态

==============
同意这句话。


保留意见

我觉得Java很多API从设计上来说还是蛮不错的。
比如IO,Swing etc.
给使用者提供了很大的灵活性。
但使用起来确实不那么方便,也容易把新手搞晕~

M$的东西偏向与傻瓜式,上手容易。
但灵活性估计就没那么好了,一切都在M$的掌控中,你只能跟着他转。


Java.io的复杂在thinking in java中有颇有诟病。

灵活性必须要在用必要的方面。比如对Micirosoft提供Data Provider的灵活性。至于替换一个XML dom,则大大值得考虑。

我从来没觉得Microsoft的东西是傻瓜式,这种所谓的傻瓜式只是对初级程序员而言,(当然大部分从业者都是初级程序员吧?),牛人照样能写出I4O(Indexed Linq)这样的东西。从某种意义上,Microsoft推出Linq to Collection这种东西,使得C#更接近自然语言。
0 请登录后投票
   发表时间:2008-06-16  
Eastsun 写道
ray_linn 写道
总的看来,Java 7将是C# 3.5的一次大抄袭而已。


说起“抄袭”,谁抄谁还不好说。
C#整个语言不就是模仿Java的么?
现在这些特性还只是提议而已,最终会不会加到Java7中去还未有分晓。
除了闭包我不是太肯定需不需要加入到Java7中去,其他的特性我觉得还是不要加的为好。
保持Java的简洁优雅比加入那些乌七八糟的特性更重要,我以为。


我觉得提议都不该,提议的人多了,sun公司头脑一发热就加进去了
应该向c学习,几十年不变
要么就学习python,勇敢的破坏向后兼容
0 请登录后投票
   发表时间:2008-06-16  
泡 泡 写道
icanfly 写道
Eastsun 写道
问题是如果需要兼容,就不太可能实现的很优雅
譬如JAVA5中的泛型。。。和鸡肋差不多。
以及将要加入的闭包,其实现方式也够呛。
这种打补丁式的改进总不会太完美。

PS:弄一个JAVA3000出来也不错,抛弃向后兼容性。

我同意,JAVA顾虑得太多,应该学学Python,要使用旧JAVA语法的用JAVA旧的版本,要使用新的语法可以用新的版本,这样不但JAVA类库中有些“鸡肋”可以踢除,本身语言简洁性也得到提高!希望JAVA语言的开发工程师们不要老停留在要兼顾以前版本的陈旧思想里了!

那么庞大的开源类库,谁去转成新版本,不向下兼容导致的问题更多


开源类库有很多是半死不活的, 如果没有人维护, 即使java保持兼容性, 这些类库最终也是会被用户抛弃
如果用的人多, 自然有人会转过来
python3000在python社区里面并没有引起多大的反对声音

java并没有兼容c和c++, 不照样是流行起来了
兼容性根本不是问题
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics