objective-c
标签是否会比c
标签更受欢迎。(纯属猜测) - tidwallForth有时被用于开发低级软件,如设备驱动程序。例如,SUN SPARC服务器的启动程序曾经是用Forth编写的。详情请参见http://en.wikipedia.org/wiki/Open_Firmware。
var x: int = 5;
,var dptr: **double;
,def sort(a: *int, len: int, cmp_lt: (int, int) -> bool): unit;
。在我看来,这种改进将是巨大的,而且这种变化对性能或可移植性没有任何影响。 - Harrison我知道一些人在使用D语言进行系统编程。它比C#等语言更低级,但具有现代语言的许多优点。
Ada、Pascal、汇编语言、Fortran等等。即使你将讨论限制在低级语言范畴内,你仍然有很多选择。有很多公司根本不使用C或C++(例如,美国军方在使用Ada进行大量工作)。
C和C++之所以如此流行,是因为很多人都懂这些语言(我知道这是一个递归的答案)。公司使用C或C++是因为很容易找到知道这种语言的开发人员,而开发人员学习这种语言是因为公司在招聘这种人才。此外,对于C和C++,有非常广泛的书籍、编译器、IDE、调试器、库等等选择,并且C/C++编译器可用于几乎任何可能遇到的平台。此外,这些语言已经存在了相当长的时间。传统的C代码更可能由C开发人员维护,而不是用另一种语言重新编写。C和C++都是多功能、强大的语言,未来仍将被广泛使用。但它们远非唯一的选择。
自Unix早期以来,C语言一直是通用语言。有如此众多的现有C代码,如此丰富的文化根源,人们只是使用这种语言。它不仅仅如此:C语言设计得非常好:在其简单性、学习速度、编译速度、编码速度、运行速度方面,在其类似于圣经般的教程书和我们今天仍然使用和破解的大量坚实的开源代码方面等等。它只是一门有用的语言,就像没有压力独立、重力独立的钻石闪闪发光的百万美元笔和拥有天使指纹的铅笔无法取代。
至于C++,它并不像C语言那么简单。相反:从语法、黑暗角落、学习曲线、适当的现代代码和其他标准方面来说,它可以说是比任何其他语言都要复杂。人们会认为这种复杂性会毁掉这门语言,事实上许多人已经这样说了几十年。Java就是基于这个前提而诞生的。但是今天我们已经过去了大约30年,这门语言仍然活跃在StackOverflow的10个最流行标签之中。有许多人对这种语言充满热情,包括我在内。
当然,这并不解释为什么C++成为了一门流行的语言。我认为这是因为C++在支持许多不同编程范式方面给予你的自由度。这就是C++如何支持像C一样低级别的编程,具有同样的效率,同时也可以支持其他高级语言,只要使用适当的辅助库。我建议你阅读Bjarne Stroustrup的这篇采访。
对于低级别编程来说,C和C++显然不是唯一的选择。但它们是非常难以抗拒的选择。如果我可以大胆地建议,我认为它们是最佳选择,仅因为它们的坚实、悠久的历史表明它们将会长期存在;还因为已有的大量可靠代码集展示了你可以用这些语言实现的事情。现有软件的支持需求保证了网络上有很多活跃的论坛、很多雇主——总之,这是一对活跃、充满生机的语言。
C#怎么样?许多Windows应用程序都是使用C#构建的。
Perl/Python怎么样?许多Windows和Linux上的应用程序都是使用这些语言构建的。
D语言怎么样?它总是一个很好的语言,但遗憾的是它与本地C++的交互不够顺畅。
部分原因是因为C语言是第一批被广泛采用的高级语言之一(在B语言之后)。像Java这样的语言是由公司拥有的,如果公司突然倒闭,你就看不到来自Oracle的任何更新。此外,C和C++可以转换成相对较少的汇编代码,使其更小更紧凑。
C语言最重要的哲学是你不必为你不需要的东西付费。(例如,在Java中,你有垃圾回收机制,但如果你编写一个不需要垃圾回收机制的程序,那么你就浪费了资源,并且你会以速度和效率的代价来付出。)在C语言中,如果你需要某些东西,你就自己创造它,没有浪费资源,代码更加高效(取决于程序员)。
A
和 B
语言?请引用出处。C 语言起源于 BCPL,BCPL 起源于 CPL。除非你是在幽默。 - paxdiabloB
是 BCPL
的简化版,而 C
则是 B
的修改版。如果你指的是 A
,那么你是指的 ADA
吗? - tidwall