4 ms·
While I'm nowhere near as talented a programmer as both Torvalds and Cook I disagree, perhaps with both. We have tons of crap anywhere due to bad code monkeys,
by xte 8y ago
While I'm nowhere near as talented a programmer as both Torvalds and Cook I disagree, perhaps with both.
We have tons of crap anywhere due to bad code monkeys, kernel included, and these days with actual computing power keep using low level languages is a nonsense.
I'm not a fun of Go nor Rust and I can't say how hard can be write a modern kernel in a functional language like a Lisp or Haskell (thou in the past we have had LispM) however IMO we need to use high-level language to develop the same thing with less complexity and much more readability. Sooner or later any complex project will became so complex that even in FOSS world nobody can really know it enough to master it's evolution.
- jacquesm 8y agoThe problem is that such a high level language hides the complexity, making it much harder to reason about subtle side effects.
- xte 8y agoAncient Alto workstations or LispM are build around high level languages and they were FAR superior to any contemporary competitor... So technically IMO that's not a real arguments. Maybe a cost arguments but that's a really complex point to evaluate.
- zozbot123 8y agoLisp and Haskell use obligate GC, which is a non-starter in any sort of low-level or latency-sensitive programming. Haskell uses laziness, which makes memory allocations very hard to reason about. Lisp uses dynamic typing, which means you have to dispatch on literally every single variable access... There are lots of these hidden overheads - you can write a kernel in a higher-level language than C (see Redox as an example) but it really can't be the usual sort of quick-and-dirty application-programming oriented "higher-level language"
- varjag 8y agoLisp is strongly typed and uses dynamic typing. Compiled Common Lisp code absolutely does not dispatch on every variable access. And there of course have been and still are operating systems written in Lisp without a single line of C. Some of them even run on decidedly non-exotic hardware like x86_64 or arm64.