网站首页 > 精选教程 正文
自从计算机问世,各种编程语言也随之诞生,作为程序猿,Java、Python和C++是必学的三种编程语言,但有时难免疑惑:这三种语言究竟孰优孰劣?
那么不妨读一读这篇文章,用一种别开生面的方式为你解答——"如果用编程语言参加战争,谁是最强武器?"
Java:轻巧灵便的多面手
战场上的Java语言就像美国陆战队标配M4A1步枪
这种轻巧灵便的武器十分贴合Java容易上手的特性,而且威力强劲,在各种战场上都能发挥效用(平台独立和可跨平台赋予Java一次编译、到处执行的特性)各大军队都有配备(是当今应用最广泛的语言之一)还有一个谁也不能比拟的优势(库多!库多!就是库多!)
不过射程和杀伤力偏弱,虽然灵活,但是论攻城掠地还是飞机大炮来的省事儿。
Python:高性能的重武器
Python被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起,是一种高性能的重武器。
Python具有丰富和强大的库。应用领域也是非常广泛。而且语言简洁,便于读懂,开发速度快,但因为python属于解释性语言,使用时由解释器解释执行,效率会相对低。
这玩意儿威力强劲,面对大型的物体的修整也是游刃有余,不过对于一些精细的调优工作,反倒是力有余而心不足。
所以常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。
比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。
C++:功能齐全的大杀器
其实C++很像瑞士军刀,而且是其中的巨人军刀。
这把刀什么都有,说明C++是一种功能繁多的语言,能应付各种情况;细致齐全,说明C++是能做细活的语言,但相应过多的工具,也意味着操作更为复杂。
要是换成战场上的武器,C++估计长这样——
一看这只在科幻电影里面出现过的造型就知道威力不一般了。C++真的是一种很强大的语言,高性能且灵活(指针,地址,二维指针,指针数组),而C++继承C的简洁、高效的特点。
提到C++就不能不提到C,C是C++的基础,C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。
C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作,当然编译效率高也是它的一大优点。
C++对C的类型系统进改革扩充,更加安全也能检查出更多类型错误。更重要的是C++支持面向对象的方法,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。
而这种强大的语言,确实已经在军用领域运用——譬如美国F-35战机的战斗系统
我们可以看一组数据:
△ 7% 汇编、5% Ada83、35% C++、53% C
wikipedia 词条中也有关于 F-35 软件所用编程语言的介绍:
Much of the F-35's software is written in C and C++ because of programmer availability; Ada83 code also is reused from the F-22.[162] The Integrity DO-178B real-time operating system (RTOS) from Green Hills Software runs on COTS Freescale PowerPC processors.[163] The final Block 3 software is planned to have 8.6 million lines of code.[164]
可以看到,F-35 用到的编程语言,C/C++占了相当大的比重。
其实无论武器有多么强大,决定战争胜败的还是使用武器的人;无论编程语言多么的强大,决定程序好坏的也是编程的人。也只有不断强化自身水平,才能更好的驾驭这些的编程武器。
文章来源于,网易号丨奋斗在IT
想要在程序员生涯内有更高的成就的话,最最重要的是尽可能的提升自己的编程能力,并且,与其想着怎么去提升,不如从现在开始动手动脑,如果对于C/C++感兴趣的话,可以关注+私信小编【C/C++编程】有一些视频希望可以帮助到你,学习不怕从零开始,就怕从不开始。
猜你喜欢
- 2024-12-30 工作流引擎发展史(Activiti主创人员的跳槽史)
- 2024-12-30 jdk动态代理和cglib动态代理的区别
- 2024-12-30 推荐 10 个Java 项目必备 Maven 插件
- 2024-12-30 数字签名的过程是怎样的?为何使用工具和自己算出来的不一样?
- 2024-12-30 一开工,就遇到上亿(MySQL)大表的优化,我的天啊!
- 2024-12-30 宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
- 2024-12-30 浅谈字节码增强技术系列2-Asm与Cglib
- 2024-12-30 Spring Boot 最新发布,支持 Java 19,这速度太快了
- 2024-12-30 连 Kafka 的稳定性都不懂,也敢说自己会用Kafka
- 2024-12-30 Dicom 基本知识-数据结构篇 dijkstra数据结构
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)