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

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

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

我曾经去面试过一家中意的公司的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>,是一本关于测试的英文书,我确实看过一遍,但留下来的东西实在有限。我说自己看过,可我也明知道自己没有收获。当他问及一些具体的概念时,我就答不上来,反倒很想争辩。最后当然是他很有礼貌的把我送走了。

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

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

这是今天的思考。

时间: 2024-12-05 01:31:19

我为什么就是觉得Ruby比Java更好呢的相关文章

零基础如何学习java更有效呢?

零基础学java,不知道该如何入手?也不知道学习的方向,很多人会问零基础怎么样学习,有没有什么入门的书籍推荐:只要方法正确,零基础学好java也是有机会的哦. 一.理解Java思想 Java是一门面向对象编程语言.向对象编程是Java最核心的思想,这也是区分和C等其他编程语言的一个显著特征.掌握面一门语言,首先得掌握它的思想,思想决定高度.这就和我们学习语文和英语一样,汉语学拼音,英语学音标.抓住了核心,学习起来就事半功倍. 二.弄清基本概念 作为一门语言,Java肯定有着丰富而又简单的概念.弄

女生不适合学习java吗?其实女生学java更有优势,更容易就业

女生适合学java吗?女生做IT怎么样首先要表明我的观点,编程是不分男女,什么女生不适合学编程的说法,从客观上来说,我觉得这是一种偏见.不少人潜意识里认为女生不适合从事IT开发岗位的工作,因为他们觉得这些岗位对逻辑性的要求很好,而且要具备一定的操作水平,而女生在这方面比较薄弱.实际上,女生从Java的工作,很多时候能做得比男生更好.为什么说女生比男生更能学好java呢?1.女生往往比男生更细心,我认为女生可能在这个行业可以做得更好.首先因为女生比较踏实认真,代码的学习是一个长期,需要坚持的过程.

java更好的解析Json数据

每次使用JsonObject个某个数据时候,总是抛出异常,这样看见会相当的烦躁. 我是不太喜欢 这样抛出 异常 每次都去try cahch public Map<String,Object> parseToMap(JSONObject obj){ Map<String,Object> map = new HashMap<String, Object>(); try{ for(Iterator<?> iterator = obj.keys() ;iterato

比较Perl、PHP、Python、Java和Ruby

!预览 · 语言的发展趋势一定是动静结合.刚柔并济 · Perl凝练晦涩,Python优雅明晰,Ruby精巧灵动,PHP简明单纯 · 或许优雅正是来自对细节和规范的重视 · (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影 ?提问 Perl.Python.Ruby和PHP各自有何特点? 为什么动态语言多作为轻量级的解决方案? LAMP为什么受欢迎? Ruby on Rails为什么会流行? 编程语言的发展趋势是什么? :讲解 “剩下四种动态语言,我们将

转载--编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)

阅读目录 建议16:易变业务使用脚本语言编写 建议17:慎用动态编译 建议18:避免instanceof非预期结果 建议19:断言绝对不是鸡肋 建议20:不要只替换一个类 回到顶部 建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它们都是在运行期解释执行的.为什么Java这种强编译型语言会需要这些脚本语言呢?那是因为脚本语言的三大特征,如下所示:

喜欢ruby编程语言的几个原因

Ruby编程语言是由日本人松本行弘开发,是一种简单快捷的面向对象编程语言,今天主要跟大家聊聊ruby框架--ruby on rails(http://www.maiziedu.com/course/ruby/),可能有些朋友不喜欢ruby,但是作为一门语言,我觉得 Ruby 还是很值得掌握和学习的. 先说说学好 Ruby 有什么好处吧. Ruby on Rails 的最大优势我觉得有四个: 1. 语言灵巧轻便,适合快速开发和部署. 2. 各种本身自带的 "magic" 以及可以通过 g

atitit.技术选型方法总结为什么java就是比.net有前途

#----按照不同的需要有不铜的法... 一般有开发效率,稳定性上的需要.. 作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax #-----常规选型..一般还是java+php比较好.. 长期性:把需要都罗列出来,然后把那些在长期还用得到的标出来. 一般来说.console是最稳定性的...前端gui/web是不稳定性的...后端就是更好.. 查看历史:: 会晓得,为什么php会

php和java优势对比

PHP很专一,用于创建动态网页的服务器端的脚本语言.作为一种为Web而特别设计的语言,PHP带来了许多商业机构渴望的特性. ·学习周期短,比较简单 ·快速的开发时间 ·非常高的性能 这对于缺乏熟练编程人员,时间又非常紧迫的公司来讲,具有非常重要的意义.跨平台性很好,PHP可以在所有主要的操作平台(UNIX,Windows,甚至是大型机)上运行,而且生来就支持各种流行的数据库.这决定它是一种进行Web开发的非常理想的选择:曾有运用PHP技术的网上商店称,他们只需雇佣业余的程序员,几天内就能够开发出

PHP作前端java作后台

前两周参加完 ThinkInLamp 的 PHP 架构师大会,听鸟哥一上午的分享,感慨很多,PHP 业界虽然方向不明荒废了两三年的时间,终究还是又重新崛起了.其实包括 Java 的重启问题,现在也已经很多解决方案了,再不济,双进程 Load Balance 切换也很容易做(但可能引发冷启动问题). 而 PHP 的性能问题随着 @Laruence 在 PHPNG 上的努力,眼看着 JIT 快来了,ZVAL 也优化了,尤其是做数据分析最坑的 Array 常量引用和 Array 结构大小等问题都得到了