Top Shelf #2 Ginger Bill - Creator Of Odin

Поделиться
HTML-код
  • Опубликовано: 19 сен 2024
  • Recorded live on twitch, GET IN
    Guests
    Ginger Bill | x.com/TheGinge... | / gingergames
    TJ DeVries | x.com/teej_dv | / @teej_dv
    My Stream
    / theprimeagen
    Best Way To Support Me
    Become a backend engineer. Its my favorite site
    boot.dev/?prom...
    This is also the best way to support me is to support yourself becoming a better backend engineer.
    MY MAIN YT CHANNEL: Has well edited engineering videos
    / theprimeagen
    Discord
    / discord
    Have something for me to read or react to?: / theprimeagenreact
    Kinesis Advantage 360: bit.ly/Prime-K...
    Get production ready SQLite with Turso: turso.tech/dee...

Комментарии • 354

  • @Kane0123
    @Kane0123 Месяц назад +63

    Teej over here looking like a sports commentator…

  • @beastOfVengeance
    @beastOfVengeance Месяц назад +42

    I remember it was a primetime video in which you asked the chat something along the lines of "how many of you could code if you turn off LSP?" I took the challenge, put my neovim on hold and created a simple .vimrc file with a single plugin(vim-surround) and started using vim as my primary editor for rust. At the time I was reading the book "Learning Rust With Entirely Too Many Linked Lists", I decided to follow the book in my new vim setup. Based on the experience, I would like to add a few points to your LSP discussion:
    1) I see an improvement in my ability to track how types change. LIke when I chain some functional programming constructs over some collection, I can feel what will be the type of the thing inside the closure. Also relying on mentally tracking types forces you to make some sane decisions which makes remembering the types easier. I will know that which variable is a reference an which is owned based on how I am going to use it.
    2) It forces me to use the std library docs too often.Coz I use duckduckgo, it has a shortcut where I can search the rust std library docs directly thorugh my url bar, this feature is called 'bangs', It has made me much comfortable with reading the docs. Now I am not afraid of going down that rabbit hole.
    3) Because there are no type hints and warnings when I do mistakes, I have to always run `cargo check` and see the compiler error messages. I am now a lot more comfortable when reading compiler error messages.
    4) It might be helping me to plan better. So this ones a little tricky. Earlier if I had a variable then I would press tab on it in insert mode to see what methods I have on it and if any of them could be used to achieve something that might bring me closer to achieve the thing that I originally want. Now I have to think and plan about this before I start typing.
    5) I like the minimalism of it. When I installed neovim on my arch linux, my adhd kicked in and I spent days configuring it down to the last detail. Now I am rocking a 20 line .vimrc file with a single plugin to write rust, C and python. Disclaimer: I am not working on projects the size of linux kernel with my current setup. My workflow is limited to advent of code problems, college homeworks, ctf's etc. Not very big projects involving a complex directory structure with hundreds of files.
    Although I have not done it long enough, but I hope that if I kept doing it then eventually, for my own sanity, I may start writing better code. If my editer is not reading code for me then I must read it and write it so that it is readable. Atleast this is the end goal.

    • @freeo6242
      @freeo6242 27 дней назад

      Don't code just to code. Solve real problems.
      People waste too much time on toy code. Work on real projects which you get paid for. Grow with real project requirements. Code is better, which is written for other people to consume, not for yourself. You can't learn that writing toy code. Your code quality will be measured by the "WTF's per minute" when others read your code, or you read your own 6+ month old code. Organizing/designing code, that you still understand months later is the challenge. If it passes that, then other people will say it's good code.
      At this point I'd never start any "Advent of Code" or code problems ever again. But I'm in my prime working age, so that needs to be accounted for.

    • @beastOfVengeance
      @beastOfVengeance 21 день назад

      @@freeo6242 You do make a fair point. I started coding about 2 years ago, and still sometimes my methods of judging progress are a little bit weird. In the early days I thought that writing my own vim config is a statisfying amount of progress. For some time, I was also stuck in the turorial hell. Only recently I got enough confidence to try my own non trivial projects. The confidence to do this slowly build over time when I realized that I am now comfortable with things like reading the docs, using the terminal, getting intimate with a build tool, following a long thread to understand my problem and its solution,...and that I can code without an LSP. These things worked for me like a morale booster, convinced me that I got that dawg in me...that I should work on something more real.
      But it is a long way before I reach my prime.

  • @DarkerCry
    @DarkerCry Месяц назад +110

    Odin definitely needs more attention, this is great. Plus Bill is a great benevolent dictator for it.

    • @yonas6832
      @yonas6832 Месяц назад +11

      sometimes a project needs a dictator, yeah. see the Linux Kernel.

    • @DarkerCry
      @DarkerCry Месяц назад +9

      ​@@yonas6832 hey, if the dictator is good it's usually the best fit for any project. Very few can do it though.

    • @Muskar2
      @Muskar2 26 дней назад

      ​@@DarkerCry I wish the idea of a benevolent dictator wasn't so commonly romanticized. Great power doesn't just come with great responsibility, it also comes with dependency hell that becomes the dictator's primary job, no matter your ideals - and if the dictator down-prioritizes the vital dependencies, they're replaced by someone who prioritizes them more... Sorry for that rant, I also think Odin needs more attention.

    • @Thyringer
      @Thyringer 15 дней назад

      Well, I don't want to be mean, but I don't see any reason that gives this language real added value:
      no module/package system with package manager
      just another imperative language (there aren't even closures and the argument against them makes no sense if Rust has them)
      there are no algebraic data types or sensible infrastructure for overloading like type classes/interfaces/traits
      no really well-founded concepts for being memory-safe.
      the syntax is also a bit weird in some places.

    • @DarkerCry
      @DarkerCry 15 дней назад

      @@Thyringer then just use something you want to use, Odin has good graphic library support and I like the syntax.

  • @bookle5829
    @bookle5829 Месяц назад +77

    He called it Odin so he can claim as the creator of Odin.

    • @plaintext7288
      @plaintext7288 Месяц назад +10

      Pirate Software is his grandchild

    • @Kane0123
      @Kane0123 Месяц назад +5

      The All-Grandfather

    • @iatheman
      @iatheman Месяц назад

      @@plaintext7288😂

    • @carpal4489
      @carpal4489 2 дня назад +1

      nah probably because the-clone-of-jay was way too long

  • @ficolas2
    @ficolas2 Месяц назад +6

    TJ: "I read the entire nvim documentation"
    Vs
    Tsoding: "I wanna learn LLVM IR, so I'm gonna use clang to compile C to LLVM IR and just figure it out from there”

    • @miguelborges7913
      @miguelborges7913 28 дней назад +1

      You can't generate nvim configurations.

    • @ficolas2
      @ficolas2 28 дней назад

      @@miguelborges7913 you can definitely mess with it without reading the entire docs tho hahaha
      Just meant it as, it's the two extremes of messing around/learning ahead

  • @poapoapopopoop
    @poapoapopopoop Месяц назад +22

    they’re “hot takes” because the takes are fire

  • @Nightwulf1269
    @Nightwulf1269 Месяц назад +6

    While I'm more in the Zig camp, because it fits my needs simply better, that guy has really stable opinions. Especially his thoughts about dependencies are absolutely correct and important! Thank you for that ihteresting interview!

    • @carpal4489
      @carpal4489 2 дня назад +1

      no the take on the dependencies is garbage, the fact that you don't have a package manager doesn't mean you won't put extern source which in turn is using other external source, so you still "don't know what you are downloading at this point".

    • @Nightwulf1269
      @Nightwulf1269 День назад

      @@carpal4489 It's not garbage...it's daily routine for me to clean up dependency hells

  • @Oler-yx7xj
    @Oler-yx7xj Месяц назад +12

    It's funny how pip is both the unanimous worst package manager, but also the one that comes to mind as the first example of a useful package manager

    • @ITSecNEO
      @ITSecNEO Месяц назад +2

      If you just do small scripts or tasks in python, everything is fine with pip. But yes, as soon as we enter some bigger projects we soon arrive in the dependency hell

  • @tofaa3668
    @tofaa3668 Месяц назад +4

    Ive been using odin for the past month for my voxel game and I've never been happier with a language

  • @EndeavorDeeply
    @EndeavorDeeply Месяц назад +30

    If you’re a C/C++ developer Odin will feel like a more ergonomic version of what you’re used to. The language is still early days but it really is a joy to use. The vendor/batteries included approach is actually nice but where it lacks is the vastness of ecosystem right now. That’s largely just because C/C++ have an enormous head start. But once Odin hits 1.0 and has a much larger base, I wouldn’t at all be surprised if this problem goes away too. As well, Odin’s FFI is good so it’s not like you can’t just take your favorite C/C++ library and use it. It speaks the C ABI so it can talk nicely with anything also speaking the C ABI. It’s not a perfect language. There are bugs in the compiler. Those do get fixed pretty quickly if you file a bug report though. The community is pretty helpful. Be aware that gingerBill himself is definitely a benevolent dictator type. This language is definitely not a democracy. If you don’t like that, and you don’t like the taste choices, you may have a harder time. Odin has a long way to go, but it’s very usable and would make for a great option for basically anyone’s next hobby project at the very least.

    • @SaHaRaSquad
      @SaHaRaSquad Месяц назад +9

      I'd rather have a BDFL in an open source project than design by committee where nothing gets done and yet everything gets added.

    • @CasimiroBukayo
      @CasimiroBukayo Месяц назад +5

      ​​@@SaHaRaSquadReminds me of that interview with Bjarne Stroustrup on a CPP podcast more than a year ago.
      Apparently, the C++ Standards Committee wasn't his choice. It was forced upon him by the companies who've been using C++ for quite some time and decided to gang up on him. It was chaotic from then on 😅

    • @captainfordo1
      @captainfordo1 Месяц назад +4

      And it’s a very good thing that Odin is not a democracy

    • @isodoubIet
      @isodoubIet Месяц назад +1

      If you're a C developer maybe. If you're used to C++, odin is quite simply too underpowered to be useful.

    • @privacyvalued4134
      @privacyvalued4134 Месяц назад +2

      @@isodoubIet Exactly. It's also burdened with symbol soup that's clearly borrowed heavily from Go. Odin is very heavily geared toward graphics, video, and game development. Not that those fields don't benefit from having a focused language, but as a general purpose language, it falls quite flat. I'll take C-style soupless C++ (i.e. no STL, no Boost, occasional template use) over Odin's symbol soup any day. His head's generally in the right place, but the language needs a lot less symbol soup to appeal to me.

  • @matthieuducorps8729
    @matthieuducorps8729 Месяц назад +14

    I felt frustrated at the end of the video. Looks like twitter on RUclips just clarifying couple of personal opinions and that's it.
    Didn't got anything about Odin.

  • @TetraluxOnPC
    @TetraluxOnPC Месяц назад +17

    > "Oh God, that sounds hard!" (RE manually downloading packages)
    You also are going to be less likely to take on complex, weird, or otherwise shitty dependencies.
    Which makes it better for everyone.

    • @МаркЧолак
      @МаркЧолак 23 дня назад

      Still, when Odin becomes mainstream, people will probably create their own package managers like they did with Go (it was a nightmare).

  • @d_6963
    @d_6963 Месяц назад +10

    10:52 Sublime Text mentioned 😊. My first real job was using SAS for data analysis. Also, no LSP, but I knew all the procedures (functions) and parameters types. Then I wrote a small LSP as a Sublime plugin. Used that for a while thinking it would be faster... It wasn't. And going back then I struggled without. I do understand the appeal to not use an LSP.
    In my current environment I jump between languages and entire services every few days. I just don't see that happening for me. But now it was brought up here and I think back, I really do miss working without one.

    • @DarkerCry
      @DarkerCry Месяц назад +1

      I was happy to hear sublime mentioned, thought I was the only one tbh lol

    • @GodOfMacro
      @GodOfMacro Месяц назад

      faster than what ?

  • @Mojobojo
    @Mojobojo Месяц назад +12

    Years and years ago I remember Ginger Bill live streaming some early development of odinlang. Was a joy chatting in his stream then and hearing him talk about what hes doing. Its so crazy seeing how far its gotten.

  • @stercorarius
    @stercorarius Месяц назад +8

    I appreciated the rush reference Bill

  • @Jeremyak
    @Jeremyak Месяц назад +7

    I think a lot of people that missed their true calling as baristas went into tech instead, and now we all get to suffer poorly made coffee.

  • @jangra_mohit
    @jangra_mohit Месяц назад +6

    I really like that Odin gives one good reliable way to do a thing in the standard lib rather then 10 packages giving me 10 different ways to do that same thing for a lot of things...and you can always do it differently on your own

    • @aenguswright7336
      @aenguswright7336 Месяц назад +2

      Yeah, that’s my only real gripe about Rust TBH. I hate the fact that I start every new project by typing in cargo add serde, cargo add serde_json, cargo add reqwest, cargo add chrono. It just feels like these should be std libraries. Even Tokio, although I mind that less, I don’t see why rust std can’t ship with a basic async runtime for when I just want to make a couple of http calls.

    • @jangra_mohit
      @jangra_mohit Месяц назад

      @@aenguswright7336 yess, couldn't agree more

    • @ITSecNEO
      @ITSecNEO Месяц назад

      ​@@aenguswright7336??? There is literally no difference in importing from the stdlib or importing online crates. Also, what is your point here? Stdlib shouldn't contain everything by default, that would blow up the binary sizes. Not everyone needs json, or Async runtimes etc. for their project, why should it be included in the stdlib then? Makes no sense to me. Another pro is, that the language devs have less Code to maintain.

    • @UnidimensionalPropheticCatgirl
      @UnidimensionalPropheticCatgirl Месяц назад +1

      @@ITSecNEO There is huge difference, there are industries where every dependency you take on has to be audited, so it’s massive inconvenience to have more than just the std to audit, beyond that it makes the entire ecosystem extremely vulnerable to supply chain attacks. Also it doesn’t inherently bloat your binary sizes, in C 9/10 times std gets dynamically linked so it literally doesn’t affect anything and rust doesn’t have a stable abi, so there isn’t even the concept of linking an object inside of save rust, so everything is subject to dead code elimination.

    • @ITSecNEO
      @ITSecNEO Месяц назад

      @@UnidimensionalPropheticCatgirl No, there are a lot of crates which can be seen as standards for the language. Therefore you only have to audit those ones and not every one. The dependencies are often the same, like serde f.ex. All of those crates are maintained by highly talented people, so there is basically no need for huge auditing. Also, what do you want to audit? If the crates don't use much unsafe blocks or a lot of RCs or ARCs, there is no huge effort needed for auditing. That's the point of Rust, being memory safe by default. I don't get all the artificial Rust hate, it doesn't makes any sense.

  • @Fortun8Fool
    @Fortun8Fool Месяц назад +32

    Here's the best pitch I have for Odin. I picked it up in a weekend by reading the core library.

    • @TankorSmash
      @TankorSmash Месяц назад +2

      Happy to hear it's easy to learn. What are the upsides over a language I already know?

    • @Fortun8Fool
      @Fortun8Fool Месяц назад +2

      @@TankorSmash depends what that language is. If it's a high level language, it offers you performance. If you use a low level language, it offers sanity.

    • @TankorSmash
      @TankorSmash Месяц назад

      @@Fortun8Fool Lets say I'm coming from Zig

    • @UnidimensionalPropheticCatgirl
      @UnidimensionalPropheticCatgirl Месяц назад +3

      @@TankorSmash They have different design philosophies, I would describe it as: zig makes doing the correct thing hard, but it makes doing the incorrect thing harder. odin makes doing the incorrect thing easy, but it makes doing the correct easier. Zig maximizes explicitness, odin minimizes implicitness. Zig prefers flexibility in places where odin prefers simplicity and intuitiveness (build system, meta programming etc.). zig is more C like in places where odin takes more influence from pascal.

    • @Fortun8Fool
      @Fortun8Fool Месяц назад

      @@TankorSmash I looked at zig before odin, but leaned into odin because, in my opinion, it was easier to read. Also, it felt much more intuitive (coming from C).. so, easier to reason about.
      That's all personal preference though. Much of what you can do in odin has a 1:1 translation to zig. For example, I know zig has a SoA container much like Odin's #soa directive.
      They both have the same mentality of: another take on low level design with the advantage of 40+ years of hindsight.

  • @HaydenGray
    @HaydenGray Месяц назад +8

    honestly having used odin for the past few months, it has been an extremely refreshing language to write. i started with the 1 billion row challenge and found that the standard library and core language had everything i needed and it was simple enough to get up and running in a weekend. even though bill doesn't like lsps, the unofficial one (ols) has been very good (not as good as rust analyzer but more than good enough given how much simpler the language itself is). additionally, the core library has got to be one of the easiest to read i've seen in a while, it was really nice being able to goto definition and actually read the code and understand it (unlike the C++ STL). to me this feels like a logical progression on the "simpler" languages that adds quality of life without the complexity that C++, Rust, and Zig add

    • @privacyvalued4134
      @privacyvalued4134 Месяц назад

      C++ went off the rails with the adoption of STL. I stopped at C++ 11 and don't touch any of the newer stuff. I avoid STL and Boost like the plagues that they are. Templates are useful but they shouldn't be used for everything because they turn the language into incomprehensible symbol soup.

    • @ITSecNEO
      @ITSecNEO Месяц назад

      ​@@privacyvalued4134If C++ 11 would have been the last version, I would absolutely love that language. But the current state is a mess, still fun to write, but once you need to read others code the hell begins. That's the reason I ditched C++ in flavour of Rust. But Rust can also get to a messy state in the future with all that new added stuff... Last hope is on Carbon, but they seem to be pretty slow in development

    • @bpo217
      @bpo217 28 дней назад

      I am surprised Zig was in your complexity list! I think Zig is a surprisingly simple language with well defined solutions over the years to common problems in C (null and pointers for example). Where is the complexity in Zig for you? Another point is the overview page for Odin mentioned in the video is roughly the same length as Zig. Also it seems pretty unfair to place it with C++ I suppose? I am just furthering where my thoughts come from but I am genuinely curious what it is for you.

  • @andythedishwasher1117
    @andythedishwasher1117 22 дня назад

    I value those pauses even when I "know what I'm doing". There's always context to examine. Especially with loops.

  • @Exilum
    @Exilum 17 дней назад +1

    Teej has a great idle animation. Probably powered by Odin.

  • @hriscuvalerica4814
    @hriscuvalerica4814 Месяц назад +9

    I agree that including any dependency should be a big thing that requires work and an informed opinion . Great interview ! Can't wait to play a bit with Odin.

    • @yaksher
      @yaksher Месяц назад +3

      I'm curious what you think about stuff like the DashMap crate for Rust. It is completely unrealistic for people to implement DashMap themselves because it is a concurrency nightmare and most of the time people will implement it wrong and even if it's right, it'll be slow. But using a RwLock will be substantially slower than a DashMap in most cases.
      Do you think the Rust standard library is failing for not having its own implementation of DashMap? Do you think people should just accept the price of RwLock except in the rare cases where performance really matters and then people should go and manually install DashMap?
      Maybe DashMap specifically _should_ be standard library, but there's a lot of borderline stuff where doing it yourself is just finicky and annoying and will result in much slower code that's likely less correct.
      Like, yes, there are downsides to pulling in dependencies, but there are also a lot of upsides to having good implementations of things available on hand.

    • @ITSecNEO
      @ITSecNEO Месяц назад +1

      There is literally no Problem with the dependencies in Rust. Rust is memory safe by design and the crates are maintained by highly talented peoples. Rusts situation is entirely different from C++ or C. They both are memory unsafe, so it's easy to pull in dependencies which are problematic. But in Rust we get away with most of the memory issues by default, the risk for bad dependencies is highly smaller. It's just wrong to generalize in case of dependencies

    • @ITSecNEO
      @ITSecNEO Месяц назад +1

      ​@@yaksherAbsolutely right. "Dependencies are bad" is such a L take. Why should we invent the wheel over and over again when we can have one crate for the problem instead, which is maintained by experts for this exact problem. The crate is likely to be a magnitude more safe and efficient than any custom and new implementation by ourselfes. I'm also happy that not everything is in the stdlib, this comes with two pros: the community can contribute to the language and the language devs can focus on the language instead of stdlib features.

  • @mjolnirdev
    @mjolnirdev 29 дней назад +3

  • @Sleiren
    @Sleiren Месяц назад +7

    Am I the only one confused by this podcasts format? The intro presents it like this is the episode, only to find out at the end the rest is on discord (presumably paywalled?). It just feels like a bait and switch.

    • @UnidimensionalPropheticCatgirl
      @UnidimensionalPropheticCatgirl Месяц назад +6

      The discord part is them doing Q&A, where people can call in and ask their questions, it’s not open to public since if you let random chatters ask questions their quality is just gonna be low which is annoying for everyone involved, so there is some vetting. but I don’t know why don’t they record it.

  • @andythedishwasher1117
    @andythedishwasher1117 22 дня назад +1

    Lmao Bill's Rush reference went straight over Prime and TJ's heads. I see you, Bill.

  • @harriet-x.x
    @harriet-x.x Месяц назад +7

    Fun fact: Odin(3) is a tool developed by samsung to flash firmware and custom roms etc to your samsung galaxy device using download mode (was called something else before but i forgotttt) Usually can be acessed by holding down both volume buttons and power at the same time (has to be plugged into a pc from 2018 onwards (i think)

  • @arian386
    @arian386 Месяц назад +7

    Man never knew he was a physicist!

  • @gladoseus
    @gladoseus Месяц назад +7

    prime is questioning his life at 14:30

  • @PaulSebastianM
    @PaulSebastianM Месяц назад +5

    There are two types of developers: those that look at other developers they consider good, to become like them, and those that don't need others to become good so they develop differently with different standard ways of working. None of them are bad developers.

    • @GingerGames
      @GingerGames Месяц назад +4

      The latter usually started out life as the former, and vice versa.

    • @sillysquirrel9979
      @sillysquirrel9979 Месяц назад

      W take

  • @user-pt1kj5uw3b
    @user-pt1kj5uw3b 13 дней назад

    Love what he said about package managers. When I was learning it felt very strange to just download a fuck ton of code that I know nothing about.

  • @Hector-bj3ls
    @Hector-bj3ls Месяц назад +2

    Odin is my current language of choice. It's not perfect, but it fits my style better than any other language I've tried.
    I like the module level visibility controls. I do think Odin has the wrong default though. Everything is public by default.

    • @GingerGames
      @GingerGames Месяц назад +4

      Public by default is on purpose because of the amount of times I've had so many issues with things being private all the time and I've not been able to access things without modifying the source code directly. I understand why people "think" private-by-default is a good idea but it really isn't for the actual users of the code. The library writer doesn't really know what I need and is usually wrong too.

    • @Hector-bj3ls
      @Hector-bj3ls 28 дней назад +1

      @@GingerGames I can see that point. I guess I'm of the mindset that an implementation detail shouldn't be exposed. Since someone will depend on it for something. And I guess that'd just because I've never really questioned semantic versioning. If a library just has a single version number it doesn't matter if new versions have breaking changes.

  • @visaac
    @visaac Месяц назад +2

    Man
    I just started hearing understandable to me things and they were "Let's hop on discord"
    Eh, regardless was very insightful and ive found something new for myself
    A lot of thanks

  • @cossak.G.nederlander
    @cossak.G.nederlander Месяц назад +5

    Minimalist. No IDE. No Package Managers. No Methods. 40% in I’m in happy land…

  • @m4rt_
    @m4rt_ Месяц назад +1

    In Jai you have a combination of the several module things.
    You have #load which acts the same as #include (though you can scope some things so they are only accessible to that file or module using #scope_file, #scope_module, and #scope_export.) Then you have #import which lets you import a module which can either be a single file, or a directory with a module.jai file that loads the other module related files into it.
    And with #include it will look in the standard library (which is just a directory named "modules" bundled with the compiler that just has the source files), in the "modules" directory at the root of your project if it exists, and any other directories you may have told the compiler about. Then in if you for example tried to import the module "Foo", then it will look in those directories for a file "Foo.jai" or a directory "Foo" with a module.jai source file in it.
    In addition to this there is #import,file and #import,dir which lets you specify a path to a module file or directory.

  • @Nootlink
    @Nootlink Месяц назад +13

    Imo the usefulness of LSP depends with what language you are writing.
    So if you are writing in a typed language, LSP is just a sugarcoat, but if you are writing in a dynamic language, LSP is a must.

    • @TwilightTrekker1
      @TwilightTrekker1 Месяц назад +4

      Why is it a must for dynamic languages?

    • @yepisme455
      @yepisme455 Месяц назад +6

      @@TwilightTrekker1 because he said so

    • @Karurosagu
      @Karurosagu Месяц назад

      🤔dynamic languages don't need an LSP, you might need it if your project is big/complex enough
      statically typed languages should use LSPs

    • @HalfMonty11
      @HalfMonty11 19 дней назад

      Yeah, id agree. I can seen no lsp with Rust or Odin being possible but no lsp with Typescript sounds like hell on earth

  • @buffer0xaa555
    @buffer0xaa555 6 дней назад

    Bill is one of the brightest people in programming space.

  • @m4rt_
    @m4rt_ Месяц назад +3

    I have access to Jai, and I use it frequently. When I began using it I used the "using" statement a lot, but after using it for a while, I calmed down the ways I was using it. It can get a little confusing, it but can be very nice to use from time to time. So now I either use it for structs, or small functions where it is clear what it means, for example:
    Entity :: struct {
    position: Vector2; // Sometimes I will make the x and y coordinates here visible in the Entity scope, by using the "using" keyword, but that is not useful in this example.
    velocity: Vector2;
    speed: float;
    }
    FRICTION :: 40.0;
    move_on_input :: (using entity: *Entity, delta: float) {
    Vector2 direction = normalize( get_input_direction() );
    if length(direction) > 0 {
    velocity += direction * speed * delta;
    } else {
    velocity *= FRICTION * delta;
    if length(velocity) < 0.1 then velocity = make_vector2(0, 0);
    }
    position += velocity;
    }
    You could also have "using" as a separate statement, so you can do a block an in that block you can access the stuff inside. for example:
    foo :: (a: Vector2) {
    // ...
    {
    using a;
    // do stuff with x and y.
    }
    // ...
    }

    • @ITSecNEO
      @ITSecNEO Месяц назад +2

      Why would anyone use a language which is not even open sourced? I read Jai everywhere, but the f ing language isn't even available for everyone and therefore only used by a really small group of people only

  • @harsha1306
    @harsha1306 Месяц назад +3

    Damn, my man is cooking with so many spicy takes that I want to give him an honorary Indian citizenship

  • @marcsfeh
    @marcsfeh Месяц назад +3

    thank u bill, very cool

  • @hamzarashid7579
    @hamzarashid7579 Месяц назад +2

    Great video. Now, I wanna try Odin.

  • @filipg4
    @filipg4 Месяц назад +3

    Let the bikeshedding about LSP-s begin in the YT comments!

  • @JakEneAS
    @JakEneAS Месяц назад +2

    After watching this, I think I'll be trying out Odinlang. As someone that really likes to know what I'm putting into my projects, pkgs being necessary in some languages for basic functionality drives me nuts. One little package will suddenly add 40 packages.

  • @MikeShah
    @MikeShah 29 дней назад

    Excellent!

  • @rosscousens6263
    @rosscousens6263 Месяц назад +1

    Had no idea Ginger Bill hated beetroots!

  • @MatthisDayer
    @MatthisDayer Месяц назад +1

    daaamn that suit

  • @tutacat
    @tutacat Месяц назад +1

    Turning off LSP makes you self sufficient.
    It would appear that doing the grunt work, and things like using the spacebar to tab out lines manually, makes you more consistent.

    • @bpo217
      @bpo217 28 дней назад +1

      Cackling

  • @fabiolean
    @fabiolean Месяц назад

    LSPs are a huuuuge help for me. I don't know if I'm a dummy or if it's the adhd but I just can't keep that much data in my head all at once. Having an external reference to the structure of the code is invaluable. Before LSPs really caught on, I would just keep a sketch by hand nearby, but integrating it into the IDE has been magical for me.

    • @ITSecNEO
      @ITSecNEO Месяц назад +2

      Those are tech influencers, they always need to say something meaningful to get clicks or likes. Even if it's BS like that take for the LSPs

  • @Heater-v1.0.0
    @Heater-v1.0.0 Месяц назад +1

    I'm a Brit, and not so young, and I have never heard of speech marks. Sounded very weird.

    • @GingerGames
      @GingerGames Месяц назад +1

      I'm probably younger than you, and I was taught that term, even if I know the other ones. BBC Bitesize (kids learning website) uses the term speech marks.

  • @andythedishwasher1117
    @andythedishwasher1117 22 дня назад

    I've noticed that I can embed struct A in struct B, create an instance of struct B, and pass it to a function expecting a struct A parameter, and it appears to work fine. This would appear to give the ability to do something like class extensions in languages like Java or Dart. Not sure yet if this is an antipattern. Would love to hear thoughts of other Odin developers.

  • @nomadtrails
    @nomadtrails Месяц назад

    TJ is an excellent interviewer

  • @thef9313
    @thef9313 27 дней назад +1

    As a german, I can't use this language. Glad that JBlow listen to his chat and discarded the ^ character from jai, since it absolutely sucks to use on a german keyboard.

    • @GingerGames
      @GingerGames 25 дней назад +2

      Our very early users of Odin were all Scandinavian and they had the same "problem". It turns out that in practice, using `^` is not as common as you think due to Odin's type inference. And typing that dead key is not that much of a problem in practice.

    • @Thyringer
      @Thyringer 15 дней назад +1

      I don't understand what your problem is: ^ is right above the tab key, click on it once, then space; or just twice in a row. Done!

  • @Omnifarious0
    @Omnifarious0 25 дней назад

    12:50 - I completely agree with him about package managers. I frankly find Go and Javascript to be frightening. The way they manage dependencies is like begging for a supply chain attack. At least a deployed Go program can't be modified by having its dependencies updated.
    And the way Maven works actively disgusts me. "Oh, I can't be bothered to have a consistent version of this dependency over my entire project. Lets just package the specific version I need for the various pieces with those pieces and we can just let them all exist in the project simultaneously!". Blech! Who EVER thought that was a good idea in any way?!
    And, from what I've seen, Cargo and Rust are about the same as Go, maybe a little bit better.

    • @HalfMonty11
      @HalfMonty11 19 дней назад +1

      Cargo is a bit better. You can't delete from cargo so if you depend on a specific version, even if deprecated you can still fetch it to build. With go I had a project become unbuildable because a dependency of a dependency of a depependency I was using dissapeared when someone deleted a tag from github.

  • @TheMotorcycleBoy-pe2eg
    @TheMotorcycleBoy-pe2eg Месяц назад +1

    RUclips keeps defaulting me to Primeagen's videos whenever any other video ends. He is becoming ubiquitous. I go to sleep listening to Under Milk Wood and wake up to hear Primagen excoriating some hapless dev somewhere, or lampooning some 1980's geek satire. I now have keywords emblazoned in my mind. My subconscious has been invaded. This week it was "Quiche-Eaters". I listened for half an hour, semi comatose, to Primagen on Quiche eaters. I have decided that all this is a sign. I am now subscribed to Primagen. But I am curious, has anybody else been MKUltra'd by RUclips like this?

  • @bhaumiktalwar1567
    @bhaumiktalwar1567 Месяц назад +4

    Ginger Bill needs to promote ODIN more

  • @RomaineRC
    @RomaineRC Месяц назад

    I'm not saying this about any particular thing point that was made but Prime looked like he entered The Deepest state of Lifechanging thought. 14:35 onwards

  • @bertram-raven
    @bertram-raven Месяц назад +1

    Faster without IDE autocomplete? My personal experience is I agree. Many autocomplete suggestions are highly inefficient.

  • @domogdeilig
    @domogdeilig Месяц назад

    22:40 This has fucked me so hard. Didnt know this spent hours figuring out why something didnt build when I made an ETL to get electricity prices for Norway.

  • @sn-xc7rv
    @sn-xc7rv Месяц назад +2

    Electron users in shambles 😂

  • @AndrewTSq
    @AndrewTSq Месяц назад +2

    I like Odin, lsp a u c k a.

  • @Lorne_at_work
    @Lorne_at_work Месяц назад

    Well, Learning Odin is back on the todo list. Thanks guys. :D

  • @martinseal1987
    @martinseal1987 Месяц назад +2

    I agree with the package manager take, but im still going to use one, im making an app for some people to interact with a database not the mars rover

    • @GingerGames
      @GingerGames Месяц назад

      And you needed a package manager to download something to interface with a database? And I don't ship things on Mars either.

    • @martinseal1987
      @martinseal1987 Месяц назад +2

      @@GingerGames it's a mobile app so yes it has a package manager out of the box

    • @martinseal1987
      @martinseal1987 Месяц назад

      @@GingerGames and it uses yaml 😂

    • @GingerGames
      @GingerGames Месяц назад

      @@martinseal1987 that didn't answer my question.

    • @GingerGames
      @GingerGames Месяц назад

      @@martinseal1987 that didn't answer my question.

  • @yaksher
    @yaksher Месяц назад

    @3:00 I have slightly mixed feelings about copilot, but what I'm a bigger fan of is inline chat. Like, I've been using Cursor and for some rote stuff, it's really nice to be able to just tell it to write some code here or modify the code in some specific way. It's much less intrusive than copilot but it gives you have most of the benefits.
    Like, lately I've been working on a project which is a bot which forwards messages back and forth between two messengers and it's a lot of annoying work with meshing their APIs and most of the code exists in two directions which are conceptually basically the same but can't really be abstracted over due to the details and so it's nice to be able to just paste the code and tell it "rewrite this to be in the other direction" and then it's slightly wrong and I fix it and it's much faster than doing it by hand.
    I sorta see the vision against autocomplete, but I have two cases I'd make for it
    - first, if you're doing relatively small projects with a new library where the library does a lot of heavy lifting (i.e., "small thing to talk to an API" type programs, like the bot described above), if the library is sensibly made, you can often find what you need without needing to trawl through documentation just by guessing the approximate name of the method or function. This works especially well in languages like Rust, where knowing the type signature of a function tells you pretty well what you need to give it.
    - second, good autocomplete encourages me to use longer variable and function names which would otherwise be really annoying to type. I feel like without autocomplete, there's definitely a pressure to pull Linux-style `fcntl` and `prctl` crap (where they couldn't even be bothered to standardize an abbreviation of "control") instead of using descriptive names like `file_control` and `process_control` which can then be typed with fcntl-TAB.
    An interesting thing I've realized with myself is that I talk to people a lot about code in chat platforms like Discord, where they have nice code blocks but they don't have any autocomplete or whatever at all, for example, which I think ends up being nice because despite using copilot and LSPs and stuff, I still regularly exercise (at least in small amounts) my ability to just... write some code.
    @19:40 An HTTP server is simple. An HTTPS server is not. And nobody needs an HTTP server these days, they need an HTTPS server, and nobody should be implementing TLS themselves because it will be done wrong. In general like, I see the point with package managers... but also, like... a lot of stuff, it would be really nice to have done right, once, correctly and not reimplemented from scratch.
    Some of it belongs in the standard library but the standard library can only support so much. The standard library probably shouldn't build sqlx into it though, and I really have no interest in writing a parser for Discord's particular brand of markdown myself. Yes, in a world where people have an infinite amount of capacity to write code, they can implement everything themselves from scratch and for most things this would technically be an improvement. But while for foundational things, it probably makes sense to minimize dependencies, even for things which aren't prototypes, it's not feasible to implement everything yourself.
    I think it does pretty heavily depend on languages too though. Average JavaScript dependency is probably a lot buggier than average Rust dependency.

  • @FlyingSherlock
    @FlyingSherlock Месяц назад +2

    I am also using Sublime Text without autocomplete and love it

    • @slawtul
      @slawtul Месяц назад +2

      I do not know why these two smart guys think Sublime Text is free :| (buying license is required)

    • @skaruts
      @skaruts Месяц назад

      ​@@slawtul no it's not. You can use it indefinitely for free. It nags you to buy it, but that's it. I've been using it for free for almost a decade now.

    • @GodOfMacro
      @GodOfMacro Месяц назад

      @@slawtul I'm fine paying tools I use if that means they are actually good, also easy to ignore the popup and use for free, sometimes I spent months before I setup my liscense on new builds...

    • @skaruts
      @skaruts Месяц назад +2

      ​@@slawtul that's not true. Buying a license is not required. I've been using Sublime for a decade now, and I've never bought it yet.
      (RUclips keeps deleting my replies, so if you see more than one by me, that's why.)

    • @slawtul
      @slawtul 28 дней назад

      @@skaruts Yes, it's required. From a page: "Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued use." You have been using it for so long without paying cause Sublime has not got a frustrating mechanism asking you to buy a license, like a '30 minutes shutdown mechanism'. That's all.

  • @slendi9623
    @slendi9623 Месяц назад +1

    Finally I was waiting for this

  • @germandavid2520
    @germandavid2520 Месяц назад

    I would still use LSP without autocompletion, LSP has other features that automate things that are not worth wasting time on, for example renaming a symbol that is used in different parts of the code, what do I gain by doing this manually? nothing. Other features like find references and go to the definition are very useful, I don't want to waste time searching through a filetree for that.

  • @fennecbesixdouze1794
    @fennecbesixdouze1794 23 дня назад

    @2:20 This is not an uncommon opinion at all, boggles my mind that Prime has never heard it before. Rob Pike (and other people on the Go team) say they're more productive not having syntax highlighting/coloring. Again, the same idea: by not leaning on the syntax colors, they find they think about the actual code more.

  •  Месяц назад +2

    > Swizzling: You can do .XXY or .YYZ if you like Rush.
    Rush mentioned, let's goo 🤘

  • @Silas2-p7c
    @Silas2-p7c Месяц назад

    Great episode.

  • @KodosUnofficial2-jq5oo
    @KodosUnofficial2-jq5oo Месяц назад +2

    Odin is getting more popular and got more attention 😅

    • @ITSecNEO
      @ITSecNEO Месяц назад +1

      I don't think Odin will ever be mainstream, as Zig is simply a better C successor. I also don't see the point in using it over C++ for Game Dev, also considering that rust makes huge steps forward in that area too. So where is the point of Odin?

    • @KodosUnofficial2-jq5oo
      @KodosUnofficial2-jq5oo Месяц назад

      @@ITSecNEO code readability

  • @brentsaner
    @brentsaner Месяц назад

    Golang fixes a lot of the package management issues he expresses. It supports both vendoring and remote packages, the latter of which are/can be an explicit locked version/commit

  • @NVM_SMH
    @NVM_SMH Месяц назад

    We English sound better because we actually pronounce our "t"s. Then proceeds to put a "k" on the end of words ending in "ing". 😂

  • @n30v4
    @n30v4 Месяц назад

    Every step you don't take is a step you won't learn from.

  • @andythedishwasher1117
    @andythedishwasher1117 22 дня назад

    BILL IS GRUG!

  • @iatheman
    @iatheman Месяц назад

    "A little copying is better than a little dependency."
    And downloading dependencies statically is great for the team's collective sanity.
    Had to upgrade a server and the Python dependencies last week. What a hassle... Things were broken 3 levels deep in code the application didn't even interact with directly.
    Semver really is an idealistic contract that gets broken often. Especially if you have a lot of dependencies.

  • @jemm8363
    @jemm8363 20 дней назад

    when to expect Andrew on talk??

  • @bkr_418
    @bkr_418 Месяц назад +2

    Can’t find episode one? You have a dedicated channel or playlist somewhere?

    • @ThePrimeTimeagen
      @ThePrimeTimeagen  Месяц назад +5

      I think it's called so I talked to Chris lattner. Let me rename it properly and make a playlist

  • @hamm8934
    @hamm8934 Месяц назад +4

    Ive added a toggle for my LSP autocompletion, with autocompletion off by default.
    I find forcing myself to actively recall variables and methods 10x speeds up my learning of a library or codebase.
    If I’m really stuck, ill toggle it on for a sec, but then right off. I basically use autocompletion like flashcards and im never going back.
    But to each their own :)

    • @ITSecNEO
      @ITSecNEO Месяц назад

      I call it BS and placebo, but yep, each their own I guess

    • @hamm8934
      @hamm8934 Месяц назад

      @@ITSecNEO lol calm down. No one is forcing you to turn off your auto completion.
      I just found that by the time I’m able to get up to speed with a library or codebase, the auto completion is almost redundant. I already know what I need to type. Outside of spelling or similar named methods, auto completion is probably the least valuable part of an lsp.

    • @ITSecNEO
      @ITSecNEO Месяц назад

      @@hamm8934 So what is the point to disable the LSP then? Auto completion is a nice to have but not important. My point is about Auto Suggestions, as we can see all the available functions for variables without the need to open the docs. Hovering the functions shows the doc definition anyways, so also no need to refer to external docs. Why should we throw all of this benefits away and step back into stone age, if we can be way more productive with a LSP? If your argument would be about Copilot f.ex, I would totally agree, but the LSP is a really important component of a language in my opinion.

    • @hamm8934
      @hamm8934 Месяц назад

      @@ITSecNEO you misread my comment. Im not disabling the lsp, just autocompletion while i type. I still have my error checking, go to definition, auto imports, etc.. I just toggled off the autosuggestion while I type. By disabling this, it forces me to actively recall names. I started doing this after my first few white board interviews back in the day where suddenly i was second guessing myself about the names and syntax of basic functions.
      When youre learning a new codebase, I found auto completion just delays how long it takes to really memorize different functions and methods. And once you know them, youre often not even using autocompletion anymore because you can just type them.
      If i really need completion, i just hit my completion keybind and it shows the options.

    • @ITSecNEO
      @ITSecNEO Месяц назад

      @@hamm8934 Ahhh my fault, sorry. That makes sense, I really thought you disabled the whole LSP. Was a little bit late yesterday haha

  • @kibels894
    @kibels894 Месяц назад

    Importing dependencies should be a little painful to make you think before doing it.

  • @Alex-cx7tv
    @Alex-cx7tv Месяц назад +1

    Compiled languages can probably avoid the usage of an LSP, but man would I be dogwater at Python without the help of autocomplete I would be DOA. Damn language has too much freedom to create too many dev-traps.

  • @WizardofWestmarch
    @WizardofWestmarch Месяц назад

    Still early in watching, his take on package managers is fascinating, because it says a lot about the development community and not about package managers themselves.
    Because packages are easy to make, anyone can make them. Because anyone can make them, bad ones get in, but if they happen to be useful despite being poorly optimized, maybe having a bad API, etc, we end up with a worse environment because they become deeply embedded in the ecosystem and make it all worse.
    Huh.
    Edit: I should have gone a little farther. I actually disagree with his prototype take. A lot of developers I know understand the difference, but the business forces them to ship without going back and doing a "real" implementation. At best they get to go do a bit of hardening around the first version.

  • @hungrymusicwolf
    @hungrymusicwolf Месяц назад

    45:51 we're still the generation creating the ideas based on the previous generations bad decisions. We will be the ones to prove our ideas to be wise or stupid.

  • @freeo6242
    @freeo6242 27 дней назад

    For 95% of working programmers it's pointless to even think about ditching LSPs. Work day consists of 10 big topics, your programnming language being just one of them. People need to use every help they can get to fulfill deadlines. This is not a *hrm...* lsp-measuring contest, who knows more ins and outs of a language so that you can spew more "Akchually"-memes.
    gingerBill is a language creator with a very specific skill profile. And 95% of programmers do not fall into that category. When your whole working day consists of working in just one language for 100%, then you will reap the benefits that Bill is talking about. But every average dev who also needs to work with many things like cloud, DevOps and all the other modern shit: Stay the hell away from this "advice".
    And to students: Just use your time wisely. Know when to turn on the LSP again, just like Prime says.

    • @GingerGames
      @GingerGames 25 дней назад

      My "advice" wasn't even advice, I literally just said that when I stopped using intellisense-like functionality, I PERSONALLY got more productive. I was not telling other people to do that. And I work in multiple different languages and projects on a daily basis. On a daily basis, I am use C, C++, Odin, GLSL, JS, etc. So I don't really have a "very specific skill profile". All I was implying is actually test your assumptions and don't just go "well using this tool makes me more productive but I have evidence for the contrary".

    • @freeo6242
      @freeo6242 25 дней назад

      @@GingerGames Wasn't expecting a reply from the man himself :-) Please excuse the harsh tone, but junior devs need to hear the brutally direct version to even start thinking. Almost a shame that you've read it.
      I've put the "advice" in quotes to highlight your personal, individual experience, which shouldn't be generalized. But this is exactly what a junior dev will hear: A guru speaks ANYTHING and a junior will take this as literal advice without reflecting, because he lacks the experience to reflect upon.
      I'm stating that what worked for you personally, won't work for the majority of average devs. I just want them to think twice - not arguing with you. In fact, when I can focus on just coding on ideally one language for quite some time, I've witnessed the same thing. But most regular jobs don't enable that. Devs are loaded with way too much bullshit and need to use every help they can get.
      I fear the next time that I interview junior devs for a corporate job, project work etc. they will talk about not using LSP's... And they will be slow as fk. Most of them should really leave LSPs on.
      And believe it or not: working with C, C++, Odin, GLSL, JS on a daily basis, designing and extending a programming language is a very specific profile. I've met few people and far inbetween, who would do such work for companies.

  • @joelinman6455
    @joelinman6455 Месяц назад

    I removed copilot about a year ago when I noticed that I was no longer thinking about problems anymore and kind of waited 2-3 secs to see what it generates.
    Realistically I stopped problem solving the problems and found I ended up spending more time trying to debug and fix copilot snippets

    • @joelinman6455
      @joelinman6455 Месяц назад

      Using copilot just felt backwards, we should be writing a solution to a problem and then maybe using AI to rubber duck it after your happy with your tests

  • @ChaitanyaSoni96
    @ChaitanyaSoni96 Месяц назад

    not having xcode autocomplete circa 2019 when i had to use a 4gb macbook air (employer's) to develop in objective c made me a better programmer. not just in terms of learning all syntax, but also gives you continuity in your thought process since you dont have to pause for the autocomplete to write the code youre trying to. autocomplete has been off for me since then!

  • @Spriters400
    @Spriters400 25 дней назад

    Can we access the second part of the discussion somewhere ?

  • @matthewstott3493
    @matthewstott3493 Месяц назад

    Sigh... I guess I am just old... I remember sitting on the floor with no less than 3 heavy programming books and a language reference guide. A paper notebook and graph paper, had to have graph paper. This is was pre-RAD IDE. There was no drag and drop GUI design, you spec'd out the x, y pixel positions for just about everything in code which means you had to calculate it on graph paper for every button, label, etc. Intelligent autocomplete helps a lot as well as the online documentation for newbie. But I can see how autocomplete may become annoying to someone intimately familiar with a language.

  • @tutacat
    @tutacat Месяц назад

    The North American accents is closer to older English.

  • @ChrisP872
    @ChrisP872 Месяц назад +6

    LSP according to copilot: The Language Server Protocol (LSP) is a standardized protocol used to communicate between a code editor or integrated development environment (IDE) and a language server. This protocol enables the editor to provide advanced language features such as auto-completion, go-to-definition, and error checking.

  • @tutacat
    @tutacat Месяц назад

    YAML is just a superset of JSON

  • @andythedishwasher1117
    @andythedishwasher1117 22 дня назад

    I don't think there's any shame in asking LLMs specific questions about the features of the language you're using. If you target the language rather than specific implementations of it, they're far more helpful because most language documentation is highly available in their context. If you need to figure out how to do something general, it will tell you how and why it's done that way in the context of the language, sometimes revealing facts under the hood that you would have had to dig through a lot of docs to learn otherwise. I don't think auto-complete is the way, but LLMs are fantastic at playing rubber ducky and grabbing highly available facts quickly.

  • @bernardobeninifantin509
    @bernardobeninifantin509 Месяц назад

    Is the interviewed son of Jimmy Akin?

  • @notoriouslycuriouswombat
    @notoriouslycuriouswombat Месяц назад +2

    i still think i would rather a package manager, sure nothing's perfect but I think there are more pros than cons

  • @alskidan
    @alskidan Месяц назад +2

    I’m disappointed. Still no information on how to do ECS, god damn it

    • @GingerGames
      @GingerGames Месяц назад +3

      Please don't do it. The reason there is little good information is because if you know how to do it, you know what to use it for. If you don't know how to do it, it's really not for you.
      It's just applying the lessons of relational databases to games. That's pretty much it.

    • @alskidan
      @alskidan Месяц назад +3

      @@GingerGames Why so serious? 😅 I guess my jokes are as good as my understanding of ECS.
      They are PERFECT 😉

  • @Kapendev
    @Kapendev Месяц назад +5

    I don't get why he dislikes package managers. You can go crazy with everything, does not mean it's bad. Also the idea that you know better your deps if you download the library manually is not real.

    • @GingerGames
      @GingerGames Месяц назад +7

      As I said: it automates dependency hell. It's not just that "you can go crazy", everyone goes crazy with it. And package managers have accelerated that craziness.
      And doing it manually slows down that craziness. Does it stop it entirely? No. But it does nudge people go at least consider what they are doing most of the time. And if that still doesn't help, that person cannot be helped at moment in time.

    • @slendi9623
      @slendi9623 Месяц назад +3

      ​@@GingerGames if you give it to people, people will use it, if you can go crazy with something, people will go crazy with it

  • @SaiyanJin85
    @SaiyanJin85 Месяц назад

    Didn't know Louie CK is a developer

  • @marconisoares2186
    @marconisoares2186 Месяц назад

    Gregorio do vivie kkkkk

  • @krux02
    @krux02 Месяц назад

    3tb? I am sure we will get there some day for a single application.

    • @aenguswright7336
      @aenguswright7336 Месяц назад

      I mean, I feel like when I’m installing word and it takes 1GB we’re pretty much already there…

  • @mobugs
    @mobugs Месяц назад

    CRAN did it right but no one took after it because R

  • @NostraDavid2
    @NostraDavid2 Месяц назад

    Yes, but does Odin have Monads? (I've not written a single line of Odin, yet, and have no idea how Odin does error handling. Not via exceptions, I hope!?)

    • @UnidimensionalPropheticCatgirl
      @UnidimensionalPropheticCatgirl Месяц назад

      odin doesn’t have “monad” construct, it handles error handling by multi returns usually, there is also compiler directive that forces you to not discard the error, but nothing is stopping someone from implementing option type.

  • @tempy-tq3ix
    @tempy-tq3ix Месяц назад

    this guy needs to be safeguarded cause his take at 13-14(minutes) might make alot of people to want him gone.