Francisco Jinto Fox
Francisco Jinto Fox
  • 40
  • 43 924
Why I Like Programming in C.
It's hard to explain why you like something, isn't it? I still don't feel like I have.
...
Rust will **never** be as based as Haskell.
[Timestamps]
00:00 Start
00:27 I wanted to play the "Link Opening Chest" SFX here. Please imagine it.
00:58 This is the instruction set I came up with for my bespoke CPU.
01:20 My solution in C
02:05 Couldn't figure out what would be a good example for this. cgltf, maybe?
02:15 Disclaimer: Not An Artist.
[Links]
Ken Sherrif's Blog for CPU Images: www.righto.com/2020/05/extracting-rom-constants-from-8087-math.html
Project Euler Problems: projecteuler.net/archives
cgltf: github.com/jkuhlmann/cgltf/tree/master
Some list of c++ features: github.com/AnthonyCalandra/modern-cpp-features
I like the idea of Haskell: wiki.haskell.org/Zygohistomorphic_prepromorphisms
I recorded and tried adding a few sound effects. Hopefully they weren't too much.
Переглядів: 27 463

Відео

Video Notes, Bloopers, and Miscellaneous: The Journey So Far
Переглядів 1146 місяців тому
Some random clips and notes I recorded along the way, if you're interested. Not sure *why* you would be, but... ¯\_(ツ)_/¯ I get a kick out of it.
Notes on Computers From First Principles - 3 - Networking
Переглядів 5986 місяців тому
I personally use Mullvad VPN for those activities I deem a VPN useful. I like the way they handle accounts and payment. Not sure how "qualified" I am, so take all this with a grain of salt. ... I need to improve my sound effects game. 00:00 Start 00:29 Digital Communication 01:40 We Want Networks (and Addresses) 02:50 Talking to Other People 04:04 How Does It (The Software) Work? 05:19 Working ...
Getting Blendshapes: How to Bring Face Tracking Data From VTubeStudio Into Your Own Program
Переглядів 1488 місяців тому
This is my documentation. 00:00 Introduction 00:21 Part I: Network Communication 01:10 Computers are connected 02:11 How VTube Studio Communicates 03:29 Timing 05:30 Part II: This is Graphic Stuff 07:03 cgltf to the rescue 07:28 "Shape Keys" (in Blender) 09:12 (cgltf) Data Structure (Attributes/Hierarchy) 10:24 Side note about Buffers, Vertex Buffers 11:11 The Hierarchy Comparison 11:32 Models ...
The 5,1 Mac Pro - Could You and Should You run one
Переглядів 6 тис.10 місяців тому
This is the kind of computer you explicitly know you want; you don't head out to buy a computer and end up with a cMP. I'm starting to think Apple is using "inflated" RAM/Storage upgrade costs to subsidize the M-series chips in the entry level machines. The NRE on those things has to be super high, and with non-volatile storage these days being so fast it doesn't impact the user experience... N...
Notes on Computers From First Principles- 2 - The Boot Process
Переглядів 21310 місяців тому
Notes on Computers From First Principles- 2 - The Boot Process
[Rambling] Notes on ML: Concept Introduction
Переглядів 12611 місяців тому
[Rambling] Notes on ML: Concept Introduction
My Notes on Linux from First Principles - 1
Переглядів 1,8 тис.Рік тому
My Notes on Linux from First Principles - 1
J100 - You have to regularly change your vehicles oil.
Переглядів 100Рік тому
J100 - You have to regularly change your vehicles oil.
Camera Turret 2 - Communication Inversion
Переглядів 41Рік тому
Camera Turret 2 - Communication Inversion
J100 Land Cruiser Starter Replacement
Переглядів 123Рік тому
J100 Land Cruiser Starter Replacement
Working/Coding with glTF
Переглядів 387Рік тому
Working/Coding with glTF
The turret video (I claim) everyone makes
Переглядів 103Рік тому
The turret video (I claim) everyone makes
Second attempt at simulating waves--with obstacles
Переглядів 81Рік тому
Second attempt at simulating waves with obstacles
I designed my own (very basic) computer
Переглядів 2612 роки тому
I designed my own (very basic) computer
I'd like to learn guitar someday, but got distracted writing this little teaching aid
Переглядів 512 роки тому
I'd like to learn guitar someday, but got distracted writing this little teaching aid
Reading a DICOM image to generate a 3D Model
Переглядів 5022 роки тому
Reading a DICOM image to generate a 3D Model
First shot at programming with the Kinect (and Raylib)
Переглядів 1062 роки тому
First shot at programming with the Kinect (and Raylib)
I discover Raylib and started simulating waves with it
Переглядів 2,1 тис.2 роки тому
I discover Raylib and started simulating waves with it
Building a cheap DVD holder
Переглядів 272 роки тому
Building a cheap DVD holder
SUV Internal Bike Holder - Rev 1
Переглядів 412 роки тому
SUV Internal Bike Holder - Rev 1
A Summary of the Five Worlds [Mythos 1]
Переглядів 412 роки тому
A Summary of the Five Worlds [Mythos 1]
A Brief Introduction to nCurses: Making a Menu - 1
Переглядів 1,5 тис.2 роки тому
A Brief Introduction to nCurses: Making a Menu - 1
Overview of How Computers Work
Переглядів 4992 роки тому
Overview of How Computers Work
Initial Test
Переглядів 842 роки тому
Initial Test

КОМЕНТАРІ

  • @gcxs
    @gcxs 23 дні тому

    c is cool, but it is a boilerplate at this point

  • @imbored3782
    @imbored3782 2 місяці тому

    You can always run Linux 🐧

  • @8BitInsekt
    @8BitInsekt 2 місяці тому

    Thanks for the video! Indeed, a very important statement in these times of “change for the sake of change”. The C programming language is time-tested and stable. Great software has been written in it. What you code today, you can use tomorrow and also in ten years. Try that with C++ or Rust, where ”new standards” constantly change everything and suddenly that what was once a common idiom now becomes a ”deprecated bug”.

  • @perfectionbox
    @perfectionbox 2 місяці тому

    I like C but when I use it I'm always creating OOP-like structures and needing RAII, polymorphism etc. and C++ streamlines and standardizes that. My projects are just too large for C. Oh, and I need templates; macros just won't cut it.

    • @arl-t8d
      @arl-t8d 2 місяці тому

      Womp womp, skill issue

    • @babatona
      @babatona 8 днів тому

      Use includes

  • @someguy7576
    @someguy7576 3 місяці тому

    Lmao bro what

  • @i-am-linja
    @i-am-linja 3 місяці тому

    The notion of C reflecting the fundamental mechanics of the hardware isn't quite accurate: - Hardware has no concept of a "char", an "int", a "short", a "long", or a "long long"; hardware vendors have to define those terms explicitly. - From code alone, there is no way to distinguish a value stored in a register from a value stored in memory. - Pre- and post-increment haven't mapped to any facility of hardware since the PDP-11. You may argue that these points are _less_ of a deception than the slathers of abstraction in other languages, but I'd argue they're a much more _insidious_ deception: close enough to the truth to fool intelligent people. That's how you get people today arguing that the mere concept of undefined behaviour is a fixable mistake ("just define the behaviour!"), or that the compiler should "do what [they] mean" rather than optimise their code at all. Because the fact is, C is only any good on modern machines because compilers treat programs as _abstract_ specifications of behaviour, and take as many liberties as they can to transform that specification into a reasonably performant program. Yet, C itself still thinks it's a macro-assembler, and lets you do things like increment a single-item pointer, mutate an immutable reference, or bitcast any value to any other transparently; the abstractions on which beyond-O0 performance depends leak like a colander, and the specification is a mess as a result. Now, to be fair, this is hardly C's fault: the specification was written _after_ it consumed the world, to unify the behaviour of many _existing_ implementations and programs; it simply wasn't designed for this, and retrofitting it would have required breakage that would never have caught on. (I have some _serious_ issues with the priorities of the committee, but I can't definitively refute them.) What you might be interested in is an "honestly deceptive" language: one which is still fairly close to modern hardware principles, but does not _pretend_ to expose them directly, and instead makes concessions to the _compiler_ such that it can write a better-fitting program to the target hardware. There is such a language, called Zig; I strongly encourage you to look into it.

  • @d3thtr4p10
    @d3thtr4p10 3 місяці тому

    Well written C code is just beautiful to my eyes. It’s minimalist in its approach and that sparks creativity.

  • @Light-f5g
    @Light-f5g 3 місяці тому

    Great video , I already learning C and is it suitable to make game with it ? using raylib and if yes could you make tutorial c with raylib

  • @sir_fapalot
    @sir_fapalot 3 місяці тому

    One of my favorite things about C is how everything is just bytes. There's no illusion of distinct classes or types, no runtime errors, you can do anything you want (well almost anything). My first C class in college was a breath of fresh air from the Python/Java stuff I'd been doing. Programming in C also makes me a better programmer in other languages since I have to find and fix errors myself instead of a detailed message pointing you to exactly which line caused the error - really good practice even if you have those tools available.

  • @FunnyStep_BK
    @FunnyStep_BK 3 місяці тому

    Hey👋, just wanted an advice i am just getting started with C (know the basic syntax and some other stuff by following cs50's 2024 Introduction to Computer Science Course) and have made the decision to learn more about it and deep dive into it via following this book :- [Kernighan-Ritchie]The_C_Programming_Language, So just wanted to know if it would be a great Idea to do so😁.

  • @lazi21
    @lazi21 3 місяці тому

    reminds me of the differences between using a straight, safety or electrical razor for shaving.

  • @nanattechi
    @nanattechi 3 місяці тому

    major respect to you man.

  • @AEONIC_MUSIC
    @AEONIC_MUSIC 3 місяці тому

    Programming is exactly like magic. You write in an arcane language to command rocks to do exactly what you envision, allowing you to build your own reality like a god.

  • @domical245
    @domical245 3 місяці тому

    2:42 that transition had absolutely no right to be THAT clean 🔥🔥🔥

    • @dredev216
      @dredev216 3 місяці тому

      i am chocked that less people mentioned it

  • @ratfuk9340
    @ratfuk9340 3 місяці тому

    Programming is all about abstraction. The C abstract machine is also, well, an abstraction over the hardware and it's nowhere close to how modern computers work (though close enough for practical purposes). I prefer languages that don't pretend to model the hardware since I rarely if ever write anything on that level. I think there are benefits to totally abstracting ourselves from the burden of von Neumann machines and instead working on a completely different (but equivalent) basis for computation viz. lambda calculus. The idea that C represents "the basics" is a biased view and unlike something based on LC, it's rooted in historical particularities (PDP-11, Unix) instead of unchanging mathematics. I also think over the decades it's become clear that basing a language on these historical particularities have come to bite us in the ass: writing programs in C has produced god knows how much economical damage. C is indeed relatively simple as a language but the programs one builds with C are not and humans are just not that good at managing complex things and I think we should shift as much of that complexity to compilers as we can. This is not to say you can't like C or shouldn't learn it but I'm just pushing back on this idea that C is this fundamental base reality of programming and everything else is a complication on top of it. That's just not true.

  • @moontoadz
    @moontoadz 3 місяці тому

    Pronunciation of deluge deh·lyooj

  • @rutabega306
    @rutabega306 3 місяці тому

    Ah yes, another person who thinks C models a (modern) computer architecture...

  • @samas69420
    @samas69420 3 місяці тому

    i loved this video and thats pretty much the same philosophy that I have, I hate all the dumb bloatware infesting machines and wasting cpu cycles, programming in C just makes me feel that I'm in full control of what my machine does, I'm the one in the button room and I can do everything I want, there isn't any other language that gives me this feeling

  • @Optimus6128
    @Optimus6128 3 місяці тому

    Most people are really looking at these new languages and fancy features. I am very different as a programmer compared to the average. I just like to get the basic tools and start exploring algorithms and trying stuff. That's why I have been left behind in recent language development. Even in C/C++ I mostly code like C with few C++ stuff if I need them. In my job is different and I come across the new added stuff in C++ so I have to familiarize me. Sometimes in a pure hobby C project I come across something where I am like "damn, that's where an std::map or std::vector could be useful" but you can overcome these issues or write your own structures that you can later use everywhere. But I am more of a creative programmer building stuff from things in my mind with the most basic tools rather than a high level language expert. As for productivity I am not sure about that. It didn't seem to improve dramatically when moving from C to C++ or trying to use the new C++ features or other stuff from other languages. The majority of the work is on sitting your ass down and be motivated for the project. It's not from assembly to C that I noticed obviously increase productivity, when it takes me ages to express an idea in assembly, understand the code and debug it, compared to write it in 5 minutes in C. But from C to C++ that's almost identical for me. It's only in assembly where I am 3x times slower, and sometimes I have to code in it and it's fun if I make something work, mostly in retro coding projects where it matters. In modern PC I am just C with some C++ and only if it's needed. But from there upwards I find no reason to use another language.

  • @drsensor
    @drsensor 3 місяці тому

    anyone know a real compiled system programming language that not tied to C ABI and LLVM?

  • @mrscratchhook
    @mrscratchhook 3 місяці тому

    yes we like tinkering and for those of us who only use audio, the 5,1 is still brilliant, especially for those who still need uad pcie and nvme pcie...i never have any audio issues, it move along swimmingly

  • @Arcticwhir
    @Arcticwhir 3 місяці тому

    ..yeah but it can take a while to master and can be so tedious, which is why langauges like python are so gravitating. Want a quick solution...boom use a open source python package. I have this really low level langaugae I have to work with at work, like a mix of C and assembly, I really hate it, the memory addressing, the tedious time consuming lines of code, all i think about is how i could do the same thing in python so much faster. Its only been a month, so maybe i'll learn to be quicker.

  • @isaialcantara
    @isaialcantara 3 місяці тому

    The anime guy is unsettling, but it's a good video overall.

  • @freddie224
    @freddie224 3 місяці тому

    I find myself often getting overwhelmed by how many features there are in modern languages like Rust or C++, I feel like im spending more time deciding which black box to use to accomplish a task, and structuring the project in my head. Instead of actually... coding. I feel much more productive writing in C, and I actually understand EVERYTHING the program does.

  • @foo0815
    @foo0815 3 місяці тому

    I like your reasons very much, but for me they led me to Common Lisp instead.

  • @dipi71
    @dipi71 3 місяці тому

    0:14 Should have used something like puts("hi"); for non-parameterized output of a const char * (see »man 3 puts« or »man 3p puts«), and for brevity. Subbed, cheers!

  • @metachirality
    @metachirality 3 місяці тому

    Forth programmers: Lol, lmao

  • @TheStrangeStorm
    @TheStrangeStorm 3 місяці тому

    what happened to your voice

  • @TheRealistRafa
    @TheRealistRafa 3 місяці тому

    Great video!

  • @bitwize
    @bitwize 3 місяці тому

    Your computer is NOT a PDP-11. C is NOT a close mapping to the actual CPU, which has all sorts of pipelining, branch prediction, caching, etc. to make your high-level C code go fast. In fact, C runs in an abstract machine of its own with an abstract memory model. The only valid memory accesses in C are: * accesses to a statically declared scalar, array, structure, or union * accesses to a stack variable or function parameter * accesses to a chunk of memory allocated with malloc(3) that hasn't yet been freed with free(3) Anything else is undefined behavior. So many operations that would "make sense" if C were actually portable assembly are actually undefined behavior. Undefined behavior is a minefield -- even experienced programmers trigger it without even knowing. Buffer overruns and use-after-free errors crop up in code written by the best C programmers. Why do you think that is? It's the language, stupid. The point is C is a mess and you probably shouldn't use it. The biggest problems with C Just Go Away when you use safe Rust, which still gives you a fine level of control when it comes to memory layout and CPU execution.

    • @Random31938
      @Random31938 3 місяці тому

      "Buffer overruns and use-after-free errors crop up in code written by the best C programmers. Why do you think that is? It's the language, stupid." Reads like a mistake on the programmer's part, just being honest, the language might be hard but it's still fair if it behaves consistently right?

  • @volchonokilliR
    @volchonokilliR 3 місяці тому

    Alarming number of weird comments in this comment section. Great video, commendable PoV!

  • @volchonokilliR
    @volchonokilliR 3 місяці тому

    C compared to assembly has a huge advantage - portability between different architectures

  • @adevthatsudos
    @adevthatsudos 3 місяці тому

    i like you

  • @collinmartin3589
    @collinmartin3589 3 місяці тому

    I have one for the same reason I drive a 20 year old BMW: the design and build quality is timeless.I dont need either of them to be super fast or modern as long as they do what I need them to do while still looking classier than their modern counterparts....

  • @DonaldFranciszekTusk
    @DonaldFranciszekTusk 3 місяці тому

    How to get a job? How to know what technology learn if there's so much? Programming industry in 2024 is so complicated and frustrating...

  • @bersK00
    @bersK00 3 місяці тому

    You're going to have a field day with Odinlang, it's a polished C alternative. No weird UB, no weird pointer gotchas, supports strings (a slice of a pointer to a buffer & length) & cstrings (a pointer to a char address which may or may not be an array, limited by a \0) , supports slices and array programming. And my favorite - SOA programming primitives.

  • @milostean8615
    @milostean8615 3 місяці тому

    Wtf are you wearing?

  • @darwinschuppan8624
    @darwinschuppan8624 3 місяці тому

    Anytime I use higher level abstraction, given enough reflection, I always find myself arriving at patterns that could just as well be implemented in C. It really does seem like it's the basis of all computing sometimes. If you master C, you can understand why "modern" abstractions function the way they do. Yes, C has many flaws and I rarely find myself wanting to code in C for a practical project due to all the complications that arise. But anytime I feel something I want to do is too complicated, anytime I'm caught up in the web of abstractions I have spun for myself, I stop and think: How would I have done this in C. I stop thinking about abstractions and start thinking about what I want the computer to do. It often turns out more simple than you first thought. It's like all those complicated concepts I made up in my head suddenly collapse. The only things that matter are sequences of memory and sequences of instructions; that's what it always comes down to. Despite its flaws, I think C is the only popular language that has truly managed to capture the essence of what it means to compute. It doesn't try to hide the ugliness of computing by adding more and more concepts that at some point grow utterly impenetrable; there is a unique kind of honesty in the core of the language, there's an essence in C that will always remain true for computing.

  • @cley_rodrigues8207
    @cley_rodrigues8207 3 місяці тому

    Que 💩💩💩💩😂😂

  • @Weeb1367
    @Weeb1367 3 місяці тому

    I can't tell if you're pranking...

  • @Ross-ng4xl
    @Ross-ng4xl 3 місяці тому

    That was a VERY nice cut at 2:42. I see you. Well done. \o/

  • @mage3690
    @mage3690 3 місяці тому

    Na, but 3 space indenting is DIABOLICAL.

  • @xerathgaming1915
    @xerathgaming1915 3 місяці тому

    ive recently enrolled in a 42 programming school and we program mostly in c. one of our first projects is to create a library of different useful functions and we are only allowed to use malloc and some syscalls like write for example. its amazing how much you can do with these simple tools.

  • @abiiranathan
    @abiiranathan 3 місяці тому

    C is beautiful!

  • @anon_y_mousse
    @anon_y_mousse 3 місяці тому

    The way I look at it as someone who enjoys learning new things and especially new programming languages, is that every language sucks, but C sucks the least. I love it, and I hate it, because sometimes its limitations just make me angry, even while it limits me less than most other languages. This is why I'm trying to take the lessons I've learned and I'm implementing my own language, and one of these days I'll actually release it, assuming I finish the ARM code generator.

  • @dominicpascal5512
    @dominicpascal5512 3 місяці тому

    This is a very long video for saying "look, I can't even google or search on youtube which is full of information about what I'm trying to research". It has USB 2.0 … so? You plug in all your USB 2.0 devices. Mouse, keyboard, Xbox receiver, external sound card. And then you go to ebay and buy a USB 3.2 card for $30 bucks and you're back in the modern world. While you're at it, you mount all your hard drives that don't care about SATA III because they can only do 200 Mb/s anway in the sledges because where are you gonna put all the video footage? Certainly not on the M1's soldered on 256 GB drive that's gonna die in a few years from swapping the "8 GB is 16 GB for PC" RAM all day.

  • @mberoakoko24
    @mberoakoko24 3 місяці тому

    I don't like c ... at all. You could draw with a pen and paper . But when you are asked to draw the schematics of boeing 747 part by part, you'll find yourself using better tools. C++ gives you that freedom, you can choose how much abstract you want to use, what paradigmn etc.

  • @MonkeyManJams165
    @MonkeyManJams165 3 місяці тому

    I totally get it, C impresses me the more I learn about it, python and C# felt more like running on a treadmill to me.

  • @Ricocase
    @Ricocase 4 місяці тому

    Why not c#?

  • @rogergalindo7318
    @rogergalindo7318 4 місяці тому

    i want to seriously learn c, however i don’t want to because i know it wont be as great as haskell…