Go 1.22 Released!

Sdílet
Vložit
  • čas přidán 8. 02. 2024
  • Recorded live on twitch, GET IN
    / theprimeagen
    Become a backend engineer. Its my favorite site
    boot.dev/?promo=PRIMEYT
    This is also the best way to support me is to support yourself becoming a better backend engineer.
    Article link: tip.golang.org/doc/go1.22
    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-Kinesis
    Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
    turso.tech/deeznuts
  • Věda a technologie

Komentáře • 213

  • @felixjohnson3874
    @felixjohnson3874 Před 5 měsíci +295

    Prime : "Go is one of the most productive languages I've ever used"
    Also Prime, 30 seconds later : "I don't know the syntax of a for loop in Go"
    *_- PROGRAMMING 100 -_*

    • @TheQxY
      @TheQxY Před 5 měsíci +23

      I guess because you'd almost always use range for loops in Go.

    • @user72974
      @user72974 Před 5 měsíci +61

      The duality of Go programmers. Highly concurrent code? Sure. Message passing? No problem. You want me to write a for loop? One sec, looking that up in the docs.

    • @thewilltejeda
      @thewilltejeda Před 5 měsíci

      Hahahaha

    • @TheERAUEagle
      @TheERAUEagle Před 5 měsíci

      Just think of C for loops and some range for each! Lol

    • @chriss3404
      @chriss3404 Před 5 měsíci +5

      Weirdly, I think this is one of the great things about the language.
      It's so simple that you don't even need to memorize the details to jump back in and get up to speed in a few hours.

  • @CurlyCow
    @CurlyCow Před 5 měsíci +216

    They put "for" in quotes because that's the grammatically correct way to do it. The sentence makes no sense without those quotes.

    • @adityaanuragi6916
      @adityaanuragi6916 Před 5 měsíci +11

      Ikr it's like what stackoverflow does for highlighting words, that was obvious

    • @k225
      @k225 Před 5 měsíci +26

      The sentence would make sense if the for-loop was hyphenated

    • @CurlyCow
      @CurlyCow Před 5 měsíci +4

      @@k225 also that, yes :)

    • @XerosOfficial
      @XerosOfficial Před 5 měsíci +11

      The way I like to do it is to switching to a mono font / putting the text in a pre tag or code block.

    • @kj_sh604
      @kj_sh604 Před 5 měsíci +10

      I just tell people "english is not my first language" and let the readers decipher which for was used to imply a for loop in a for example section for for loops.

  • @ForeverZer0
    @ForeverZer0 Před 5 měsíci +36

    I didn't even want to like Go, but it just happen after getting familiar with it. I was simply experimenting around with it for the sake of learning, and I figured it would be beneficial to at least be familiar with it since its popularity was growing, and it ended up being one of the first languages I reach for when starting some new project where it makes sense.

  • @rosehogenson1398
    @rosehogenson1398 Před 5 měsíci +24

    The "for" loop changes apply to all loops, not just "for range"

  • @sfulibarri
    @sfulibarri Před 5 měsíci +13

    The little aside on mocks at 9:40 is great. Its one of those things that can really click in your brain sometime in the transition from jr to mid level and just feels so powerful because suddenly all your code *feels* testable when its likely not. I think Prime is on point about separating the i/o from the processing wherever possible to make mocking unnecessary or minimize where it is required as he also correctly states that sometimes its not possible to entirely separate them or it may be possible but doing so is extremely difficult without significantly complicating the design. Aim for those idealistic principles but be willing to toss them when its clear they are not benefitting you.

    • @garrywreck4291
      @garrywreck4291 Před 5 měsíci +3

      +1.
      The only use case for mocks for me is when you want to test whether your class correctly calls callbacks passed from other parts of your app.
      Then you just don't care and mock is fine.

    • @shellderp
      @shellderp Před 5 měsíci +1

      I hate mocks so much. It seems good on the surface but quickly becomes a huge mess. Two huge issues: 1. you tie the implementation very closely to the tests, so changing implementations breaks a lot of tests, 2. any time your code is changing state you cannot inject more mocks between function calls from the test, and a stateful fake will save you a lot of duplicate test code

  • @thesaintseiya
    @thesaintseiya Před 5 měsíci +15

    the name... *some long ass monologue* AGEN never gets old

  • @RiumEqua
    @RiumEqua Před 5 měsíci +15

    well, recently i've read something like that in our codebase:
    for(int i=0; i

    • @bumpjammy
      @bumpjammy Před 5 měsíci +2

      Potentially they did something to i inside the for loop? Either way, if so, that should have been a while loop

    • @y00t00b3r
      @y00t00b3r Před 5 měsíci

      paid by the line

    • @kuhluhOG
      @kuhluhOG Před 5 měsíci

      @@y00t00b3r since the "if" would be the same amount of lines
      the line is just a bit shorter

  • @mr.unforgettable
    @mr.unforgettable Před 5 měsíci +30

    Well I was just checking the go changelogs and was thinking - "I remember Prime was recently working with go, I hope he will make the video on it as we go some new shiny toys". I was dead on point. Let's Go 🏎🏎!!

  • @AlexisAmk
    @AlexisAmk Před 4 měsíci +1

    coverage is great for indicating whether a new block of code has even been tested

    • @airkami
      @airkami Před 2 měsíci

      But it doesn’t care if said test is meaningless

  • @islamhe530
    @islamhe530 Před 5 měsíci +7

    Lets GO from now

  • @cheebadigga4092
    @cheebadigga4092 Před 4 měsíci +1

    My take on testing and coverage: test the validity/correctness of features/subfeatures rather than look at some arbitrary numbers. In cases like handling secrets such that they don't leak etc, you could argue for 100% coverage for these certain code blocks though.

  • @hosseines276
    @hosseines276 Před 5 měsíci +9

    his hair is transparent due to green shades XD

  • @wnichols6671
    @wnichols6671 Před 5 měsíci +4

    "I'd rather type a little bit more than have slow compile times" rust in shambles; you type more and get slow compile times🤣

  • @Slashx92
    @Slashx92 Před 5 měsíci +2

    13:05 test bros will see a test to evaluate if adding two numbers actually adds them, and act like that's normal and expected in the development cycle

  • @TheCatmorte
    @TheCatmorte Před 5 měsíci

    kinda agree with having coverage. since it's unit testing (which obviously the easiest part of auto testing) it's better to cover not just 40% which probably u mostly concentrated on during the implementation but also on some edge cases which may behave unexpectedly. And the big + is that testing requires some code optimization and refactoring to make the code testable

  • @aidanbrumsickle
    @aidanbrumsickle Před 3 měsíci +1

    Coverage is great as a quick reminder if you forgot to add tests or something. It should not be a requirement.

  • @scottguidotti
    @scottguidotti Před 5 měsíci +2

    Best part of this video was I learned what sqlc is. Gonna make my life so much easier !!

  • @jfftck
    @jfftck Před 5 měsíci +7

    I am loving the Rust range syntax, it has a simple way to make the range inclusive by adding “=“ before the end number. Go and Rust are the two languages that I feel everyone should try to use and will make production ready code - where Go doesn’t need external dependencies and Rust will give you some built in safety, but you need to understand memory management.
    I like what I see in Zig, but I feel that it is still too early and the language needs to mature more before it is fully production ready.

  • @histeward
    @histeward Před 5 měsíci +3

    Let’s GO!

  • @catwhisperer911
    @catwhisperer911 Před 5 měsíci +16

    Both Rust and Go are IMHO shaping the future of development in very positive ways. I'm currently considering rewriting a lot of my Node-based projects using one or the other depending on which is more suitable to the task. When deciding which to use, the impact of garbage collection on the running process will be the driving concern. Roughly 90% of my projects would not be negatively impacted by garbage collection so these would definitely be a candidate for using Go whereas the remaining 10% would benefit from Rust. Yeah, I'm really excited about this even though it is going to be a lot of work. Oh the sacrifices I have to make as a software engineer LOL. Thank you, Prime, for your very interesting take on this Go release. Much appreciated.

    • @juanmamani2110
      @juanmamani2110 Před 5 měsíci

      hummm and what about Hare, Zig ...

    • @bradywb98
      @bradywb98 Před 3 měsíci

      Literally never heard of Hare so I think it’s safe to say they’re not

    • @metabolic_jam
      @metabolic_jam Před 26 dny

      Rewrite is usually considered a bad idea unless the scale justifies the cost savings it brings

  • @vectorlua8081
    @vectorlua8081 Před 5 měsíci

    Thanks for the upload.

  • @DerTim
    @DerTim Před 5 měsíci +2

    It would be interested how effective mutation tests are in go. Next topic I will look into :)

  • @paxcoder
    @paxcoder Před 5 měsíci +1

    @ThePrimeTimeagen You always seem to consider Java slow, but if I'm not mistaken optimizations such as that PGO you mention in this video can be done at runtime on the JVM. And hot paths can change under some circumstances, right?

  • @ehfoss
    @ehfoss Před 5 měsíci +2

    Let's Goooooooo

  • @arturfil
    @arturfil Před 5 měsíci +1

    A data structures module would be nice

  • @bluegreenbugs
    @bluegreenbugs Před 5 měsíci +4

    Most tests should not be unit tests. Integration and end to end tests are way more helpful. I find checking before writing a test if it will make release faster and with more confidence. If it does, it is a good test, if it doesn't it is technical debt.

    • @y00t00b3r
      @y00t00b3r Před 5 měsíci +1

      exactly. too many useless unit tests just make the codebase more brittle. need to refactor some code? congratulations, now you need to rewrite 27 unit tests. Result: desire to avoid refactoring.
      100% code coverage is choosing "green checkmark culture" over actual thinking.

    • @buzz1ebee
      @buzz1ebee Před 5 měsíci

      Yeah testing trophy over testing pyramid any day of the week for most web apps.

  • @Im_Ninooo
    @Im_Ninooo Před 5 měsíci +2

    slog is pretty neat

  • @d3stinYwOw
    @d3stinYwOw Před 5 měsíci

    On test coverage and 'how to write tests' you're inline with CD guy :D

  • @georgehelyar
    @georgehelyar Před 5 měsíci +2

    The test coverage thing is really easy. Test 100% of desired behaviours, not 100% of lines of code.

    • @SatumangoTheGreat
      @SatumangoTheGreat Před 2 měsíci

      Yes, but counting line coverage is easy for a test coverage tool to reason about. I wouldn't know how to automatically check for behavior coverage.

  • @derzart
    @derzart Před 5 měsíci

    The "for" loop thing used to be an interview question that was supposed to "get you". Thanks god its now gone.

  • @SirSomnolent
    @SirSomnolent Před 5 měsíci +43

    Prime slowly morphing into theo with that hair. Did he lose a bet?

    • @ninocraft1
      @ninocraft1 Před 5 měsíci +14

      yes he did, im not sure what bet, but he said in previous video

    • @Edwin-nl3qu
      @Edwin-nl3qu Před 5 měsíci +10

      @@ninocraft1 2000 subs in a single stream.

    • @user72974
      @user72974 Před 5 měsíci +2

      Yes, but he needs to keep the blue hair. Looks good.

    • @DocHudson420
      @DocHudson420 Před 5 měsíci

      @@user72974no

  • @ionel71089
    @ionel71089 Před 5 měsíci +18

    “Go full Ada”. Yeah, Swift has that ❤
    for number in 1...10 {
    print(number)
    }

    • @plaintext7288
      @plaintext7288 Před 5 měsíci +1

      The day Swift gets big in the backend will be the day of celebration for the dev community

  • @Djolewatchtastife
    @Djolewatchtastife Před 5 měsíci

    Mock's are fine if you are building a large project, it speeds up test completion time instead of awaiting real requests. I hate personally when a project's test takes forever to run because of the amount of requests it makes. Mocks make sense for unit and integration tests but not E2Es and are easy to write especially with copilot or ChatGPT.

    • @shellderp
      @shellderp Před 5 měsíci +1

      the alternative to mocks is not real requests, its to use Stateful Fakes

  • @catchingavocados
    @catchingavocados Před 5 měsíci

    I loooooooove the changes to the router!

  • @notuxnobux
    @notuxnobux Před 5 měsíci +2

    18:02 this would affect SIMD instructions, but who even does that in go?

  • @rust20_
    @rust20_ Před 5 měsíci

    hell yeah

  • @m4rt_
    @m4rt_ Před 5 měsíci +9

    Jai has 0..10 and I love it
    (though I do like the Rust variant of it, where 0..5 is 0,1,2,3,4 and 0..=5 is 0,1,2,3,4,5)

    • @janAkaliKilo
      @janAkaliKilo Před 5 měsíci +1

      Nim has 0..5 for inclusive range and 0..

    • @adriancruz2822
      @adriancruz2822 Před 5 měsíci +1

      At the risk of bikeshedding, Odin has ..< and ..= and I think they are the most intuitive range operators I've seen

  • @B52-ge8qy
    @B52-ge8qy Před 5 měsíci

    Beast!

  • @mrrolandlawrence
    @mrrolandlawrence Před 5 měsíci

    lets go... !!! the more i see go, the less i like rust. there is a quality of readable and working today VS maybe working tomorrow.

  • @Julzaa
    @Julzaa Před 5 měsíci

    GooOOoooOOoo

  • @willmedrano98
    @willmedrano98 Před 5 měsíci +3

    Me working on a Go codebase that hand roles some assembly pointer stuff 😱

  • @Rakstawr
    @Rakstawr Před 5 měsíci

    I've called data mocks "stubs" in the past. Its better but only one step better. Its best to just do integration/functional testing as mentioned.

  • @leetaeryeo5269
    @leetaeryeo5269 Před 5 měsíci

    Honestly, Go is looking more and more appealing to me every day. How well does it handle ODBC db stuff? A lot of the work I do is db oriented, but with a db that I can only access via an ODBC driver (or jdbc, but meh).

  • @steve-adams
    @steve-adams Před 5 měsíci

    I LOVE ITERATORS

  • @SimoneColaci
    @SimoneColaci Před 5 měsíci

    That's cool

  • @Thevoidlezz
    @Thevoidlezz Před 5 měsíci

    Been learning go myself and for a time been asking myself why learn typescript if you know javascript just for the adding types if the could just add types to javascript.

  • @writeorwrong88
    @writeorwrong88 Před 5 měsíci

    There is an hour long video about coverage testing in this Go 1.22 release video lol

  • @LegitBanananas
    @LegitBanananas Před 5 měsíci

    came for go stayed for blue hair.

  • @julianjackson8756
    @julianjackson8756 Před 5 měsíci +1

    Please do a frontend masters test course

  • @kylew5331
    @kylew5331 Před 5 měsíci

    I’m very excited about range-over-function iterators. Go is the most productive language I’ve ever used, and it’s getting *that* much nicer

  • @Bourn77
    @Bourn77 Před 5 měsíci +2

    Serious question, why should I choose GO over languages like C# or Kotlin? Is the syntax that simpler compared to these? Dosent Go also have a runtime and GC, is GO really faster than optimized C# ?

    • @arnontzori
      @arnontzori Před 5 měsíci +3

      Go is simpler and compiles to native with better support (although they're working on it in C#, it'll never have full native AoT support). This matters especially for places where binary size is important or you need a fast startup time (serverless).
      With that being said, no go isn't faster than other languages like C or C++ might be. Its strengths are ease of use, native binaries and fast builds.

    • @diadetediotedio6918
      @diadetediotedio6918 Před 5 měsíci +2

      @@arnontzori
      "(although they're working on it in C#, it'll never have full native AoT support)"
      > Doubt

    • @arnontzori
      @arnontzori Před 5 měsíci

      @@diadetediotedio6918 doubt what? That they're working on it or that it'll never have full native support?
      Because both are statements Microsoft made lol
      .net 8 already has good NativeAoT support just in case you were wondering

    • @arnontzori
      @arnontzori Před 5 měsíci

      @@diadetediotedio6918 what part are you doubting?

    • @y00t00b3r
      @y00t00b3r Před 5 měsíci +1

      because "goroutines" and "channels"

  • @mma93067
    @mma93067 Před 5 měsíci

    Vendor reminds me of php composer . So runtime plugins should be easier to use

  • @Arwahanoth
    @Arwahanoth Před 5 měsíci +1

    you can have unix domain socket on windows but ok...

  • @terrencemoore8739
    @terrencemoore8739 Před 5 měsíci +1

    Prime, you're a Windows user. You may not main it but everyday you stream on a Windows computer, you use it more than most Windows users 😂

  • @sunsetguys
    @sunsetguys Před 5 měsíci +1

    Im waiting go arena, i hope they realese it 😊

  • @andru5054
    @andru5054 Před 5 měsíci

    👀👀👀

  • @stanrock8015
    @stanrock8015 Před 5 měsíci

    No comment on rust release?

  • @xslashsdas
    @xslashsdas Před 5 měsíci +2

    "I think I've become a GO lover" oh so that's why the Go-colored hair.

  • @NathanWienand
    @NathanWienand Před 5 měsíci

    Agree 100% RE: test coverage... Quality > Quantity... coverage = quantity... #math

  • @Kane0123
    @Kane0123 Před 5 měsíci

    40mins again… surely Prime will be up for Podcast awards soon right?

  • @EngineerNick
    @EngineerNick Před 5 měsíci

    Coverage is more important in mathematical /scientific libraries, data utilities and such. I expect 100% test coverage for such libraries.

  • @jorismak
    @jorismak Před 5 měsíci +1

    rangefunc smells like PHP Generators 🙈

  • @krishnaagrawal91
    @krishnaagrawal91 Před 5 měsíci +1

    I dont know what happened. I saw a video with the title "Why Go Sucks ...." uploaded few hours back which was taken down later . I hope i am not alone 😂 who saw it

    • @y00t00b3r
      @y00t00b3r Před 5 měsíci +2

      maybe that was the live stream?

  • @banatibor83
    @banatibor83 Před 5 měsíci

    A 100% test coverage is desirable, it just our tools are dumb. We should have language specific coverage libraries which know what do not needs tests. Like empty private constructor in java, and so on. So it is not that aiming for 100% is bad, we just have a bad definition of 100%.

  •  Před 5 měsíci

    Vendor your own npm leftpad

  • @px2059
    @px2059 Před 5 měsíci

    yo, did you know you also have a main channel?

  • @GreyDeathVaccine
    @GreyDeathVaccine Před 5 měsíci

    Dude, php has built in development server in it's binary :P

  • @mikeglobal9084
    @mikeglobal9084 Před 5 měsíci

    Golang color hair :D

  • @thewayfaringshadow
    @thewayfaringshadow Před 5 měsíci +29

    Coverage: 100% Great tests > 40% Great tests > 20% Great Tests > 100% Poor tests. 100% Poor tests just waste everyone's time.

    • @TheOriginalBlueKirby
      @TheOriginalBlueKirby Před 5 měsíci

      wastes*

    • @JeremyAndersonBoise
      @JeremyAndersonBoise Před 5 měsíci +5

      waste*

    • @onrir
      @onrir Před 5 měsíci +2

      Can someone decipher this?

    • @defeqel6537
      @defeqel6537 Před 5 měsíci

      @@onrir good tests are better than bad tests, and a good coverage of good tests is great, but a good coverage of bad tests is bad

    • @thewayfaringshadow
      @thewayfaringshadow Před 5 měsíci +1

      @@JeremyAndersonBoise thank you... English is hard.

  • @michelepollidori
    @michelepollidori Před 5 měsíci

    Still missing Options and Enums

  • @AlexanderBorshak
    @AlexanderBorshak Před 5 měsíci +1

    Praying for enums in Go!

    • @TheAcademik
      @TheAcademik Před 5 měsíci

      Do you want Enums or do you want pattern matching?

    • @AlexanderBorshak
      @AlexanderBorshak Před 5 měsíci

      ​@@TheAcademik At least I would love to have enums as a set of options. At most, I would love to have an ADT, i.e. sum-type, but not sure if that is possible for Go.

    • @youtubeenjoyer1743
      @youtubeenjoyer1743 Před 5 měsíci +3

      Yet another useless feature to bloat the language.

    • @AlexanderBorshak
      @AlexanderBorshak Před 5 měsíci

      @@youtubeenjoyer1743 Why just not switch to Brainfuck then? Very simple language, with a tiny footprint.

    • @adriancruz2822
      @adriancruz2822 Před 5 měsíci

      ​@@youtubeenjoyer1743do you live under a rock

  • @WilsonSilva90
    @WilsonSilva90 Před 5 měsíci

    0..10 we have that in Ruby :)

  • @wariotx
    @wariotx Před 5 měsíci

    no mocks? how do you test with external resources like databases? do I need to spin up a database instance for every test? mocks are very useful if used correctly

  • @annoorange123
    @annoorange123 Před 5 měsíci +1

    12:20 thats "functional core, imperative shell" pattern. Test the core, it doesn't require any mocks, just call functions with input and test is done. And you dont test the shell, its a waste of time

  • @gosnooky
    @gosnooky Před 5 měsíci +1

    I'll admit Go is a fine language - it just has a very inelegant syntax.

  • @JohnnyBigodes
    @JohnnyBigodes Před 5 měsíci

    Test coverage is the worst ever. I have seen tests, that dont test anything valuable, just to reach the 100% mark. My rule of thumb is, write tests to everything that can get you fired and even this doesnt mean it has to be 100% coverage.

  • @francis_the_cat9549
    @francis_the_cat9549 Před 5 měsíci +1

    Oh looks like go is getting a lot of odin features, nice!

  • @ColinFox
    @ColinFox Před 5 měsíci

    Regarding test coverage - you CAN'T do 100% test coverage all the time. For servers, you will have fail paths that only get executed when an external service is down. Even if you've localized the external service comms to one module, THAT module will be missing a bunch of path execution because of external dependencies.
    Personally, I find the golang cover tool to be most useful when I am working on some unit tests and I use the colourized HTML view to highlight which blocks are executed and which are not, then I choose which to write tests for and write them then. I also write tests when a complex computation or interaction is required, and also if a bug is reported I write a test for that.

  • @olhoTron
    @olhoTron Před 5 měsíci +1

    8:04 anything dogmatic in programming (and life in general?) is bad

  • @Serginho2750
    @Serginho2750 Před 5 měsíci +6

    I'm a Java developer. Go is very sexy for me lol

    • @maximus1172
      @maximus1172 Před 5 měsíci +6

      I'm a Go developer. Rust is very sexy for me lol

    • @rw_panic0_0
      @rw_panic0_0 Před 5 měsíci

      @@maximus1172 I'm a Go developer, ex Rust amateur. Go is very sexy for me lol

  • @deado7282
    @deado7282 Před 5 měsíci +6

    U tellin me

  • @neonmidnight6264
    @neonmidnight6264 Před 5 měsíci +1

    ewww, remember kids, never use Go for back-end when C# exists

  • @nctrnlgz
    @nctrnlgz Před 5 měsíci

    bro did you use RGBA to color your hair 😂

  • @tobene
    @tobene Před 5 měsíci

    Test coverage is like money. It's not that meaningful as long as you have some

  • @LightTheMars
    @LightTheMars Před 5 měsíci +5

    Wow, range loops! Go almost arrived at the 21st century with this release.

  • @Heater-v1.0.0
    @Heater-v1.0.0 Před 5 měsíci +1

    Who ever said 100% coverage by itself was the sole criteria?
    Here is the thing: If you have code in your project that has never been run then:
    1) You have no idea if that code behaves correctly if it ever gets run.
    2) Or, it actually never gets run run and should not be there anyway.
    Ergo you need 100% coverage.
    However, that has to mean coverage by meaningful tests.
    In the avionics work I have been involved in that was mandatory. And yes including checking when and which way every "if" statement jumps. If anything could not be tested for some odd reason there had to be very good reason for it, it hand to be reviewed by three engineers and signed off.
    Of course if one can only afford or is only prepared to do a half baked job then some trade off between percentage of coverage and meaningful testing has to be made.

  • @keyboard_g
    @keyboard_g Před 5 měsíci +4

    Is Go like C# without a heavy runtime and compiling to native?

    • @flogginga_dead_horse4022
      @flogginga_dead_horse4022 Před 5 měsíci +10

      not really no

    • @leetaeryeo5269
      @leetaeryeo5269 Před 5 měsíci +4

      C# allows compilation to native now, but with limited reflection support. Granted, it builds the runtime (or a minimal subset required to run the app, if I understand correctly) into the executable. That said, it’s still not going to be as minimal or as performant as Go, which is ground up designed for quick and native builds, imo.
      Still, C# is a damn good language

    • @keyboard_g
      @keyboard_g Před 5 měsíci

      @@leetaeryeo5269 Yep. Am coding C# on .Net 8. I see the pulling in patterns similar to the borrow checker and chasing native speed with AOT.

    • @3ventic
      @3ventic Před 5 měsíci +6

      It's not very similar to C# at all.

    • @stevefan8283
      @stevefan8283 Před 5 měsíci +1

      You don't even have proper dependency injection in Golang

  • @ktxed
    @ktxed Před 5 měsíci +1

    Sorry but := is a deal breaker for me 😅

  • @captainfordo1
    @captainfordo1 Před 5 měsíci +1

    Don’t care, we’re using Odin over here 😎

  • @AdamFiregate
    @AdamFiregate Před 5 měsíci

    TypeScript, Go, Rust... ❤ Polyglot programming.😊

  • @jonathanjacobson7012
    @jonathanjacobson7012 Před 5 měsíci

    You asked for another language that has HTTP handling as part of the standard library. Well, there is PL/SQL (ptui).

  • @johanneskohnen8747
    @johanneskohnen8747 Před 5 měsíci

    The guy who proposed workspaces: czcams.com/video/wQglU5aB5NQ/video.html

  • @insert-name1500
    @insert-name1500 Před 5 měsíci

    Fucking Babel 😆

  • @janhorak5363
    @janhorak5363 Před 5 měsíci

    You are officially my technical father figure.
    Daddy...

  • @edwardtam1456
    @edwardtam1456 Před 5 měsíci +1

    Hot take: Mock is not useless. Most of the time people just struggle to draw domain boundaries and then when their tests suck they blame it on the mocks.

  • @nexovec
    @nexovec Před 5 měsíci +4

    The boringly practical way of go is the sexiest way to program to me. I don't even know why that's controversial. Also wtf does 100% end-to-end testing coverage even mean...

    • @olhoTron
      @olhoTron Před 5 měsíci +3

      Its controversial because some people like complicated things

    • @ITSecNEO
      @ITSecNEO Před 5 měsíci +2

      Practical way? Look up the code of kubernetes, a complexity and verbosity mess. People who love Go must be some hobby programmers who never worked on a big project with a team lol. Writing Go may be easy, but without some nice syntactic sugar its a night mare to read Go code of a bigger project. The simplicity of Go is a lie, because with simplicity in the language the code gets verbose and complex really fast. Both things are not good for reading code.

    • @nexovec
      @nexovec Před 5 měsíci

      @@ITSecNEO I can mainly feel these pain points in error handling and type conversions, but those are issues that could realistically be addressed individually.
      I'm pretty sure they will add both struct unpacking and the chain result operator into the language one day ™.
      The rest of what you're describing honestly just sounds like technical debt.
      It seems to me that guys at google would write a language with big projects in mind, but I've also never worked with a codebase the size of k8s(that's a little bit of an extreme entry level requirement), so what do I know...

    • @ITSecNEO
      @ITSecNEO Před 5 měsíci +1

      @@nexovec Yes maybe they will add new stuff, but the 1.22 release is already a joke for me. Error Handling is one of the most requested features for years but they give a f. So how long should we all wait until Go gets really usable? I like Go because its a lot like coding C, just better. But at the same time I feel the language is not good enough to compete nowadays. Why should we wait for a language to be complete If we already have better alternatives? I hope you can understand my frustration and my point.
      Working in a big codebase of Go is Not a great experience, I promise. If I remember correctly, kubernetes needed to implement a type system on top of Go because Go's Type system is not good enough by default.

  • @Wielorybkek
    @Wielorybkek Před 5 měsíci +2

    go was supposed to be a very simple language but now it looks to me like they are adding more and more syntax sugar and new features like any othert language. in few years go will be like java. xD

    • @ITSecNEO
      @ITSecNEO Před 5 měsíci +1

      The problem is they add features which are completely bad designed. At the same time they dont have some basic useful features every language should have.

  • @levifig
    @levifig Před 5 měsíci

    Make Go more like Ruby, not Python! ;)

  • @emptytextfield
    @emptytextfield Před 5 měsíci

    you need tests to make sure your code is correct? sounds like skill issue to me /s

  • @rocstar3000
    @rocstar3000 Před 5 měsíci +1

    20:05 Windows? More like Losedows KEKW