C Language
A general-purpose programming language developed by Dennis Ritchie in 1972. It serves as a foundational language for systems programming and embedded development, and is known for high performance, portability, and low-level hardware control capabilities.
Core Facts
Timeline (last 90 days)
Lint is a general term for static code analysis tools, originally used in C to detect suspicious code patterns that may cause bugs, and today mature implementations exist in most language ecosystems (such as ESLint, RuboCop, Clippy).
The HN comments present two voices: one side holds that FP performance is already close enough to C, especially with clear advantages in development efficiency and safety; the other emphasizes that in domains demanding extremely high determinism, such as embedded and real-time systems, C remains irreplaceable.
The OCaml runtime uses a relatively simple two-generation GC, offering less tuning space but more predictable behavior, whereas C has no runtime overhead at all but also loses automatic memory management and lightweight concurrency primitives.
Commenters noted that for highly concurrent network services, the lightweight process model of FP languages (such as Erlang) may surpass C in throughput, but latency behavior varies.
C still holds the advantage when fine-grained control of memory layout or low-level bit manipulation is required.
In the HN discussion, some developers shared benchmark results, such as numerical computation programs written in Haskell or OCaml achieving performance nearly on par with C after optimization.
The cost of structural sharing lies in extra pointer indirection and poorer cache locality, which is one reason pure FP lags behind C on some memory-intensive workloads.
According to discussion in the HN comments, FP performance can approach C in some scenarios, but this depends on the specific implementation and workload type.
In pure functional programming, every modification requires creating new data, leading to frequent memory allocation and garbage collection (GC), whereas C allows manual memory management and in-place modification for higher efficiency.
Strings embedded in C programs can pass through the decompilation process of tools like Ghidra and land intact in the context window of an LLM-based reverse-engineering agent.
21 more timeline events
All Facts (20)
The C language was designed and invented by Dennis Ritchie in 1972 on the basis of the B language
65%VerifiedThe C programming language was created in 1972.
65%UnverifiedC语言的演化路径为BCPL→B→C
95%Unverified构建C程序分为编译(将源代码编译为.o目标文件)和链接(将目标文件链接为最终二进制文件)两个阶段
95%UnverifiedJ语言的print函数统一使用单个百分号 % 作为占位符,不需要像C语言printf那样用%s、%d等区分类型
90%UnverifiedC语言没有像npm、pip那样的语言级依赖管理器,所有依赖需要手动安装
90%Unverified1979年Stephen Johnson为C语言编写了第一个lint工具
85%Unverified绝大多数嵌入式固件仍以C语言编写,包括汽车ECU控制单元、工业PLC、医疗设备和物联网传感器
85%Unverified在资源受限的MCU上,通过函数指针、结构体封装等C语言特性即可实现清晰的模块边界和分层架构
80%UnverifiedC++、Java、C#、JavaScript都以C语言为基础发展而来
75%UnverifiedThe evolution path of programming languages moves from imperative to declarative: from machine code to assembly to C to Java to Python, with each generation moving closer to natural language and declarative intent.
60%UnverifiedLint is a general term for static code analysis tools, originally used in C to detect suspicious code patterns that may cause bugs, and today mature implementations exist in most language ecosystems (such as ESLint, RuboCop, Clippy).
50%UnverifiedIn the HN discussion, some developers shared benchmark results, such as numerical computation programs written in Haskell or OCaml achieving performance nearly on par with C after optimization.
50%UnverifiedC still holds the advantage when fine-grained control of memory layout or low-level bit manipulation is required.
50%UnverifiedCommenters noted that for highly concurrent network services, the lightweight process model of FP languages (such as Erlang) may surpass C in throughput, but latency behavior varies.
50%UnverifiedIn pure functional programming, every modification requires creating new data, leading to frequent memory allocation and garbage collection (GC), whereas C allows manual memory management and in-place modification for higher efficiency.
50%UnverifiedAccording to discussion in the HN comments, FP performance can approach C in some scenarios, but this depends on the specific implementation and workload type.
50%UnverifiedThe cost of structural sharing lies in extra pointer indirection and poorer cache locality, which is one reason pure FP lags behind C on some memory-intensive workloads.
50%UnverifiedThe OCaml runtime uses a relatively simple two-generation GC, offering less tuning space but more predictable behavior, whereas C has no runtime overhead at all but also loses automatic memory management and lightweight concurrency primitives.
50%UnverifiedThe HN comments present two voices: one side holds that FP performance is already close enough to C, especially with clear advantages in development efficiency and safety; the other emphasizes that in domains demanding extremely high determinism, such as embedded and real-time systems, C remains irreplaceable.
50%