c语言java和python (c语言和java都是谁发明的)

不管是C语言还是java语言各有各的好 其他语言也一样

从历史来看好像就是先有的C语言,后来是java。C语言之前有Fortran,ALGOL,LISP,Pascal和Basic。C的定位比这些语言都低一些,但是能代替以前只有汇编语言才能完成的工作,C程序中可以内嵌汇编语言程序段,C语言有指针操作,对内存和内存地址比较直接,可以直接和硬件打交道。

后来,由于软件规模变大,复用的需求比较大,C虽然可以结构化编程,模块化编程,但是由于静态变量的存在,程序的耦合比较大,在C语言中引入面向对象程序设计的概念,就有了C++(当然还有另外的语言比如Objective-C)。

后来又出现了Java,大家都知道,Java是跨平台的语言,又提供垃圾回收机制,基本上可以说是在C++上又做了加加减。

以前C/C++语言是有不同平台差别,比如16比特CPU还是32比特CPU,其内存地址,寄存器,数据总线/地址总线宽度不同,而C/C++的整数大小是根据平台而变的。而在Java所有数据类型都有固定的长度,这样在不同平台才能通用。当然还有指令集平台和操作系统平台。

没有垃圾回收的语言中,申请和释放内存都是手工的,某个内存申请后可能作为返回值传递出函数,而当某个内存不再使用时,就需要程序手工释放。如果没有释放不再使用的内存,就会出现内存泄漏,如果释放了别处正在用的内存,就会出现各种错误。

Java中提供了垃圾回收,通过类似引用计数的方法来自动回收不再使用的内存,当然后来采用了更为先进的垃圾回收机制。

Java语言还去掉了一些程序员容易出错的操作,使得学习起来更加容易。

其实Java当初计划是全平台的语言,既有桌面的J2SE,又有服务端的J2EE,嵌入式系统的J2ME,浏览器里的Applet。但目前来看,只有服务端,安卓手机,和部分桌面程序。

Java推出以后,C语言还有没有用呢?当然有,任何好处不会没有代价,程序语言已经不是一家通吃的时代。

因为没有指针操作,就不适合与底层和硬件设备打交道,因为垃圾回收,就很难用于实时系统,这些软件还使用C或C++语言来开发。当然后来又出现新的编程语言,比如Go,不在此处展开。

而Java呢,更适合业务逻辑的表达,,在企业和互联网都有很多应用,比如Hadoop。

Java语言面市后,还出现了许多新的语言以他们的优势抢占Java的市场,比如JavaScript,,有了Ajax和HTML5,在浏览器中可以动态渲染各种图形图像视频,可以与服务器通信,有了nodejs,可以在服务端提供服务。