开发语言特性对比 java python golang c# c++

java的跨平台+c#的ide和语法+python的库+c++语言的性能+go语言的协程

python和java比

运行速度比java慢,java强大于改进n次的强大jre,但python在很多领域能调用很多现成的开源库,在数据分析中有优势,pyhton的代码比java要简洁,容易入门和使用。在优化的计算库帮助下,如numpy numba,pandas,scikit-learn,python的实际问题运算性能并不低于java。java主要是框架太多,相对复杂,java主要用于业务程序开发,符合软件工程理论,可伸缩性强,强类型有利于对程序的静态检查分析。java随着安卓,hadoop,spark的兴起,加入java语言的公司很多,性能也可以通过优化解决很多问题。很多服务器如ubuntu server,centos都默认支持python,而java虚拟机需要安装配置,python的安装使用也相对简单。python的库有开箱即用感,很多业务领域,你可能还在用oop写代码,考虑设计模式,用锄头挖沟时,而python调用挖掘机api已经炒菜完工开饭了,缺点是油耗比较大。

Python和c#相比

c#依赖强大的微软优化的.net虚拟机和强大vs ide,在windows平台下运行速度比java要快,但跨平台运行后如mono,速度就慢了,功能也不完全。c#的跨平台能力比不上python,c#比python要复杂,c#语法和java,c++借签,比较受编程人员喜好。mono的出现,unity3d用c#调用c++做游戏业务逻辑,可以在手机上流畅运行,体现了很多程序的性能在于良好的设计,可以把高性能的用c/c++写,用c#,java,python写容易变化的业务逻辑部分。c#在mon虚拟机下运行速度还可以,但linux控在服务器上有java,python,php,所以用mono做web比较小,从unity3d的成功来看,用c#做为业务脚本语言,用c++做库也能获取很高的性能。这是折中性能和开发速度矛盾的一种解决方案。很多复杂的业务语言用java,c#,在团队开发时易用性好,也说明了python的工程化比较差,对强类型的支持弱不适合静态分析,但python一但用强类型申明,那么是另一种java,也就不是快捷语言。在单纯的计算比较,各个虚拟机语言相差不多,其实除了现代很多业务系统瓶颈在io,在网络,在算法,在设计,你2秒运行1.2亿次,而没有数据库或缓存能做到2秒内记录完1.2亿条数据,都是1秒在1百万记录以下,如果走网络速度更慢,持续平均1秒能记录下几十万条数据顶天了,所以这些语言一直在等io完成任务。

python和go语言相比

go语言相对较新,go语言的库没有python的丰富,毕竟python发展了几十年,go语言最大的优点是协程,速度快,支持高并发,但任何支撑高并发的语言编程都不是一件易事,最大的缺点是,名称有google的go,所有很多其他的巨头公司本着竞争的观念对有类似商标的语言有抵制心理。而python是开源,用得公司特别多。go语言的语法如果能像c#,java类似,可能会发展得更好。很多语言为什么会用它,不在于语法,不在于性能,主要在于这个语言开发了什么成功的产品,另人会mock这个产品,用这个语言,Docker就是go语言开发的,适就于大规模分发容器。

python语言和c/c++相比

python开发速度比c/c++快,因为c/c++有指针,干什么之前,需要考虑好指针的技巧,指针弄不好,会造成内存泄露,一点内存泄露不要紧,但乘以时间乘数就会耗尽整个内存,因内存泄露造成的24h*365天服务器需要重启会造成实际经济损失,所以开发商业后台业务程序最好用无指针的java,php,python。但对用户来说python,java,c#,c/c++开发同样功能的程序,用户会选择c/c++,所以在软件业无数成功的标牌软件是c/c++,这是c/c++的成熟之处。c/c++主要是开发成本高,同样的程序可能python,c#一周,c++搞二个月很正常。但为了利益,花再多时间也有人干,如同现在一样有人用汇编写加密代码,用FPGA把程序做成芯片,追求的是极致的速度。c/c++的快是直接编译成二进制,无jit,vm,而python最快也只是调用c的扩展。开发成本也是很高的成本,高级的c++程序很贵,如在美国高级的c++程序员年薪在百万人民币以上,有时不是大应用时,用易于使用的语言,上高级点的电脑,上集群就可以了。如用python显卡来加速,买个显卡也就万元。c/c++适合精雕细琢,走精英路线,python适合快速开发,走大众路线,其实对于影响性能的部分可以结合使用,用python调用c/c++库。随着编译技术进步,电脑的计算力成本会随时间下降,计算力越来越强,最近的cpu多核主频高达5g,理论上比2.5g的cpu算力快一倍,用液氮超频可达6.7g,同样的核也比我电脑快了1.5倍(如果用高级c++语言程序员优化了1倍时间花费1人/年,显然超过了换计算机的钱),显卡在多核的支持下浮点运算能力也越来越高(可用NumbaPro,PyCUDA), HPC在云市场可以租用到,超级计算机也可以向有关组织租用机时测试,动态语言以其易用性开发成本低在很多领域可以取代高性能的编译语言,但极致的编译性能软件市场也是不断扩大的,很多行业算力跟不上,很多np-hard问题对算力需求不是线性增加能满足的,人们对性能的需要实际是越来越高,如世界竞争的超级计算机,比特币矿机,深度学习算法。谁都不可以取代谁,而是大家都结合发展了。用什么语言没有好坏之分,关键是在目标程序追求的是什么。

参考链接:http://www.cnblogs.com/nucdy/p/6703780.html

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Rust、PythonGolang是三种不同的编程语言,各有优缺点,下面是它们的详细优劣对比: Rust: 优点: 1. 静态类型、内存安全和高性能的编程语言,具有类似于C和C++的底层控制; 2. 可以保证线程安全,支持并行和异步编程; 3. 内存管理方面比C++更安全,有许多内存安全功能,如所有权和借用,可避免内存泄漏和数据竞争; 4. 社区活跃,有许多有用的库和工具。 缺点: 1. 学习曲线较陡峭,需要花费一定时间学习所有权和借用等概念; 2. 语言特性较多,代码量相对较大; 3. 由于语言特性的限制,Rust可能不适合开发一些大型复杂系统。 Python: 优点: 1. 简单易学,语法简洁,可以快速开发原型; 2. 具有强大的标准库和第三方库,可以处理各种任务; 3. 支持多种编程范式,如面向对象、函数式和面向过程编程; 4. 可读性好,常被用于教学和科学计算。 缺点: 1. 速度比较慢,不适合实时性要求高的场景; 2. Python的代码执行效率低于C++Java等语言; 3. 由于动态类型的限制,Python不太适合大型复杂系统的开发。 Golang: 优点: 1. 静态类型语言,编译速度快,运行速度也很快; 2. 支持并发和并行编程,有goroutine和channel等特性; 3. 语法简洁,易于阅读和维护; 4. 适合构建高性能和可伸缩的网络应用程序。 缺点: 1. 内存管理方面不如Rust安全; 2. 语言特性相对较少,不如其他语言功能丰富; 3. 在处理一些密集计算或科学计算方面,Golang的性能可能不如其他专业的语言。 综合来看,选择哪种语言取决于具体的需求和场景。如果需要高性能和内存安全,可以选择Rust;如果需要快速原型开发和科学计算,可以选择Python;如果需要高并发和可伸缩的网络应用程序,可以选择Golang

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小金子的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值