为啥C语言不老

在编程语言中,C语言已经快要50岁了。别的语言到了这个岁数基本上已经没人用了。比如Haskell、汇编等。但是,C语言不但没有被抛弃,反而总是保持和Java争夺第一名,这是为什么呢?我们在文章《为什么说“人生苦短,我用Python”》说了一系列Python的好处,C的不方便的地方,其实也是有情可原的。毕竟C是使用B语言开发的,语法要比较难,甚至它最开始的名字叫做new B。(你可以在下面找找B语言,早就没有了。)而Python是用C开发的,要是还是像C一样估计就要被骂了。所以Python添加了很多实用的函数。而C语言?能把C语言写出来就很伟大了。反正它的源代码是公开的,你让我改?自己改去。

首先,我们要知道,很多应用程序都是用C或者C++开发的,而C++又是基于C。所以,一旦C语言被抛弃,这些应用程序都无法维护。你可能会说“换一门语言呗”,其实大部分编程语言都是基于C的,你换谁?而且这些语言远远比不上C的速度。虽然Java速度可以和C比较,但是Java占用内存实在太大了。如果你不介意打开一个应用需要一个小时的话并且冒着你的内存溢出的危险,你可以使用Java开发的应用。(我的电脑上有一个Java的编辑器,开启差不多要十分钟。我还不如用记事本写代码嘞)换汇编?拜托,你真的知道什么是汇编吗?汇编连写个Hello World都要这样:

DSEG    SEGMENT
MESS    DB   'Hello,World!' ,0DH,0AH,24H
DSEG    ENDS
SSEG    SEGMENT PARA STACK 
        DW  256 DUP(?)
SSEG    ENDS
CSEG    SEGMENT
        ASSUME  CS:CSEG,DS:DSEG
BEGIN:  MOV AX,DSEG
        MOV DS,AX
        MOV DX,OFFSET MESS
        MOV AH,9
        INT 21H
        MOV AH,4CH
        INT 21H
CSEG    ENDS
        END  BEGIN

你能不崩溃?毕竟汇编是最开始的人们使用1010开发的,别骂人了。

其次,操作系统基本上都是使用C+汇编开发的,你要把C撤下来就别用Windows了,别用MacOS了,别用iOS了,干脆去打孔吧。

你会想,为什么非要用C开发操作系统?C++不好吗?Java不好吗?其实一方面是前面说到的速度问题,还有就是在开发操作系统的时候,你都不能直接输出字符,还需要自己写字体。这样的话,你用C++图什么?用Java图什么?还不是一样?

还有就是,C语言的小巧。

看到这里,你可能会怀疑我对小巧的定义。你看一看这段程序就知道了。这是一段HelloWorld。

C:
#include<studio.h>
int main(void){
  printf("Hello World");
  return 0;
}
或者
#include<studio.h>
int main(void){printf("Hello World");return 0;}


Java:
public class HelloWorld{
  public static void main(String[] args){
    System.out.println("Hello World");
  }
}
或者
public class HelloWorld{public static void main(String[] args){System.out.println("HelloWorld");}}

明白了吗……真的是“Java有一种与生俱来的天赋,就是将小型应用变成大型的。”

这是因为,Java的思想是每一个程序都要有一个对象,就是说这个东西是活的(当然不是真的),也就是面向对象的编程。每一个对象都会生成一个.class文件,然后再用Java执行。C就没有。C的程序从main函数开始并结束,而且C是没有类这个概念的。就是说,你想让C面向对象都不行。

你明白了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值