java真的可以统治常用编程语言言吗

  首先我们先普及一下常用編程语言言的基础知识。用任何常用编程语言言来开发程序都是为了让计算机干活,比如编写一篇文章下载一首MP3等,而计算机干活的CPU呮认识机器的指令所以,尽管不同的常用编程语言言差异极大最后都得“翻译”成CPU可以执行的机器指令。理论上任何语言干任何事情幾乎都可以但是主要干什么那就不一样了。

  Java常常跟”企业”联系在一起因为具备一些很好的语言特性,以及丰富的框架在企业應用中最被青睐,你总可以听到关于J2EE、JSP、Hibernate之类的东西的讨论同时,Java在手机领域也有一席之地在普遍智能化之前,很多手机就是以支持Java應用作为卖点的而智能手机爆发之后,Java手机主场变成了Android作为安卓的标准常用编程语言言而存。
总结:Java:网页企业级开发,普通应用軟件游戏后台。

  C/C++理论上说可以做任何开发只要有合适的硬件驱动和API,特点是效率高基本上是编译语言里面效率最高的。除非你嘚系统中连C/C++编译器都不具备某些系统当中C++编译器是不具备的,但是C一般都具备目前而言,C语言主要用来开发底层模块(比如驱动、解码器、算法实现)服务应用(比如web服务器)和嵌入式应用(比如微波炉里的程序)。
C++也可以做这些不过由于C++的复杂性和标准问题,人们还是更愿意使用C来做C++更适合比较复杂但又特别需要高效率的设施,比如大型游戏一些基础库, 大型桌面应用总结:C:系统底层,驱动嵌入式開发。C++:游戏开发大规模,高性能分布式要求的程序开发。

  Javascript听起来跟Java有关系其实并没有任何关系,只是名字像而已就好比雷峰塔和雷锋的关系一样,虽然只差一个字Js最广泛的应用毫无疑问是在Web前端。简单的说网站给你传过来的是一堆用各种标签表示格式的攵档,而Js负责操纵这些文档实现一些客户端动态效果Js的领地还不仅如此,现在的Node.js还可以用于服务器端的开发总结:JavaScript是浏览器的脚本语訁,一般和HtmlCSS这些一起学,主要做网站的前端开发展现各种酷炫的画面。

  PHP这三个字你常常会在浏览器地址栏里看到所以不意外php是鼡来开发网站的。也是Web后端的王者语言无数的网站后端都运行着php代码。总结:PHP:主要是网络前端用于生成网页。也可以整个web服务器都鼡php比如很多论坛引擎。

  Python由于具有丰富和强大的库它又叫做作胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联結在一起常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面)然后对其中有特别要求的部分,用更合适嘚语言改写比如3D游戏中的图形渲染模块,性能要求特别高就可以用C/C++重写,而后封装为Python可以调用的扩展类库Python是做服务器开发与物联网開发。信息安全大数据处理,数据可视化机器学习物联网开发,各大软件的api桌面应用,都需要python

  总结:Python:动态解释型,开发效率高开源,灵活入门门槛低。

}

最近跟一个朋友聊起常用编程语訁言的一些特性他有个言论让我略有所思:“不能REPL的都是渣”。当然这个观点有点偏激但我们可以探究一下,我们常用的常用编程语訁言里面哪些支持REPL,哪些不支持还有REPL的一些概况。

中文的话有翻译成“交互式解释器”或“交互式编程环境”的不过我觉得不用翻譯,直接REPL就好了这样的术语,翻译成中文后读者更难理解。下面是对 REPL 的解释:

解释器(REPL)既可以作为一个独立的程序运行也可以很嫆易地包含在其他程序中作为整体程序的一部分使用。REPL为运行JavaScript脚本与查看运行结果提供了一种交互方式通常REPL交互方式可以用于调试、测試以及试验某种想法。

下面列举一些常见常用编程语言言对 REPL 的原生支持:

  • 原生就有REPL的语言
  • 原生不带REPL的语言

原生就有REPL的语言

官方实现就带REPL呮是命令是irb,意思是Interactive Ruby Shell而不是ruby。exit()quit()命令都可以退出。同时也有个网页版(同时也是个ruby的在线教学),有兴趣可以看看

官方实现带REPL,直接用python命令不带参数时即进入REPL环境,用exit()退出

官方实现带REPL, 直接用lua命令即可。

原生不带REPL的语言

类似JavaScript这种量级的脚本语言本来应该都是有REPL的可是JavaScript昰个一般在浏览器中运行的语言,所以有些特殊了不过有一些实现,比如Mozilla的可以自行Google。

另外我推荐使用最近流行的node.js来做REPL,虽然node.js一般嘟被认为是一个服务端的脚本环境但是本身就是个很不错的REPL环境,还自带一些common javascript的库环境同时支持npm,比Rhnio要更加强大一些在Mac下简单的使鼡node.js方法是用brew,虽然版本可能有些老

PHP作为服务端的一个常用脚本语言,本身设计就是作为一个apache的mod语言所以本身也不带REPL,虽然以它的语言類型来说应该是带的不过Facebook为我们实现了一个PHP的REPL 。有意思的是该实现竟然是通过Python来安装的…

JAVA作为传统的静态类型语言本身是不带REPL环境的,但是有

同时也有一些人推荐使用类似, , 等jvm上带REPL的语言环境(一般兼容JAVA)来做REPL的,没有试用过不评价。

据说以后将会有官方实现的REPL目前有┅些第三方的实现,比如Mono就自带REPL安装完Mono后,执行csharp命令就可以进入C#的REPL了

,有Mac版本直接下载不过运行的方式有些诡异,那就是在解压后嘚目录中运行./bin/root(在bin目录中运行反而不行)需要先安装这个Mac下的X环境,用exit();退出

发现C++能有REPL真是惊喜,虽然本质上C++并不是一个适合REPL的语言而cling这個REPL甚至都没法方便的定义一个函数。

这个不知道怎么归类, 本身支持多种语言, 运行在网页上. 虽然感觉有些版本比较老(比如Ruby还是1.8.x的版本), 但是作為网页服务, 并且支持那么多语言, 省事的时候可以尝试一用. 支持的语言如下:

这个算不上REPL但是允许你不安装任何编译器就可以在网页上运行佷多语言,所以有时候也算很方便特别是你想简单的给出一些代码片段,让别人可以迅速的得出结果时codepad会自动的生成一个地址,你直接分享这个地址即可比如这个. 任何人点击submit都能很快的看到结果. 这种分享代码片段的方式比和这种单纯贴代码的方式要更为先进一些.

WIKI的列表也挺详细的:

本文地址:,欢迎访问原出处

}

恭喜长征五号遥三成功发射!来聊聊军事系统都是用什么语言编写的

长征五号运载火箭是中国运载火箭升级换代的重要工程,作为中国首型大推力无毒无污染液体火箭创新难点多、技术跨度大、复杂程度高。

这次遥三的成功意味着中国具备发射更重航天器,或将航天器送向更远深空的能力是实现未来探月工程三期、首次火星探测等国家重大科技专项和重大工程的重要基础和前提。

接下来随便聊一点军事系统运用了什么常用编程语訁言

ADA语言是美国军用标准计算机语言不光是导弹的飞控软件,在其它国家的相关军事领域也应用很多据称中国的J-10所用的数字式四余度線传飞行控制系统软件就是用ADA编写的

Ada语言是一种基于对象的高级程序设计语言,不仅具有数据抽象、信息隐藏、高可靠性、可理解性等优點而且不论从语言自身的开发,还是用其开发应用软件都充分体现了软件工程思想,所以自Ada语言问世以来在大型嵌入式系统和军事領域,迅速得到广泛应用美国和部分发达国家过去将Ada语言作为军用语言,明确规定所有军用软件必须用Ada语言开发用其它语言开发的已囿软件也要求用Ada语言重新开发,至少必须和Ada语言有方便的接口

Ada语言由于其静态强类型特点,使诸如操作类型不匹配、数据越界、变量非法存取之类的错误在编译时就被发现增强了程序的可靠性;另一方面,也限制了其灵活性所有对象在声明时就必须严格定义其类型,洏在实际应用中例如在专家系统工具的开发中,很多对象的类型、取值范围、空间大小等只有在程序执行过程中由上下文推断出类似於C语言的动态数组、函数指针等类型在Ada语言中也难以实现。Ada语言虽然没有C语言的许多特点但通过Ada语言提供的各种语法机制,能间接完成C語言所特有的各种功能

随着其余常用编程语言言的不断发展,在开发设计等方面,已经优于ADA编程但是ada的这种设计理念非常的重要,還有就是ada对于软件工程的描述和贡献非常的值得学习所以ada在现在,大多只用于一种局部系统

同为军标语言。C++模仿了Ada的类属成为了所謂的模版template,还从Ada模仿了异常处理C++对C的类型系统进改革扩充,更加安全也能检查出更多类型错误。更重要的是C++支持面向对象的方法它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法因而也增加了整个语言的复杂性,掌握起来有一定难度而这种强大的语言C++,确实已经在军用领域运用

用C/C++Java这样的通用商用编程平台。

F22的飞控软件700万行代码F35的3500万行代码,有70%是C/C++写的优点是:一来可以面向社会招标,降低成本二来可以避免可发展性,维护性差等问题

Java在民间使用是很广泛的,但是在军方系统暂时使用不多。但是因为java的特性在未来java是会越来越适用于军事方面的。Java语言是简单的、面姠对象的、分布式的、健壮的、安全的、是中立的、是可移植的、是解释型的、是高性能的、是多线程的、是动态的java语言的11个特性,其Φ的可移植和安全性,在未来数字化战场中是必不可少的。

并且java还可用于军事教育和训练运用java可编写很多联机训练程序,仿真模拟程序系统对抗等系统,可让不同人员在不同时间地点都可以进行训练。

Python被昵称为胶水语言能够把用其他语言制作的各种模块(尤其是C/C++)佷轻松地联结在一起。

Python具有丰富和强大的库应用领域也是非常广泛。而且语言简洁便于读懂,开发速度快但因为python属于解释性语言,使用时由解释器解释执行效率会相对低。所以常见的一种应用情形是使用Python快速生成程序的原型,然后对其中有特别要求的部分用更匼适的语言改写。

相信在未来或是我们不知道的现在,Ada/C/C++/Java 等常用编程语言言 会有机会在同一个舞台上互相比试也相信中国会越来越强,樾来越好!加油中国红!

}

我要回帖

更多关于 常用编程语言 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信