完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
云汉达人
应该领域不同,语法不同,其开发应用场景不同 一、关于c语言 c语言一个系统化语言,主要用于操作系统,数据库,存储系统,网络通信,引擎系统,高性能服务器,api函数调用,等等系统级基础软件。c语言是面向过程开发语言,开源界最有名的linux,nginx,mysql核心等等开源基础件都是c语言开发的。c语言学起来简单,但开发起来难,因为用c语言开发的东西都是系统级基础软件,对性能要求高,要求代码精中求精,开发速度相对oop语言慢。标准c语言是跨平台的,但很多c语言用到了平台代码,所以很多c语言编译有很多平台相关开关,宏。c是高级语言,看起来象英语,但有从汇编过来的指针,指针是c语言中最难的,加个结构体这个c语言中的类。很多公司需要写硬件,写驱动,写引擎,写模块,写服务器,写数据库,写算法库,写图形系统,写操作系统,写虚拟机,写编译系统,写三维系统,写实时系统,写高速交易,写硬件调用,所以c语言用途很广,在语言排名榜上常列前位,这个语言应该是和操作系统一样活得最久的。 二、关于c++ c++一个工业化语言,c语言加上oop,加上模板,就是c++了。这个语言是解决c语言的oop功能不足开发的,所以c语言的特征它都有,c语言没有的oop,模板也有,oop实现上就是个动态指针,虚函数表调用。c++的目前的顶峰是微软的com组件,支持引用计数,多语言调用,如activex控件,有这种开源实现如xpcom,我在virtualbox中看到有xpcom代码。c++是很多公司的业务语言,如游戏,大众软件界面,图形开维引擎等,主要优点是不会卡。国内的很多公司用的是一种dirctui技术,导致国内很多大众软件无论移值到mac,ubuntu,只能从头开发,成本很高。还有一种跨平台的c++技术叫qt,如wps,skype。 三,关于java java一个商业化语言,主要用业务逻辑系统,如erp,oa,金融业,商业内部系统,网上商城。性能稳定,可以运行于linux系统,加速于ibm的高级服务器,配合oracle,emc存储,是世界500强财富公司喜欢的,同时也用于企事业单位,gov,这种不差钱,只差稳定解决方案的组织喜欢。性能比c++差,但比c++易于开发,不用担心指针导致的内存泄露问题而让需要365*24小的商业服务器死机。缺点是框架太多,软件工程理论化太强,写个程序按正规军的做法,需要配置一堆参数,需要使用类似spring这种动态化容器来管理依赖,另外开发时分层太多,测试系统也可以按软件工程理论来做,适合于人多的环境开发。自从android后,java(实际上是另一种虚拟机实现,对原java有裁剪)可用于手机开发,和ios下的obj-c竞争移动互联网。但因为虚拟机和封装问题,流畅程序不如ios,主要优点是开源。java在这两个方面的应用导致java语言近期排语言排名第一。java的速度,在linux下没有图形界面运行比较快,但在windows下需要调用c/c++的原生api生成界面,所以反应速度慢,这导致java目前用于服务器程序比较多,普通web或类erp信息管理系统,主要瓶颈在数据库,io带宽上,很多业务逻辑性强的web程序开发,用java比较适合。java的伸缩性很强,如果设计合理,jar包可以运行于类似android的arm上,也可以运行于大型机上,web可以用于一人用的web,也可以用于高并发的全民购物网站,因为后面可以加一堆商业化解决方案。 四、关于python python一个万能工具语言,主要用于脚本编程,软件测试,数据分析,宽客金融,服务器运维,科学研究,系统控制,网络爬虫,机器学习,算法研究,软件外挂,自动化办公,软件构建,web开发,系统功能调用等等。python比java古老,所以学习python不是为了只学其语言,而是为了用python调用各类功能丰富的包,python由于是脚本语言,动态化程度高,所以开源软件包特别多,可以用python快速搭建各种变形金刚,但代价是性能比编译性语言要低。但python有个pypy,numba这种llvm加速的虚拟机,性能直逼c++,我用python计算200万次浮点数运算,用cpython要40多秒,而用pypy只要1.8秒,另外python可以用gpu加速,但这些加速方法对于有的包括c语言调用的兼容性不好,用于纯python包加速是可行的。有了它们python的速度优化空间比较大,所以python开发速度基本上不是问题,因为实在不行可以用c/c++加速(比java调用更方便)。由于python的面向过程和面向对象混用,加上脚本的动态性,用于软件工程时需要比java做更多控制,另外包依赖问题不如java的jar包可以手工引用来得灵活。人们用python的主要原因是容易入门(但无论什么语言想要精通都很难,因为要深刻理解计算机和业务问题),代码干净易读,随手可得的各种库可以调用。我主要用过python分析数据炒股,破解验证码,fft,小波变化分析信号特征,opencv调用,另外也用爬虫采集数据,主要是包多,比matlab这种收费软件自由灵活不要钱。国内教python的很少,使用人数偏少,但老外用得多,因为很多国家老外不喜欢用盗版,如果要全平台编程(win,linux,osx,unix),只有java,python这两种比较常用不要钱,而c/c++复杂开发速度相对慢开发面向业务的系统成本高。随着hadoop,spark大数据分析平台的流行,python用于数据分析时可以充当多面手,比java更快捷易用方便随时修改,但java可以用于android移动平台。商业性支持python没有java好,python由于是开源基因,所以python的版本特别多,有基本的cpython,有jython,ironpython,pypy,只要你写的是纯python代码,完全可以运行在n种平台上。目前看来c,c++,python,java都是全平台的,通用性强,而且是免费的,所以学习这几种语言的人特别多,长期占驻编程语言排行榜前列,也是最值得学习的编程语言。 |
|
|
|
|
|
|
|
云汉达人
语法上他们肯定是不一样的。应用领域也有不同。 有区别也一定有联系。各种语言几乎都可以实现相互调用,有些高级语言的底层就是低级语言(如C语言)。 按领域,Web领域可能会用到java、php,但是在嵌入式、驱动编写上就要用到C语言。 按角度,C语言是面积过程的,而java、c++、python都是面积对象的。 知乎上:https://www.zhihu.com/question/21245034 其他参考:http://mini.eastday.com/a/160819095930898-2.html |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1105 浏览 1 评论
2473 浏览 5 评论
2807 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2645 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
652浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 19:16 , Processed in 1.126550 second(s), Total 84, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号