论坛首页 入门技术论坛

个人喜好:php ruby and java

浏览 17039 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-10-22  
我这里用实际例子说话,希望程序代码不会吓退各位观众。
功能要求:读取当前目录下所有txt文件的内容并显示
php:
foreach(glob("*.txt") as $f) {print file_get_contents($f);}

ruby:
Dir["*.txt"].each {|f| puts File.open(f).read}

两者都简洁漂亮,干净利索。并且可以看出,ruby使用OO的语法,依然保持了简洁的风格(和java冗长的风格形成鲜明对比,而最新的php5不幸的感染了java的坏毛病,其类名关键字等等复杂臃肿)。

当初没选择java,就是因为java向我"问好"的时候,把我吓住了:
java:
public class Hello{
  public static void main(String []argc){
      System.out.println("Hello Word!");
 }
} 


很难设想"public static void main String"这样的东西是给人读的(分明是给机器读的嘛)
“长的丑不是你的错,出来吓人就是你的不对了。”这句话可以用来描述我心目中Java的模样。

我对java不熟悉,不敢继续批判。哪个javaFans要是愿意,给大家一个类似实现看看,也让我学习学习,如何用java来处理上面的类似功能:)

你也可以把java代码写成一行,然后我们来比比谁的代码短.

所以我现在感觉ruby真是棒极了。不过,实际中依然在用PHP。所以虽然ruby很美妙,但。。。耐心等待吧
   发表时间:2006-10-22  
帮我写一个二分法排序算法吧。
0 请登录后投票
   发表时间:2006-10-22  
楼主。 你那个“Hello world!”打错了吧。。打成“hello word!”可不好。。。

本来java就是要解决代码不规范问题。。
你写成一行看着是短,简洁。自己看着乐了。。
等你写一个大项目。。然后丢给后一个接手的时候。。。
天知道看到那一团东西会作何感想。。。

熟练的java程序员在看那一大坨东西的时候。。
他也不会逐字逐句的去研究每一个“public static void mian string”

他只不过就是扫过p s v m等熟悉的不能再熟悉的字头。。。
扫过System.out.println("
把注意力集中到Hello World 上去。。

选择ruby的原因绝不是因为java需要打太多的字。。。

个人意见php是挺可怕的。虽然有些时候方便。
ruby的话。。它对于java程序员实际上是非常友好的。。
如果有脚本编程的经验。那么还是比较容易学习的。。

学习语言的目的在于提高生产效率。。。
比比谁的代码短这种孩子气的想法挺无聊的。

其实我觉得。java的多样化有时候让人觉得有点过了。
重复造轮子的问题。寻找好轮子的问题。如何把好轮子装上车
的问题烦都要烦死了。。

快速开发成熟应用。不妨也来RoR一把。。
0 请登录后投票
   发表时间:2006-10-22  
汗,真的错了。是world不是word
但有意思的是,java那段演示代码是我在网上搜索然后copy过来的,因为我记不住它们(绝对不是因为我记性差 )。。。
来源:http://bbs.it.com.cn/ShowPost.aspx?ForumID=75&TopicID=55185
0 请登录后投票
   发表时间:2006-10-22  
另外,实际情况是,我没选择Java就是因为java需要打太多的字。
0 请登录后投票
   发表时间:2006-10-22  
中文早上问好:早.
英文早上问好:morning.
日语早上问好:おはよう

读起来中文最短.所以我最喜欢中文
俺也是PHP粉丝.只是现在时间所限,暂时没功夫学ruby啊~~~~
0 请登录后投票
   发表时间:2006-10-22  
Godlikeme 写道
帮我写一个二分法排序算法吧。
怎么没人回应?
0 请登录后投票
   发表时间:2006-10-22  
Godlikeme 写道
Godlikeme 写道
帮我写一个二分法排序算法吧。
怎么没人回应?

class Binary_Search {
    public int binary_search(int[] a, int n, int v)
	{
		int low, high, mid;
		low = 0;
		high = n - 1;
		while (low <= high) {
		    mid = (low + high) / 2;
			if (v < a[mid]) {
			    high = mid - 1;
			} else if (v > a[mid]) {
			    low = mid + 1;
			} else {
				return mid;
			}
		}
		return -1;
	}
}

int binary_search(int a[], int n, int v)
{
    int low, high, mid;
    low = 0;
    high = n - 1;
    while (low <= high) {
        mid = (low + high) / 2;
        if (v < a[mid]) {
            high = mid - 1;
        } else if (v > a[mid]) {
            low = mid + 1;
        } else {
            return mid;
        }
    }
    return -1;
}

function binary_search(array $a, $v)
{
    $n = count($a);
    $v = intval($v);
    $low = 0;
    $high = $n - 1;
    while ($low <= $high) {
        $mid = intval(($low + $high) / 2);
        if ($v < $a[$mid]) {
            $high = $mid - 1;
        } else if ($v > $a[$mid]) {
            $low = $mid + 1;
        } else {
            return $mid;
        }
    }
    return -1;
}
0 请登录后投票
   发表时间:2006-10-22  
这个。。。是二分法查找。。。
我说的是二分法排序:S
不过也可以说明点问题。
0 请登录后投票
   发表时间:2006-10-22  
在来个binary_tree_traverse怎么样,
0 请登录后投票
论坛首页 入门技术版

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