Conversation #3 - Ginger Bill- Programming Proverbs and the Odin Programming Language

Поділитися
Вставка
  • Опубліковано 1 чер 2024
  • ►Conversation/Podcast Playlist: • Conversations / Podcast
    ►Find full courses on: courses.mshah.io/
    ►Join as member to get perks: / @mikeshah
    ►Lesson Description: In this conversation I speak with Bill (also known as Ginger Bill) who created the Odin programming language -- for Sane Software Development. Bill currently works at JangaFX (which uses Odin) and develops high performance tools for liquid, particle, and terrain simulations in games and movies. Throughout this conversation, we'll discuss Bills journey as a programmer, wisdom (through programming proverbs), and get some of his insights into the Odin programming language. It was a true honor to have an author of a language walking me through the Odin language, and learning from his experience. Sit back, relax, and get ready to take some notes on the wisdom Bill shares as he graciously joins us for this over one-hour conversation.
    Please check out the following links from the talk:
    Odin Language website: odin-lang.org/
    Odin Language demo: github.com/odin-lang/Odin/tre...
    Bill's Programming Proverbs: www.gingerbill.org/article/20...
    JangaFX: jangafx.com/
    GingerBill's UA-cam Channel: / @gingergames
    Sean Barrett - Advice for Writing Small Programs in C: • Advice for Writing Sma...
    Mike Acton Data-Oriented Design talk: • CppCon 2014: Mike Acto...
    Handmade Cities Conferences/Network: handmadecities.com/
    00:00 Conversation Preview
    00:17 Introduction
    00:46 Introduction to Ginger Bill
    02:59 When did Bill start programming?
    04:30 The Acorn Archimedes Machine
    05:29 Bill's Physics Background
    06:27 Early Game Development
    09:46 Programming Proverb: Simplicity is complicated
    14:05 Programming Proverb: The concept of programming
    16:40 How to teach students the reality in the young field of computer programming
    19:05 Programming Proverb: Generic Programming
    22:29 Breaking the rules in programming
    23:42 Programming Proverb: William James on being wise
    25:02 The gb Libraries, inspiration from stb_libraries, and importance of libraries in languages
    30:25 Where users are coming to Odin from?
    32:22 C23 and is it worth it to learn C?
    35:16 Programming Proverb: Purpose of a Program
    35:53 Mike's understanding of Odin and Odin's origin
    38:00 Screen share of Odin Code
    57:15 Showcase of Odin Projects
    58:06 Showcase: Cat and Onion commercial game in Odin
    58:30 Showcase: Spall Profiler
    59:10 Showcase: Odin Language Server (Ols)
    59:46 Odin Monthly Newsletter
    1:00:45 Showcase: JangaFX (EmberGen, GeoGen, LiquiGen)
    1:03:45 Using a different programming language as a competitive advantage
    1:06:50 Difference in writing a compiler versus other software
    1:08:30 Programming Proverb: Rob Pike on Data Structures
    1:09:00 Programming Proverb: Fred Brooks
    1:09:55 Programming Proverb: Mike Acton
    1:10:08 Bills Programming Process and the benefits of taking a walk
    1:12:44 Surprise features in Odin that had large impact
    1:15:00 Odin 1.0 is coming
    1:16: 32 On learning compiler and language development
    1:19:40 Book recommendation for students and learners.
    1:22:00 Advice: Understand one level lower than you work (Baking analogy)
    1:24:00 Closing Words and Shout outs
    ►Please like and subscribe to help the channel!
    ►UA-cam Channel: / mikeshah
    ►Join our free community: courses.mshah.io/communities/...
  • Наука та технологія

КОМЕНТАРІ • 34

  • @jakubtomsu
    @jakubtomsu 2 місяці тому +28

    Odin is such a fantastic language!

    • @MikeShah
      @MikeShah  2 місяці тому +2

      Super clean and pragmatic language

  • @handmadegamesdev
    @handmadegamesdev Місяць тому +4

    Great video! I'm so pleased to see Odin getting the attention it deserves. Thanks for making this available to everyone.

    • @MikeShah
      @MikeShah  Місяць тому +1

      Cheers -- you are most welcome! Keeping doing great work!

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

    Interviews of Bill are always super interesting, and Odin is a lovely breath of fresh air

  • @GaryChike
    @GaryChike 2 місяці тому +9

    Great discussion! For all the purported 'C-replacements' (e.g. system programming languages with no GC), my current first choice would be Odin 🎆.. yes, even over the much-touted Zig🔥. Although C3 looks promising too. So many languages .. so little time.

    • @MikeShah
      @MikeShah  2 місяці тому +3

      Indeed! I think the path these days is probably to start with C, and then convert to another systems language like Odin, Dlang, etc.

  • @cyrilemeka6987
    @cyrilemeka6987 2 місяці тому +2

    14:09 the concept of programming is soo accurate. Most people tend to forget the first point and the fourth point can't be any more real today.
    Loving the talk❤

  • @iatheman
    @iatheman 2 місяці тому +2

    Great interview. The questions were relevant. There was a portion where they dive into more technical detail that's the right amount for this format. The whole thing flowed really well.

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

      Cheers -- glad you enjoyed it!

  • @_iao_
    @_iao_ 2 місяці тому +3

    knew i remembered your face from somewhere-- i've seen some of your SDL videos. glad to see you helping shine light on Bill and Odin!

  • @xhivo97
    @xhivo97 2 місяці тому +3

    Great video! The intro is just too cute lol

    • @MikeShah
      @MikeShah  2 місяці тому +1

      Cheers! It was a very fun conversation 🙂

  • @debugger4693
    @debugger4693 2 місяці тому +4

    Great!

  • @johnnycashcow1130
    @johnnycashcow1130 2 місяці тому +2

    Awesome! Love these videos!

  • @thegameoflife9179
    @thegameoflife9179 2 місяці тому +5

    Interesting talk, i like Odin and i hope it gets more vendors but that the language itself does not get too bloated like so many others have over the years.... i don't currently work in computers but my history of where i learned about them goes way back to the Commodore 64.... these are just a couple of programs i wrote that got in magazines...
    Based on the old Mastermind game, remember that?
    ua-cam.com/video/uA3o7DPJIVY/v-deo.html
    And another, though this is just some of the music...
    ua-cam.com/video/pn3cpfg3G1g/v-deo.html

    • @MikeShah
      @MikeShah  2 місяці тому +2

      Very cool -- nice projects!

  • @skaruts
    @skaruts 2 місяці тому +3

    Personally, my brain can't handle 10k lines of code in one file. I get totally confused. Sure, the editor has ways to jump around to functions, but... I'm not good at memorizing the names of all the functions I write. Usually when it gets to 1k lines I'm already having trouble with it, and I have to start spreading it out.

    • @tubeincompetence
      @tubeincompetence 2 місяці тому +2

      Always a balance. :)
      But I feel 1000 lines of code can be quite fast to go through, read and get an overview of, while 10000 lines I would prefer to just close the file or give up getting a good understanding of the whole file. But probably more of a "me problem" and I do have those 10k lines files where I am familiar with the code and can find what I need quite well after working with them for a while.
      But new file to discover? Give me something smaller

    • @MikeShah
      @MikeShah  2 місяці тому +1

      Agreed, always a balance! I think it's always useful to hear from others with experience that there are no 'hard and fast rules'@@tubeincompetence

    • @CianMcsweeney
      @CianMcsweeney 2 місяці тому +2

      That's why an editor with good Symbol parsing and fuzzy matching on those symbols is key (at least for me)

    • @skaruts
      @skaruts 2 місяці тому +1

      @@CianMcsweeney if you don't know the exact name of what you're looking for, then fuzzy search may still present you with a big list of matches that you have to look through and it may involve some trial and error.
      But regardless of that, the main issue for me isn't actually with things being easy or hard to find. The main issue is more psychological, as I can't help but feel overwhelmed and encumbered, and when I separate the code I feel lighter and relieved.
      Maybe it's just me, I don't know.

    • @BrunoDeAngelis
      @BrunoDeAngelis 2 місяці тому +1

      @@CianMcsweeney which one do you use or which one would you recommend? Thanks

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

    He doesn't need to use generics because his language doesn't have user defined numeric types. He's wrong about enums, they are types, backed by integers, it's just in C they aren't types, there is no scope and they are just ints and are abused as ints.
    Algorithms + Data structures = Programs, Wirth.
    Ada has bitsets: type Bit_Sets is array (Positive range 1 .. 10) of Boolean with Packed; The array index type can be any scalar type, even an enum.
    You DON'T need pointers AT ALL, you just need the syntax to do it for you, see my repo.

    • @GingerGames
      @GingerGames 2 місяці тому +12

      I'm not wrong about enums in C. `enum Foo` will not well defined backing integer type. Some implementations will have it be `int`, but others will use the smallest integer type needed to represent the fields. The other issue is that when you use an enum as a type, it'll just act like `int` most of the time. And in the context of the video. I was talking about C specifically, not any other language.
      I know Ada has bit sets, in fact normal Pascal had bit sets, and that is where I got the idea from.
      "You DON'T need pointers AT ALL"? What are you on about? A pointer is just a memory address with an associate typed with it. Unless you are saying something like `load(memory_address, Type)` etc, which is just obfuscating the typed pointer.

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

      @@GingerGames What you said about enums, you didn't mention c, just enums. I pointed out that in exactly what's wrong with enums in C, no need to reiterate.
      In Ada, you are not limited by machine word size in bit sets, that array can be huge if you want, in Pascal, it's limited to 32 bits IIRC, might even be less.
      I know what a pointer is, no patronising required thanks. As I said, if you have the syntax to do it, you don't need explicit pointers, as long as you can set a memory address for an object.

    • @GingerGames
      @GingerGames 2 місяці тому +4

      @@LukeAGuest As I said, I was talking about C in that context, and even in the next sentence I mention C.
      Why are you bringing up something irrelevant with about Ada? I never mention Ada nor how it works. Ada might not be limited to a single integer, but Odin's is thus being closer to Pascal.
      I wasn't being patronizing. What you are saying is a little confusing, but what I think you mean is that languages like Java/Python/etc don't show their pointers because (nearly) EVERY value is a pointer itself (i.e. a reference), which means you are passing pointers around already. That isn't a mere _syntax_ thing but a completely different memory model and semantics. Odin is part of the C and Pascal tradition which passes around values not references.