I can maybe believe Linus Torvalds knows what the assembly will look like most of the time, but were not writing code for the PDP11 anymore. C no longer maps to modern CISC and RISC architectures cleanly. Except embedded systems. It works well for us.
@@BFedie518 nope. There are parts being rewritten in Rust. For some reason Rust devs like that. It really is a mistake. Rust should have never been introduced in the kernel. The ONLY thing that would make sense is support for kernel modules in Rust. Not Rust code inside the monolithic kernel.
This is an old clip. You can contribute to the linux kernel in C and Rust, so seems like since then there has been a language to at least come close to C for him
Sure you can develop an OS in Rust. Torvalds claim was not that you can not create an OS in other languages. His claim was that C is best suited for it. Rust is a rather good contended. But you can develop an OS in many languages, even higher-level languages. For example, gViso is close to an OS and is written in Go. JNode is a complete OS written in Java, with just some sprinkles of C. Cosmos is a Kernel written in C#. NodeOS uses parts of the Linux kernel but is an OS using Node.js for the whole userspace.
I wish what Linus said was true. It _used to be_ true. Nowdays, not so much. Even at their lowest settings, compiler optimizations have ruined any 1:1 comparisons between C and what it disassenbles to.
I don't know what happened inbetween, recently I've been searching about him and found two things, first is: he got upset on people who want rust to be used for linux kernel development and the second is that its decided to started contributing rust in linux kernel development.
C doesn’t introduce too many abstract features that take you away from how the hardware actually works. It is basically a portable, more comfortable version of assembly. It forces/enables you to think about your data instead of abstract concepts like classes. Since C is relatively close to assembly you don’t have as much overhead and it’s easier to know what the compiled program will actually be doing. What he means is that if you know assembly and how a computer works, C‘s design decisions make sense and if you’re reading C code it also makes sense.
C is the best language for Linus because he predict that the assembly is going to look like when he writes is, unfortunately he can't predict what the assembly is going to look like when hundreds of other people write it.
You were not listening. He never said anything about prediction. He said when he reads C code, he understands what the resulting assembly will look like. The coder is irrelevant. The point is that C is such a simple language, all of the fundamental keywords and operations could be done directly in assembly. Thus you know what the assembly will look like when you see them.
@@NewLondonMarshallnothing has been proven in that respect. Prohibiting C++ has always been an aesthetic choice made by Linus for Linus. And there are hypothetical advantages and disadvantages that come with it like keeping C++ developers out of the codebase... But also missing out on some of the strong typing.
@@Falcristprohibiting cpp got rid of every foot gun that the kernel would have. All c code needs is c code. Cpp codebases are a mess of different versions of cpp
@@RenderingUser you can pick a singular version of C++ and stick to it. Doing that would ultimately create a defacto default version for systems level programming. That version would remain stable even as the rest of the language continued to evolve.
if we are going to be honest for linux to be adopted by ordinary users they would need to do major overhaul adopting system integration similar to chrome os where all native support for (best example fyde os ) chrome and android application is separated from linux container but its easy to install different distribution from sources (those being open source and bin almost completely similar to each thanks to snap ,app image and other tools to translate distribution install packages to other distribution but still slightly different because of their install maintenance packages , for example you can install fedora or debian or even arch or gento andfirst thing you will see after it will be their version of chrome os fork with linux container that use universal packages but system itself use their own distro packages (deb, yum ,rpm ...) same with other desktop environments and applications (I'm not an expert , besides that is my personal opinion ) , more standardization and integration with google services and application .
That's not how it's supposed to be lol. Any compiled language will eventually get converted to machine code (whose human readable equivalent is assembly). But yeah, if compiler is written very badly & you know more optimization, then go with assembly xD
Bro doesnt think in english. He thinks in assembly💀
i dont think in english i think in serbian. but i know programming languages more than communicating languages.
only assembly? Not machine code? What a scrub
@@xellestar Or in brain f*ck☠️
@@xellestari think in hex
For a compiler, Linus speaks English very well.
Lol, man's a whole Kernel
@@J-S_93 right
@@J-S_93A kernel is useless without GNU to make use of it.
@@CurrentlyObsessively kernel + GNU plus Linux. Interwoven, intertwined, intergenerational, intergalactic.
@@J-S_93 What you're referring to has linux is really GNU/Linux which has a kernel at the core of linux.
C-gma male
W
🗿🗿🗿🧠💥
best comment
He probably knows the machine code as well 💀
every single one of them
He used to write machine code because for five years he wasn't even aware what an assembler was. This is what he had himself said.
@@shees1993The only objectively correct way to program
😂😂😂
@asdprogram And all the zeros too.
And if I see the assembly language I am almost looking at the hex file
@@davida3283 It is largely made up of hex, lol.
He probably dreams in assembly
Proud my first language is C
@tomie C is easy
You are a dinosaur
I can maybe believe Linus Torvalds knows what the assembly will look like most of the time, but were not writing code for the PDP11 anymore. C no longer maps to modern CISC and RISC architectures cleanly.
Except embedded systems. It works well for us.
Bro writes his dreams in C using Vim
Wise Linus ponders,
Rust's promise of new starts,
Past left in the dust.
When was the video shot? Especially considering the advancements in Zig, Rust, Nim, D (with betterC flag), TinyGo, etc.
2012
They introduced Rust in Linux
What about Holy C isn't that one good?
he now accepts that they reprogram the kernel in rust ...
Nothing is being rewritten. It's just some of the *new* stuff that's in Rust (AFAIK).
@@BFedie518 nope. There are parts being rewritten in Rust. For some reason Rust devs like that. It really is a mistake. Rust should have never been introduced in the kernel. The ONLY thing that would make sense is support for kernel modules in Rust. Not Rust code inside the monolithic kernel.
@@hansu7474 exacly
@@jhny0yes this recording is quite old
@@obamagaming3802pre 2015
Just wait for Zig comptime feature to be perfectioned...
COBOL, Fortran, Pascal 🥰
I hope you are joking. Those aren't even usable for os dev
The C programming language is awesome isn’t it
Swordfish
Appearantly it’s rust, which he states in a video which is almost older than 10 years than this one
Linus is a kernel guy. That is why what only matters is low level language.
We can dev a os in rust. Why i said rust is its close to c...
This is an old clip. You can contribute to the linux kernel in C and Rust, so seems like since then there has been a language to at least come close to C for him
Sure you can develop an OS in Rust. Torvalds claim was not that you can not create an OS in other languages. His claim was that C is best suited for it. Rust is a rather good contended. But you can develop an OS in many languages, even higher-level languages. For example, gViso is close to an OS and is written in Go. JNode is a complete OS written in Java, with just some sprinkles of C. Cosmos is a Kernel written in C#. NodeOS uses parts of the Linux kernel but is an OS using Node.js for the whole userspace.
I wish what Linus said was true.
It _used to be_ true.
Nowdays, not so much.
Even at their lowest settings, compiler optimizations have ruined any 1:1 comparisons between C and what it disassenbles to.
if compiler optimizations are changing your code that much your code isn't optimal
Turn it off
@@User948Z7Z-w7n gcc with an optimization flag of `-O0` is still "on".
Nowadays we also have rust
With all due respect I don’t know if this statement stands true since a with compiler optimisations.
He see binary every time.
I don't know what happened inbetween, recently I've been searching about him and found two things, first is: he got upset on people who want rust to be used for linux kernel development and the second is that its decided to started contributing rust in linux kernel development.
C is the best
I am having trouble understanding. What does he mean, when he says "If you think like a computer"?
To think like how to give instructions(add,subtract) to computer.
C doesn’t introduce too many abstract features that take you away from how the hardware actually works. It is basically a portable, more comfortable version of assembly. It forces/enables you to think about your data instead of abstract concepts like classes. Since C is relatively close to assembly you don’t have as much overhead and it’s easier to know what the compiled program will actually be doing. What he means is that if you know assembly and how a computer works, C‘s design decisions make sense and if you’re reading C code it also makes sense.
C is the best language for Linus because he predict that the assembly is going to look like when he writes is, unfortunately he can't predict what the assembly is going to look like when hundreds of other people write it.
You were not listening. He never said anything about prediction. He said when he reads C code, he understands what the resulting assembly will look like. The coder is irrelevant. The point is that C is such a simple language, all of the fundamental keywords and operations could be done directly in assembly. Thus you know what the assembly will look like when you see them.
C++ should be used instead of C at any level above drivers.
The Linux kernel has proven this wrong.
@@NewLondonMarshallnothing has been proven in that respect.
Prohibiting C++ has always been an aesthetic choice made by Linus for Linus. And there are hypothetical advantages and disadvantages that come with it like keeping C++ developers out of the codebase... But also missing out on some of the strong typing.
@@Falcristprohibiting cpp got rid of every foot gun that the kernel would have. All c code needs is c code. Cpp codebases are a mess of different versions of cpp
@@RenderingUser you can pick a singular version of C++ and stick to it.
Doing that would ultimately create a defacto default version for systems level programming. That version would remain stable even as the rest of the language continued to evolve.
@@Falcrist stick to a singular version? Which version was that. One from ages ago? How more developed would it be compared to c?
Now so many think they need to learn C asap, you better learn some c language design or assembly first so you know what he is talking about.
That’s something to expect from an embedded developer, not so impressive.
smegma grindset
C
Ats
😀❤️
I assume this is an old clip because Rust is amazing.
I C...
RUST
❤️💯
them adding the rust cpu drivers in 6.0:
Rust wasn't a thing yet when this video was recorded.
Rust is a piece of shit c is still very relevant for every hardware oriented software nothing can replace C
This interview was done when Rust was more immature
if we are going to be honest for linux to be adopted by ordinary users they would need to do major overhaul adopting system integration similar to chrome os where all native support for (best example fyde os ) chrome and android application is separated from linux container but its easy to install different distribution from sources (those being open source and bin almost completely similar to each thanks to snap ,app image and other tools to translate distribution install packages to other distribution but still slightly different because of their install maintenance packages , for example you can install fedora or debian or even arch or gento andfirst thing you will see after it will be their version of chrome os fork with linux container that use universal packages but system itself use their own distro packages (deb, yum ,rpm ...) same with other desktop environments and applications (I'm not an expert , besides that is my personal opinion ) , more standardization and integration with google services and application .
What about all the people who want nothing to do with google services and applications on their PC, because they're all hot trash?
100% agree. C is coding. The only real programming language I understand. Sadly for work I use Python, luckly gpt saved me to write it.
Why nobody mentions Pytan?
If Linus was a black man, he'd definitely be a Compton Crip the way he loves C.
ASM is the best (8086's)
That's not how it's supposed to be lol.
Any compiled language will eventually get converted to machine code (whose human readable equivalent is assembly).
But yeah, if compiler is written very badly & you know more optimization, then go with assembly xD
Fax. Rust and pythons can make cool programs, but OS is something that needs real system language like C.
Rust is now in the kernel
IN RUST WE TRUST 🦅🦅🦅🦅🦅🦅
Oh this is why?now C kinda makes sense.Still cognitive overload problems with it😅
u c I've yet to c a language that comes even close to c u c, when you c c u c what the computer do u c. c that's why we use c.
RUST