选择简单

2 views
Skip to first unread message

li xiao

unread,
Jun 23, 2007, 5:47:13 AM6/23/07
to agile...@googlegroups.com
最近用jruby做个东西,想用ruby的win32/sound快速实现下播放音乐的功能,但是jruby不能运行系统平台相关的扩展包,
没办法,找java吧。

google一下,有Java Sound API,略微浏览乐下sun站点的E文,下乐个Demo包(http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo.zip) 回来,
打开一看,五脏俱全,一个简单的音乐文件播放器做的demo,可以运行的jar,readme以及源文件,

有我要的东西是肯定的乐,但是:一共8个源文件,131多kb的内容,
稍稍花乐大概1、2分钟,没找到我要的播放一个文件的代码,大概是我用EditPlus这种简单的文本编辑器的缘故,
唉,一阵郁闷,放下手头的事情来写下这篇感想。

对比是非常强烈的,因为之前我只花乐大概不到30秒钟看ruby win32/sound的例子就知道我需要的一共是三行代码:
require "win32/sound"
include Win32
Sound.play('c:\\windows\\media\\chimes.wav')

如果非要把安装它的一行gem install加上,也就4行。
当然,代码行数不是关键,那只是附带的好处而已,但是代码少确实是一击及中一目了然的。
关键是,读两个例子明白怎么使用它的时间和精力,

Sun似乎一贯的,有编写让人难以阅读的例子的传统,似乎它们的例子主要是给人显示下java能做什么,而不是帮助人们使用java做到那些事情的。
还有个例子是有关speech api的,mac上直接就有say命令,为了在windows上也能来一段话,又google乐一下,
Sun也提供这个方面的标准api,叫Java Speech API ,有一些厂商和开源项目实现它,
我从里面挑乐个开源的:freetts
还是下载回来看看demo先,
另外在下载过程中去看乐看这个工具的一些文档,它有写怎么和JSAPI集成并建议使用JSAPI,
这个项目是SUN的几个人(2个还是1个忘乐)做的,文档中建议使用JSAPI似乎也不为过,
打开下回来的zip,里面有包含freetts自己api的demo和JSAPI的demo,
我的心里早就嘀咕,JSAPI一定简单不了,打开一比较,果然,一个Hello World一共178行代码,
去掉注释估计也有130行,
而freetts自己api的代码,一共71行,去掉注释估计50来行,
不用说乐,当然是选择直接使用freetts api乐,简单嘛。

在ruby世界中,抛开其脚本语言特性不说,充斥着简单明了的例子,简单并不是说去繁就简,而是它本来就是那样简单,
一个api目的明确,直奔主题,用它解决大多数人的问题先。
灵活的配置和实现有些强人所难的功能?留给需要的人慢慢探索吧,
我只是需要播放个音频文件而已,没有特殊要求。
最终,在这里找到乐个简单的例子: http://www.jsresources.org/examples/SimpleAudioPlayer.java.html
一共200多行,去掉注释估计100多行总是有的,
相对于Sound.play这样一行解决问题来说,Java世界的这个Hello打得不简单。


--
Cleaning code that works

femto gary

unread,
Jun 23, 2007, 6:32:26 AM6/23/07
to agile...@googlegroups.com
sun就是一个挫人,
以把东西写复杂为乐..


--
Best Regards
XRuby http://xruby.com
femto http://hi.baidu.com/femto

Yiding He

unread,
Jun 23, 2007, 7:14:13 AM6/23/07
to agile...@googlegroups.com
管他多复杂,包装起来就行了。如果我只用 5% 的功能,那我就让这 5% 的功能一行就能调用。



在07-6-23,li xiao <swin...@gmail.com> 写道:
最近用jruby做个东西,想用ruby的win32/sound快速实现下播放音乐的功能,但是jruby不能运行系统平台相关的扩展包,
没办法,找java吧。

google一下,有Java Sound API,略微浏览乐下sun站点的E文,下乐个Demo包( http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo.zip) 回来,



--
                       致
礼!
                         yidi...@gmail.com

Michael Chen

unread,
Jun 23, 2007, 8:16:35 AM6/23/07
to agile...@googlegroups.com
ruby 之于 java
rails 之于 J2EE
Mac 之于 Linux
TextMate 之于 VIM/Emac

两者从用户的角度,比较的结果都是差不多的。

在上述两方的比较中,实现的复杂度几乎都是一样的。但如果将这种复杂度传递给用户,对用户而言,到底是福还是祸?当99%的对API的用法只有一种可能的时候,将庞大的架构接口、用法配置一股脑儿扔给用户,对用户而言到底是不是负责任?我们有很多更重要的事情要做,我们只想使用这个工具很快的完成我的工作,我们对产品的实现架构在目前一点兴趣也没有──当然你也要给我自由配置的可能──因此,上述的比较中,大多数人的都会选择左边。

题外话,又开始写.NET代码了。看着一个简单的功能轻易的产生出一大堆代码,感觉真是难受。


--
Michael Chen
--------------------------------
Blog: http://michael.nona.name
MSN: jzch...@hotmail.com

Robin Lu

unread,
Jun 23, 2007, 10:06:34 AM6/23/07
to agile...@googlegroups.com
SUN开发一个功能,常常要背负很重的包袱。SUN曾经的成功就是它的包袱,Solaris就是它的包袱。Overdesign就是这些包袱的后果。

在07-6-23,li xiao <swin...@gmail.com > 写道:
最近用jruby做个东西,想用ruby的win32/sound快速实现下播放音乐的功能,但是jruby不能运行系统平台相关的扩展包,

Jeff Xiong

unread,
Jun 23, 2007, 10:18:51 AM6/23/07
to agile...@googlegroups.com
借口。

Java的官方社区一直有一个很糟糕的官僚传统:先订出规范,哪怕这个规范并未得到有效的实践检验。一个典型的例子是XML处理的接口。除了坐在办公室里拍脑袋订规范,我想象不出有任何理由能说明为什么DOM接口会设计成这个样子。


--
Jeff Xiong
Software Journeyman - http://gigix.thoughtworkers.org
Open Source Contributor - http://rubyworks.rubyforge.org
Technical Evangelist - http://www.infoq.com/cn/

weihello

unread,
Jun 24, 2007, 3:30:49 AM6/24/07
to agile...@googlegroups.com
我想这里面有利益的协调。Corba就是个好例子,sun算做得不错了。 对于有
应用经验的人来说,sun的接口基本一用就灵。

在 07-6-23,Jeff Xiong<gigi...@gmail.com> 写道:


--
X斗米

fireflyc

unread,
Jul 5, 2007, 9:33:37 PM7/5/07
to 敏捷中国
唉,怎么说呢。有人就是喜欢狠狠的秀一把。更可气的是把一个demo写的那么的复杂。python的设计的一条基本原则就是把所有的api设计的让一个
新手很容易的一次记下,根本没有必要去查文档,简单才是硬道理。

On 6月23日, 下午5时47分, "li xiao" <swing1...@gmail.com> wrote:
> 最近用jruby做个东西,想用ruby的win32/sound快速实现下播放音乐的功能,但是jruby不能运行系统平台相关的扩展包,
> 没办法,找java吧。
>

> google一下,有Java Sound API,略微浏览乐下sun站点的E文,下乐个Demo包(http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo.z...来,


> 打开一看,五脏俱全,一个简单的音乐文件播放器做的demo,可以运行的jar,readme以及源文件,
>
> 有我要的东西是肯定的乐,但是:一共8个源文件,131多kb的内容,
> 稍稍花乐大概1、2分钟,没找到我要的播放一个文件的代码,大概是我用EditPlus这种简单的文本编辑器的缘故,
> 唉,一阵郁闷,放下手头的事情来写下这篇感想。
>
> 对比是非常强烈的,因为之前我只花乐大概不到30秒钟看ruby win32/sound的例子就知道我需要的一共是三行代码:
> require "win32/sound"
> include Win32
> Sound.play('c:\\windows\\media\\chimes.wav')
>
> 如果非要把安装它的一行gem install加上,也就4行。
> 当然,代码行数不是关键,那只是附带的好处而已,但是代码少确实是一击及中一目了然的。
> 关键是,读两个例子明白怎么使用它的时间和精力,
>
> Sun似乎一贯的,有编写让人难以阅读的例子的传统,似乎它们的例子主要是给人显示下java能做什么,而不是帮助人们使用java做到那些事情的。
> 还有个例子是有关speech api的,mac上直接就有say命令,为了在windows上也能来一段话,又google乐一下,

> Sun也提供这个方面的标准api,叫*Java Speech API* ,有一些厂商和开源项目实现它,

Reply all
Reply to author
Forward
0 new messages