Тёмный
Cheesed Up
Cheesed Up
Cheesed Up
Подписаться
Hey! I''m a software developer with strong interest in hardware and firmware topics.

On this channel, I look at interesting projects from across the whole stack.

Some topics I talk about:
- Embedded development,
- Programming (C, Python, Go, Rust, Java, JavaScript, Shell, You name it!)
- 3D printing
- Neovim
- Linux
- ...

If you're interested, click the SUBSCRIBE button!
Linux Containers in 41 Lines of Go
6:52
2 месяца назад
Compiler in 191 Lines of C | tinyc
6:16
3 месяца назад
New Iterators in Go 1.23
6:26
3 месяца назад
Write a Custom Neovim Dbee Layout Using Lua!
9:13
5 месяцев назад
Manage Docker Compose Projects with ease!!
5:50
5 месяцев назад
Computer Mouse from SCRATCH With RUST Firmware!
11:09
6 месяцев назад
Install Fusion 360 on Arch LINUX!!!
5:41
3 года назад
Комментарии
@Ahamshep
@Ahamshep 7 часов назад
GIL doesn't look that tough. I could kick his ass.
@vidal9747
@vidal9747 10 часов назад
Python is similar to Fortran in concept. Fortran was easy to use (much easier than Assembly, which were prevalent at the time or C, that came after a while.), so researchers and people who are not computer scientists but need to code liked it. Python, when using the right libraries, is fast enough for a lot of scientific computing. The problem is that, like Fortran, you have to pull up C when you need to do something more advanced or if Python is too slow for your purpose. Python is still a very good glue between various languages. Basically, if Python is faster, researchers in every area that isn't computer science are going to have a better time with their code. Fortran was easy to use and fast. If python becomes fast, even if it is not as fast as Fortran, it will keep being used. Julia was born with this premise.
@sterlingphoenix
@sterlingphoenix 11 часов назад
This is the third time I've seen someone tough filename before editing it... and I'm not sure why. vi (or any other editor) will happily save the new file for you.
@k98killer
@k98killer 21 час назад
Snake lang has some of the nicest syntax imo. It is far easier to read and comprehend existing code than other languages that have more complex syntax (e.g. Rust Thing[Something]<T<W>>'A), which is important if you care about maintaining code bases. The main downside to Python is the low performance compared to all the other languages -- for example, when I ported my bluegenes library from Python to Go, I got a 100x speed improvement before doing any Go-specific performance tuning and memory optimization. But I still love Python and write the majority of my FOSS projects in it, so I'm kind of stuck with it for now. Hopefully they figure out a solution that removes the GIL without making the runtime twice as slow. Iirc, Guido said that the GIL was a solution for a time when single-core performance was all that mattered, and More's Law was still in effect for individual CPU cores.
@4lxprime730
@4lxprime730 21 час назад
The video was amazing, thanks!
@morglod
@morglod 21 час назад
my mental safety rules declines this proposal use javascript for safety
@zoom0211
@zoom0211 День назад
1:05 and 2:34, GIL was not introduced just for simplicity but for the SPEED! Without a global lock you'd need to introduce many local ones which make single-threaded processing slower. Your example proves that!
@cheesed_up
@cheesed_up День назад
Interesting, I really didn't know that!
@fraidoonhu9284
@fraidoonhu9284 2 дня назад
I don't care about speed. But Python syntax is the unforgiven mistake human beings ever made. Specially when u use lambda function.
@cheesed_up
@cheesed_up День назад
I really didn't know that so many people hate python's syntax :o
@zyphtron
@zyphtron День назад
I love lambda functions and Python syntax!
@مقاطعمترجمة-ش8ث
@مقاطعمترجمة-ش8ث День назад
@@cheesed_up Python come on time there was no alternative to VB & C# many projects didn't need the speed of C/C++, and they need simplicity of C# and it is massive .Net Library, I know many ppl will hate me saying this, but I still prefer using PHP from cmd applications/script rather using Python, Specially in Python you have to include a library to do every basic stuff e.g. getting user inputs from command line, or running a web server, or executing external command, PHP got it bad reputation because of it early (legacy) projects spaghetti codes, and it being too easy many newbie programmers write terrible codes on it ( _and got their sites hacked_ ) , and not implementing OOP since it beginning.
@Michallote
@Michallote 19 часов назад
I believe you might have been too much on a particular language, id take python over javascript any day
@tonylangworthy5479
@tonylangworthy5479 2 дня назад
Stop right here bro... Until Pyton syntax changes, idc how fast it is. Facts!
@cheesed_up
@cheesed_up 2 дня назад
Not sure if I agree, but I understand python's syntax is not everybody's cup of tea :)
@zyphtron
@zyphtron День назад
I disagree. Python's syntax is why many like me love Python. Compared to Java syntax, Python is heaven.
@brennancurrier806
@brennancurrier806 День назад
The syntax is fine, it’s why I use it.
@mathgeniuszach
@mathgeniuszach 2 дня назад
Is it... really that hard to use smart pointers? Stick to unique pointers and bounds-checked containers for nearly everything and you'll be fine. Macro them too so they're shorter. This is the way I write all my C++ code nowadays anyway, and I've never had issues.
@cckeysify
@cckeysify 2 дня назад
i hate python its an ass language
@MrAlanCristhian
@MrAlanCristhian 2 дня назад
The biggest drawback of mojo is the same one when python 3 came out: it's a different language. The python 2 to 3 transition should be a good reminder of why backward compatibility is important. In an interview with Lex Fiedman, Guido Said cpython incompatibility was the main reason that killed those project that tried to make python faster. And mojo is doing the same mistake. So, I don't see a bight future for mojo. Maybe I am wrong, time will tell. The Faster-CPython team has some great optimization ideas that (hopefully) will be implemented on 3.14. Look at 701 issue on the faster-cpython repository for a quick recap of what they are doing.
@pretro6136
@pretro6136 2 дня назад
3:27 okay, I love your content, but maybe try and learn more before you say something that is just false. an interpreter takes in code and runs it, a COMPILER (not a JIT compiler) takes in code and turns it into machine code, and a JIT compiler runs in the background and updates the existing machine code according to the changes made. usually interperters are fast during build-time, but requires every client to also have a copy of the interperter, a compiler is slower than interperters, but works for every client with the same OS/architecture as you, and a JIT compiler is slower than both for the first compilation, but becomes extremely fast for every compilation after.
@cheesed_up
@cheesed_up 2 дня назад
Thanks for this comment. Oh, man - I went and watched this part again and it's really just a mess, so I really appreciate your feedback. It was a genuine error, so I won't even try to justify it. I'll pin your comment, so hopefully as much people as possible see it. It's not that I don't know what a JIT compiler is, it's just that this video took me pretty long to make. While reding the script I just didn't catch the fact that there is way too little context here and the sentence was very poorly designed. I'll really try to catch stupid mistakes like this one next time. Thanks again for this!
@vidal9747
@vidal9747 10 часов назад
Not exactly. In fact, the JIT becomes faster if it cashes machine code. But even if it does not, it becomes faster after a while. It looks at the code ahead of time and compiles it. So it can improve performance in the first run. There is an effect that JITs take a while to heat up, it has to start the JIT and after a while start running the code. That's why you shouldn't use them in lambda computing. Saying a JIT is slower in the first run is factually wrong. It depends on the size of the code. If you run a longer script using the JIT, it will be faster than interpreted. Edit: my comment applies to mature JITs. It is possible that some stuff is slower than interpreted, as the Python JIT is not ready yet.
@pretro6136
@pretro6136 9 часов назад
@@vidal9747 saying JIT is slower on the first run was a mistake, but everything else you said was true for ahead of time compilation, not just in time compilation. python's compiler currently only has a just in time compilation.
@ArthurSchoppenweghauer
@ArthurSchoppenweghauer 4 дня назад
I'm always suspicious of anything as overhyped as Mojo. In fact, that's all programming languages seem to be now driven exclusively by hype, not by observable performance indicators recorded after something mature is produced in them. Things like the TIOBE index and the youtube "programming" bubble also hint at this hype over substance approach to programming languages.
@oj0024
@oj0024 5 дней назад
I'm prettt sure projects like LLVM CIRCT and IREE used MILR before mojo
@raspotin2
@raspotin2 4 дня назад
CIRCT is also from the mojo creator who also created MLIR and LLVM, it is a pretty small world at this level.
@ahq_founder
@ahq_founder 5 дней назад
Now just add everything from rust to guarantee C++ will be 80%+ safe
@blackIce504
@blackIce504 6 дней назад
Love it, this should jaz up my scripts that i have for things.
@dzkoen62
@dzkoen62 6 дней назад
cppfront > carbon
@DataPastor
@DataPastor 7 дней назад
Its license forbids starting any ML/AI-focused cloud services / SaaS, so I don’t even take a look. It is a huge disappointment from Chris Lattner.
@cheesed_up
@cheesed_up 6 дней назад
I didn't know that!
@raspotin2
@raspotin2 4 дня назад
I think the licence is basically so they don't get copied by bezos the next day. in the discussion they said if you want to make a commercial AI/ML infrastructure, just approach them.
@DataPastor
@DataPastor 4 дня назад
I know but such a license immediately kills the adoption of a language. Nobody takes the risk.
@raspotin2
@raspotin2 4 дня назад
@@DataPastor I think it's a fair point but the alternative is probably that they will go bankrupt when AWS & Azure & GCS basically copies them and drive them out the market. Mojo is till now no Go or Swift so they need to make a language and a profitable product to keep the lights on.
@melodyogonna
@melodyogonna День назад
If it helps, Chris has said that whether it'll be completely opensource is a matter of "when", not "if". They just have to protect themselves at this early stage.
@idiomaxiom
@idiomaxiom 7 дней назад
they didn't *start* with concurrency?!?
@xanderplayz3446
@xanderplayz3446 7 дней назад
1:03 Wait, is that a Portal 2 Extras video at the top-right?
@cheesed_up
@cheesed_up 7 дней назад
I have no idea. But it looks like it could be :)
@sizur
@sizur 7 дней назад
That "will Z" meme? Much more suspicious with that accent.
@cheesed_up
@cheesed_up 7 дней назад
I honestly have no idea what you are talking about :')
@sizur
@sizur 7 дней назад
@@cheesed_up The putler meme, when you said "we'll see".
@cheesed_up
@cheesed_up 4 дня назад
Oh... :D
@blaisepascal3905
@blaisepascal3905 7 дней назад
I do not really like the synthax
@cheesed_up
@cheesed_up 7 дней назад
Have you seen the safe C++ video? :D
@blaisepascal3905
@blaisepascal3905 5 дней назад
@@cheesed_up Oh woaw, ok you got me. I apologize! Nice video btw
@its_code
@its_code 7 дней назад
❤❤❤😅😊
@tubeincompetence
@tubeincompetence 7 дней назад
Not sure what to think. Probably a bit interesting. But I don't want to program in Python. :)
@melodyogonna
@melodyogonna 7 дней назад
Mojo errors are values, try/except is a syntax sugar. When you take an owned argument a copy is not made if the value is not used by the caller again.
@cheesed_up
@cheesed_up 7 дней назад
Didn't know about the try-catch being sugar - thanks. I thought I said in the video that if no one uses the variable after it's taken by the function, the copy is not made. Looks like I wasn't clear enough :)
@jean-michelgilbert8136
@jean-michelgilbert8136 8 дней назад
Now it needs a Bython because significant whitespaces suck and make writing code super slow because you always have to check for whitespace errors which is a super dumb misfeature of Python. Ugh!
@cheesed_up
@cheesed_up 7 дней назад
Not sure if I agree with that statement, but I get why one would dislike the whitespace rules :D
@hanteroes
@hanteroes 7 дней назад
I don't get this criticism. What the hell are you writing your code with? Notepad? Every modern ide will take care of the white spaces automatically
@coneryj
@coneryj День назад
@@hanteroes in “the old days” IDEa just weren’t as smart if you even used one… so indents could get all screwed up if you moved code around.. copy/paste spaces vs tabs, etc you could accidentally muck up your code with a copy/paste and mot easily recover
@MrAlanCristhian
@MrAlanCristhian 8 дней назад
A lot of insane optimizations will come with python 3.14. You can read an abstract on the 701 issue of the faster-cpython repository. They even has a plan to reduce reference counting overhead. The future python garbage collector is way to overlooked IMO.
@UnVFunLimited
@UnVFunLimited 8 дней назад
No Bloat for an undelivered language?
@richardbennett4365
@richardbennett4365 8 дней назад
Perhaps his next language will be the python-like Codon. Maybe it's better than Mojo. 🔥
@cheesed_up
@cheesed_up 8 дней назад
Codon looks like an interesting project, thanks for sharing. However, the way I see it is it's just an implementation of Python, whereas Mojo is basically a different language, that happens to share the Python's syntax. Codon looks promising too!
@xanderplayz3446
@xanderplayz3446 7 дней назад
@@cheesed_upYou should also try out Ocen. It’s very new, and it’s like C, but modern, which shares a lot of Python syntax.
@thomashenden71
@thomashenden71 8 дней назад
Tired of waiting for an uknown time watching forever spinning wheels? ❂ Well - let’s MPBGA! "MAKE PROGRESS BARS GREAT AGAIN!" 😄
@cheesed_up
@cheesed_up 8 дней назад
I love this!
8 дней назад
A superset of C++, this is like infinity times infinity. And there is probably already something to help with memory safety, smart pointers and containers to name a few.
@cheesed_up
@cheesed_up 8 дней назад
Supersets all the way down!
8 дней назад
@@cheesed_up yes! infinity-fold Cartesian products!
@cckeysify
@cckeysify 9 дней назад
not an other language
@dude2542
@dude2542 9 дней назад
I dislike the syntax, i dislike that it wants to do 300 things at once, and I do not understand what the technology do. Other than that it is a nice idea to have a language that can do everything.
@cheesed_up
@cheesed_up 8 дней назад
I see your point. I felt the same way before trying it out - I must say that the syntax becomes a lot easier on the eyes after a while :D. But yeah, we'll see how it turns out...
@trejohnson7677
@trejohnson7677 8 дней назад
lol i dislike the fact you can’t decide what your priorities are. thankfully you’ll continue to not be relied upon to contribute anything worthwhile, anywhere, likely ever.
@melodyogonna
@melodyogonna 7 дней назад
It doesn't want to do 300 things at once. it is actually quite minimal as far as these things go
@dude2542
@dude2542 7 дней назад
@@melodyogonna bro the premise of the compiler is that it is easy to implement other platforms
@melodyogonna
@melodyogonna 7 дней назад
@@dude2542 you mean targeting these other architectures? That's more a function of MLIR than Mojo. It is a capability unlocked by the underlying technology.
@gustavojoaquin_arch
@gustavojoaquin_arch 9 дней назад
It's bloated
@empathy_monster
@empathy_monster 9 дней назад
I'm really looking forward to Mojo as an alternative to Rust for general purpose. Also, I think the compiler team plans on implementing linear types.
@alfredgreem6872
@alfredgreem6872 9 дней назад
Mojo the bloat
@tru2thastyle
@tru2thastyle 10 дней назад
C++ just can’t be saved, it’s an eyesore.
@humanistreason
@humanistreason 12 дней назад
When people think smart pointers == safety, or thar rhis matter is just people wanting to use rust, you see how important the discussion is. I like C++, but it is true that without breaking changes tbe language will never catch up with real modern techniques and what toolig can do. New librart features cannot solve it, the language must enable things like safety, good straightforward meta programming and assist tooling functions
@RaymondT-ln6li
@RaymondT-ln6li 14 дней назад
From Primeagen
@aspiring_millionaire
@aspiring_millionaire 14 дней назад
I like how the video on Theprimetime channel reacting this video of yours has more views and impressions than the original That guy didn't even include a link to your video because God forbid some of his viewers would come here and consume the content from its source, classic RU-vid debauchery and it's so infuriating how some people can just steal away other's ingenuity and their ideas to make some low effort reaction videos
@wilsonwilson137
@wilsonwilson137 14 дней назад
He did include a link. That's how I got here.
@cheesed_up
@cheesed_up 13 дней назад
I know what you mean, however he did include a link and gave a shoutout! But yeah, youtube is weird :)
@MikkoRantalainen
@MikkoRantalainen 14 дней назад
Right now it seems that to convert an existing class from C++ to Safe C++ only requires rewriting about 95% of all the lines. And the lines that do not require rewriting are mostly "{" and "}" if you use Allman-8 formatting. I wish the syntax gets much nicer or it will be easier to use Rust and write a bridge between C++ and Rust in C.
@coshvjicujmlqef6047
@coshvjicujmlqef6047 14 дней назад
fuck this junk
14 дней назад
At least it is opt in. When I need safety I just use Rust
@vxvx6240
@vxvx6240 14 дней назад
it would be cool if they just would stop adding stuff to c++, but start deleting shit. I mainly write C++ and in my opinion the main problem is that its tooo fucking bloated. Noone uses every C++ function.
@DoDoENT
@DoDoENT 14 дней назад
I think we'll sooner have LLM's capable of transforming large C++ codebases into Rust than this proposal getting accepted and implemented by compilers on all platforms.
@gurupartapkhalsa6565
@gurupartapkhalsa6565 17 дней назад
This is called putting the cart before the horse. Hardware is inherently unsafe, the CPU is a machine, and it is capable of unsafe operation. A subset of the machine's capabilities will always be an inferior representation of the maximum. Even assembler is already a subset, because most of us acknowledge that the micro sub-operations such as fetch, cache, and the use of ALUs is well tuned for the machine specs as they are given to us. Making a declaration such as, "You are not allowed to address memory yourself," as a general rule, is simply asinine. You may believe in the future, but some of us are actually responsible for hardware, and someone needs to write your compiler.
@cheesed_up
@cheesed_up 16 дней назад
Very interesting take. I agree with you to some extent, however, I still think that putting safety constraints to a language is beneficial. If C++ is a language for this kind of constraints.. that's another topic :D
@owenpierce
@owenpierce 17 дней назад
echo with -n flag won't print the trailing new line character similar to printf for anyone wondering
@cheesed_up
@cheesed_up 16 дней назад
It's not posix compliant though :/
@geostorm8192
@geostorm8192 17 дней назад
Just use C# or Java at that point?
@cheesed_up
@cheesed_up 16 дней назад
I know what you are trying to say... but not a big fan of any of these two though :')-.
@geostorm8192
@geostorm8192 16 дней назад
@@cheesed_up **Sadge C# noise*
@riufq
@riufq 18 дней назад
I'm newbie at programming. If carbon have memory safety. What's the point using rust?
@cheesed_up
@cheesed_up 18 дней назад
Carbon is not yet a finished language. When it's done (if it's done) then we'll see how it does in comparison to Rust and C++ :D