java源于什么语言_为什么各大语言都要和Java做比较?

对编程有兴趣或者是有一定了解的同学都知道,编程语言界会有各种各样的比较,但是播妞发现,各大编程语言都喜欢和Java作比较。

今天艾大咖和大家一起扒拉一个问题——为什么各大语言都要和Java做比较?

近几年特别火的Python、苹果主推的Swift等等,它们在宣传初期都不约而同的喜欢怼一下Java,并且理由出奇一致:我们只需要一句话就能写出Hello World,但是Java需要定义类,定义方法,在方法内写输出,然后创建类的对象,再调用方法,实现输出。所以你看,我们这门语言多么简洁和高效。

这也是很多人在刚刚接触编程语言时不会对Java 产生好感的主要原因之一。但是你有想过为什么Java会被设计成这样呢?

什么是面向对象语言

Java最初的理念是脱胎于C++的。C++最大的成功之处是它是一门面向对象的语言。什么是面向对象?

万事万物皆对象。用面向对象的思想能够在最大程度上模拟真实的现实世界。如果我们把“人”看成一个“类”,那么你我他、小张小李、隔壁练腰的老王都是这个类的独立“对象”。身高肤色腿长就全都是这些“对象”的“属性”,而吃饭睡觉工作等等行为就都是这些“对象”的“方法”——方法用来操控对象的属性,从而使对象做出一定的行为。众多对象的行为相互影响,就能做出更加惊天动地的事情。例如:马爸爸这个“人类”的“对象”,用“说话演讲”这一方法,成功影响了十八罗汉们的“工作”这一方法,并提升了他们的“努力值”属性,最终造就了现在的阿里帝国。

而C++又是来源于C语言的。C语言没有面向对象的概念,是一门纯粹的“面向过程”的编程语言。很多人对“面向过程”这个概念都不甚了解。实际上在早期,编程的世界全部都是面向过程的,人们用程序语言直接去处理业务逻辑。

例如,在一个寄存器里面放进一个变量,就先查看寄存器的空间是不是够,如果不够,可以把不再使用的取出来腾出空间,再把新的变量放进去。这些操作在面向过程的编程思想中,每一次操作都可以只对应一条编程语句或是一小段简单的逻辑块。

如何把大象放进冰箱?打开冰箱门,把大象放进去,关上冰箱门——这就是面向过程的思维方式,更直接了当。

图:来源网络,侵删

C语言是面向过程的语言,C++提出了面向对象的概念,但是仍然保留了面向过程的设计思想,而Java是纯粹的面向对象语言,没有面向过程的踪影了。这也是为什么C++和Java在面世之初,被人们称为“高级编程语言”的原因之一。

而前面所提到的一些新兴编程语言,它们所标榜的高效和简洁,其实就是典型的面向过程的编程思想。这也是新手们更容易接受和喜闻乐见的东西——简洁。

但是你会发现一个很有意思的地方,如果你去苹果官方的Swift网站查看,会发现苹果仍然将这门语言称为面向对象的编程语言,事实上确实它也支持面向对象的编程方式——尽管你能在它的很多官方文档里看到大量的面向过程的编程思想。

想想为什么这些语言一边标榜自己比Java更简洁,又要一边说自己是面向对象语言呢,这不是左右互搏么。

其实面向对象的方式虽然看起来冗长复杂,但是它更接近人类的自然思维模式,这一点如果不能深刻理解面向对象概念的话,是很难体会的。但是它确实在软件领域能够解决很多更大规模和复杂的事情,阿里、美团、网易……数一数有多少互联网巨头在发展之初都是使用更简洁的编程语言,但最后发展到一定的规模后,都不约而同在底层基础架构层面转向了Java。

作为编程新手可能会出于本能的选择一个更简单更容易的编程语言,但是想要在行业里面长久的发展,播妞还是建议学一学Java,就算用更容易学会的编程语言找到工作,也能用Java给自己的加分。

对于0基础的同学来说,要怎么入门相对来说不怎么容易的Java编程呢?在这里推荐一些基础的资料,有兴趣的话可以看看JavaEE:12天掌握Java语言开发 - Java-环境搭建及基础语法 - 创客学院直播室​www.makeru.com.cnJavaEE:12天掌握Java语言开发 - Java-数据类型 - 创客学院直播室​www.makeru.com.cnJavaEE:12天掌握Java语言开发 - Java中读取配置文件的几种方式 - 创客学院直播室​www.makeru.com.cn74ddb1c57e0d00e56fc45fd2792b75b9.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值