
Java
简单来讲,基本上所有的编程语言,这里说的是全部而不只是C,其核心内容为程序流控制、计算、数据结构,而这些部分都不涉及IO(输入输出)。
也就是说,几乎所有编程,其语言核心大多仅有最简单的字符输出能力。
不过,新一些的语言通常在标准库中有图形支持。像JavaScript这种浏览器集成语言,很容易就能输出图片、控制布局。但对于不绑定浏览器且有跨平台需求的语言来说,这事没那么容易。这是由于图形/图像输出需与当前软硬件平台的显示原理相绑定。明白这点后,接下来的事就顺理成章了。

C++
正是有这样的能力以及相关训练,在外行或初学者看来,C只能在黑窗口输出字符,简陋得可笑。但实际上,如今几乎所有语言都要依靠C/
C++的协助,才能够显示图形图像、动画视频。例如,
Python所依赖的pyQt、pyGTK,实际上就是Qt和GTK这两个跨平台的GUI支持库,其中Qt由
C++编写,GTK由C编写。同样,unreal、unity之类的游戏引擎,核心代码也是源于c/
C++。
linux的x - Windows、Wayland等图形基础支持均由C编写;Windows的图形子系统、DirectX等则来源于
C++。甚至在其他领域,像网络通讯中最底层的tcp/ip协议栈、socket,再到中层的libevent,也都是用c/
C++编写的。再举例来说,如今大家都清楚在
AI时代
Python成为了基础平台,各类
AI都依托
Python并基于Pytorch等
AI库运行。然而,这些库实际上无法用
Python编写,因为速度太慢。它们实际上是在C/
C++编写的CUDA之上的一层封装,甚至这层封装的很多代码依旧只能用C/
C++编写。再扯远一点,绝大多数硬件驱动是用c/
C++编写的。但是,你也看到了,这个东西专业性太强,门槛也非常高,甚至很多相关专业的学生都没机会接触。于是在他们看来,C/
C++特别落后,早就该被淘汰,只是有些守旧的人还一直坚持使用,他们觉得这种垃圾语言只能在黑窗口运行……但他们不清楚,要是没有c/
C++,绝大多数其他语言连在黑窗口下运行都无法实现,难道黑窗口是凭空出现的吗?