Ruby VS JAVA 到底谁比谁更强? (1)

Python011

Ruby VS JAVA 到底谁比谁更强? (1),第1张

他的顾问公司专注于Java 持久化框架和轻量级开发方法,同时他也是这些流行的Java图书的作者, Spring: A Developer's Notebook, Better, Faster, Lighter Java, 以及 Bitter Java。1,在《超越Java》中你花费了大量的时间在Ruby上面,看起来是它像在你说那些将超越Java竞争者中出类拔萃。你觉得是什么使Ruby比 PHP,Python这类语言优越?这些都是好语言,但是都有一些缺点。对大型应用,PHP和Perl不能连续地产生可读的代码。Lisp,Python和Smalltalk这些就缺少了伟大语言好像应该拥有的催化剂。Ruby是一种好语言,和催化剂(Rails)提供了引人注目得新价值(以效率的角度)以及还在飞速地增长。Ruby不一定是最好的语言,但是它将是我所见过最有可能的。Ruby不大可能在委员会那里超过Java。它很有可能首先在一个更小但是却重要的环境中取得好成绩。这个环境也就是一个有web UI大的胖关系数据库。2,是否Rails就意味着Ruby?其他语言包括Java难道就不能实现同样的思想?如今,Rails就是超过象Netscape之类语言的催化剂,具有Java一样的功能,可通过网络实现应用的传送。但是我认为Rails很有可能仅仅是Ruby元编程框架浪潮的第一波。3,你的书中很多都基于典型的“将一个web接口连接到数据库”场景,Ruby的成功案例看上去也仅仅是一两个开发人员的小项目。但是你也承认了Java的重量级企业框架对一些项目的价值(即大型系统上的大型应用)。什么情况下一个项目对于RoR来说过于大的呢?如果一个RoR在那方面的特性发展缓慢呢?有Ruby和小团队你可以做很多事情。基础代码几乎都是一个人写就的,但却关乎整个公司的生计。在一些主要的公司开始进行认真的尝试之前,我们不知道你可以利用ruby或者rails到什么程度。其中一个最吸引我的事情是经济的规模,更小的规模。万一生产力的数字是真实的呢?万一确实可以得到5X的增长?那么你可以在一个部门内划分工作,将工作划分给团队中的一个。交流将很少会成为问题。管理和疏忽也很少会成为问题了。我们都知道对于一间公司增长, tipping points意味着什么。因为增加沟通和管理的级别会产生很多的障碍, 所以一间公司增长要超过1,5,10,40,甚至100倍是很困难的。但是,在这一点上, Ruby on Rails的可扩展性是非常的好。4,你是否看到Java开发人员转向Ruby吗,还是Ruby将会给新一代的开发人员采用?我觉得两者都有可能。有开发人员不能容忍学习servlets, Spring, XML, Hibernate, Struts 然后还要学习一些 UI 粘合的框架。在Rails中,他们将会完全给释放出来。同时也有Java开发人员已经在寻找更加优势的方法,他们发现了Ruby on Rails。接受了Rails的Java梦想家们的数目是令人惊愕的,他们有Thought Works,James Duncan Davidson,Stuart Halloway 更有 David Geary。5,难道Java本身就不能做一些事情来维持它的杰出地位?如果过于复杂和膨胀,什么可以阻止开发人员倒退到jdk 1.4?Java将会继续处于顶峰,并在企业应用上保持良好的表现,但是时间不会停滞不前。在某种意味上它终将会给替代。我们将需要一个更高级别的抽象。我认为我们最好的希望就是在JVM上做充足的投入,更好地支持动态语言, 拥抱新的事物,对于旧有的java代码,则最好是保留保守的态度。

Python与Java的区别

学习起来Python要比Java简单快速的多,java从c++这样的系统语言中继承了很多语法和复杂性,而Python的语法非常简洁,大大提高编写效率。

Python与C#语言的区别

Python是解释型语言,不需要额外的编译过程,而C#必须编译后执行。另外,Python程序全部是开源的,但是C#就不是了,Python程序可以跨平台,不需要修改就可以运行在Windows和Linux等系统平台。

Python &C++,Perl

Python比C++等这类语言,更容易学习,语法规则简单,语意化,易读易懂,容易维护。

Python &Ruby

Python与Ruby确实有些相似,但是前者比后者更加成熟,语法的可读性是后者没法比的。与Ruby和Java不同的是,面向对象编程在python里不是必选的,这就更加增加了这门语言的灵活性。Ruby语言只适合编写,但是维护的时候你会非常头疼,更不用说多人编写和维护的项目代码了。

java非常好,再用上eclipse,爽歪歪!

速度嘛,的确比C/C++慢,没办法,人家C/C++是直接编译成机器码,而咱是编译成class文件,需要java虚拟机解释执行。

要说速度慢到哪里去也不至于。图像处理很费时吧,最近使用相同的算法处理相同的图像,C/C++所花的时间是java的一半而已。

优点:

1.自动回收内存

在C/C++中你敢这样写吗:

int

w

=

getWidth()

byte[]

data

=

new

byte[w]

2.

eclipse代码补全功能

需要什么打一下点,就什么可用的东西都列出来了,只要不是语法错误,没有引入需要的包,点一下红叉叉,自动导入。C/C++还要去查MSDN之类的东西,找头文件。

3.代码组织

类名、方法名、变量名一目了然,看一眼就大概明白是干什么的。C/C++中那些全大写,下划线等等乱七八糟的东西,看到就头晕。

5.指针,java中没有指针,避免了很多麻烦。

此处省略几万字……

缺点:

1.运行效率,这个咋没办法根C/C++比;

2.结构。我们有时候需要一个结构,但java中只有类。而且,比如要读取bmp文件,C/C++直接申明一个结构,然后直接把数据读到这个结构中,一行代码搞定。而java要读取文件中一个整数,不得不读4个字节,自己来拼成整数,虽然RandomAccessFile提供了readInt之类的方法,但是都是按BIG_ENDIAN读取的,没办法读取LITTLE_ENDIAN。

3.指针,虽然这是java的一个优点,但有时候也是它的缺点。某些时候我们真需要指针。而且还需要用负数做为索引访问一个指针的内容,而java中是不允许负数做为数组索引的