用编程语言参加战争,谁会是最强武器?

自从计算机问世,各种编程语言也随之诞生,作为程序猿,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++占了相当大的比重。

其实无论武器有多么强大,决定战争胜败的还是使用武器的人;无论编程语言多么的强大,决定程序好坏的也是编程的人。也只有不断强化自身水平,才能更好的驾驭这些的编程武器——

本文来自企鹅号 - 中软国际教育集团媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏纯洁的微笑

我来告诉你,一个草根程序员如何进入BAT

1174
来自专栏海纳周报

如何学习Java

不要被什么科班出身之类的说法吓坏了。虽然我是科班出身,但我始终觉得,只要你肯努力,这里面并没有什么无法逾越的鸿沟,最重要的是不要好高骛远,也不要急于求成。学习和...

3486
来自专栏牛客网

双非机器学习秋招坎坷路

写在前面的话:部分牛友在评论区喷 强调机器学习、算法要求没那么高,那么我说一句,你们凭心而论,如果不是手里有那么些个竞赛大奖或者acm等算法大奖,你们的简历怎么...

4157
来自专栏C语言及其他语言

如何到达C语言的巅峰?我推荐你阅读《C语言小白变怪兽》!

《C语言小白变怪兽》融入了作者 8 年的编程功力,以及文学级的写作能力,耗时 5 年完成,期间经过了 5 次大改版。

3441
来自专栏牛客网

美团、滴滴实习生面经(滴滴offer,Java后台开发岗)

2170
来自专栏一个会写诗的程序员的博客

附录B 编程的本质附录B 编程的本质编程的本质N小结编程简史名词纪要参考资料

尼古拉斯·沃斯(Niklaus Wirth,1934年2月15日—),生於于瑞士温特图尔,是瑞士计算机科学家。Pascal语言之父。

683
来自专栏cmazxiaoma的架构师之路

一场让我持续懵比的面试

1744
来自专栏牛客网

滴滴面试

2315
来自专栏Java编程

Java 征途:行者的地图

前段时间应因缘梳理了下自己的 Java知识体系, 成文一篇望能帮到即将走进或正在 Java 世界跋涉的程序员们。

9250
来自专栏牛客网

美团后台三面面经

世界上最美妙的莫过于此,在不谙世事的年纪,对生活的全部期待就是绚烂的理想本身。——赫恩曼尼

1654

扫码关注云+社区