码迷,mamicode.com
首页 > 编程语言 > 详细

我为什么就是觉得Ruby比Java更好呢

时间:2016-04-27 20:39:06      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

提出这个问题,其实是想对自己的思维方式有个客观的态度。

对于编程语言,以前我一直觉得,那些我没使用过的,听一些牛人提起过的语言是比较好的。

我曾经去面试过一家中意的公司的Java开发职位,没有面上,为此一直很遗憾。后来听说他们使用Ruby语言,心里一直暗暗猜测,Ruby应该要比Java好吧?要不然他们怎么会改用Ruby了呢。

有个程序员朋友,做了五六年C++开发,他在我眼里也是热爱学习,属于优秀的程序员一类。有一天他跟我说在自学Python,用C++写几百行也解决不了的问题,Python几行就解决了,还特别强调这是一门黑客使用的语言。我想,Python应该也是很好的语言吧,要不然黑客怎么会用?

为此,我使用Google搜索 "the worst python code",点开前三个结果。

一个是C#语言的例子,有人这样写

string currentTime = DateTime.Now.Year.ToString() +
    DateTime.Now.Month.ToString() + 
    DateTime.Now.Day.ToString() + 
    DateTime.Now.Hour.ToString() + 
    DateTime.Now.Minute.ToString() + 
    DateTime.Now.Second.ToString();

明明可以使用DateTime.Now.ToString()配合参数来获取需要的时间。

 

还有这样的

int min3(int a, int b, int c) {
   if (a < min(b,c)) {
      return a;
   }
   else if(b < min(a,c)) {
      return b;
   }
   else if(c < min(a,b)) {
      return c;
   }
}
int min4(int a, int b, int c, int d) {
   if (a < min3(b,c,d)) {
      return a;
   }
   else if(b < min3(a,c,d)) {
      return b;
   }
   else if(c < min3(a,b,d)) {
      return c;
   }
   else if(d < min3(a,b,c)) {
      return d;
   }
}

这样最糟糕的地方在于算法复杂度是O(N!) , 即使使用快速排序把所有数字排一遍,也只需要O(N*logN)的复杂度

 

这样的例子相信还有很多。 但这至少可以证明,无论高级还是低级编程语言,都能写出难看的代码。

进一步讲,语言只是一种工具,工具用得好不好,得看人。

但你可以说,每种工具有其适用的范围。只能说有些工具适应性比较强,粗活细活都能干;有些工具好上手,不需要太多学习;有些工具敲核桃是绝佳的……这是可以的。

 

可话说回来,我为什么会觉得,Ruby比Java好呢?

可能的原因是,我并没有真的向他们了解过这门编程语言。"xxx更好"这种先入为主的观念让我没办法看清真相。下一个定论是一种比较容易的方式,谦虚请教是比较难的。随便上网找一些资料证明自己的观点是容易的,自己静下心来下载开发包搭建开发环境写代码是相对来说更难的。吹嘘一些高级的概念,"元编程"、"函数式"是容易的,可真的能把这些特定用到位是难的。

另一个可能的原因是,我觉得当我有这样的判断是,我就比我周围许多的人要显得更牛。我可以向他们吹嘘,而大部分人也不会反驳我。

 

有一次吹嘘被戳穿的经历让我很难忘。去一个公司面试,我很希望可以被聘用,公司也给了我面试的机会。面试过程里,面试官问我看过哪些书?我转念一想,让他看中我的机会来了!就说自己看过<Junit in action>,是一本关于测试的英文书,我确实看过一遍,但留下来的东西实在有限。我说自己看过,可我也明知道自己没有收获。当他问及一些具体的概念时,我就答不上来,反倒很想争辩。最后当然是他很有礼貌的把我送走了。

这种浮夸,源自我的不自信。当我想去讨好或是让别人觉得我更好的时候,我就容易变得浮夸。

或者这样说,若非亲自实践,我就没有资格评论哪门编程语言更好。若非亲自实践,不应该轻易下判断。因为这样的判断可能出于浮夸,出于无知,但不是出于信心。

这是今天的思考。

我为什么就是觉得Ruby比Java更好呢

标签:

原文地址:http://www.cnblogs.com/andrew-chen/p/5440025.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!