Learning Go: A Discussion of the Language with the Author, Jon Bodner | 028

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 41

  • @dereklei1746
    @dereklei1746 8 หลายเดือนก่อน +6

    Super interesting talk. On the one hand, Lane asked great questions, listened patiently, and responded accordingly, without excessive talk about himself like quite a few young podcast hosts do these days. On the other hand, Jon is just insanely knowledgeable.

    • @backendbanterfm
      @backendbanterfm  8 หลายเดือนก่อน

      Really glad you enjoyed this episode!

  • @kevinrineer5356
    @kevinrineer5356 5 หลายเดือนก่อน +1

    I have actually been having a rough time trying to learn Go through the Go Tour right now - primarily because I keep asking "why this way" which isn't answered. It seems to me like I've been fighting the language and I'd benefit from reading Jon's book.
    Thanks for the pod, Lane!

  • @mike4974
    @mike4974 5 หลายเดือนก่อน +1

    The pointer topic was mind blowing. Never thought about it this way, make it a nano sec. faster and debug for hours where what was manipulated, or simply "copy" the value, change it and return the "updated" value. Great stuff!

    • @caseyknolla8419
      @caseyknolla8419 5 หลายเดือนก่อน

      This insight was enough to convince me to get his book.

  • @SnowDaemon
    @SnowDaemon 11 หลายเดือนก่อน

    I actually just put Learning Go on my Amazon Wishlist and this video pops up.
    Cant wait to get into it.
    Good interview, love your content and your site Lane

    • @poggybitz513
      @poggybitz513 10 หลายเดือนก่อน +1

      thats google for you. lol

    • @SanthoshM25
      @SanthoshM25 7 หลายเดือนก่อน

      same thing happened with me lol

  • @justin_ooo
    @justin_ooo 4 หลายเดือนก่อน

    18:50 go was built with the mindset that not much would be added to the language. the tools naturally (pretty much had to) evolve with its adoption since there is a vested interest in improving the tools if the language itself is good. Bodner does a great job touching on the topic.
    47:43 im also a type snob but still use python sometimes to switch things up. with type annotations and an LSP it's a much better situation now. ofc there's a difference between compile/runtime checking of the actual type safety though.

  • @darwinschuppan8624
    @darwinschuppan8624 หลายเดือนก่อน

    44:00 I think you CAN bundle go code as an embed.FS if you prefix the source directory with an underscore. The Go build system has some rules for what directories to ignore, for example if they're named "testdata" or "_*".

  • @thedoodler882
    @thedoodler882 2 หลายเดือนก่อน

    I'm currently reading the second edition, it's great!

  • @interstellar1873
    @interstellar1873 ปีที่แล้ว +15

    Thanks Lane for these amazing episodes. Please have AnthonyGG over for an episode, he's also a great Golang developer.

  • @flaguser4196
    @flaguser4196 4 หลายเดือนก่อน +11

    he didn't leave java. java let him go.

  • @robfielding8566
    @robfielding8566 5 หลายเดือนก่อน

    the real replacement for "goto" is tail recursion. anywhere you have a for loop with a bunch of cases in it, you may have a Finite State Machine. Especially when writing tokenizers, tail recursion really helps to write code that matches the spec. you tail-call into a new state in the FSM.

  • @tofuman9526
    @tofuman9526 ปีที่แล้ว +2

    Great show.
    Any chance you’ll do a Clojure guest? Maybe invite Rich? :-)

  • @akindurosegun2459
    @akindurosegun2459 5 หลายเดือนก่อน +2

    Bean Qualifiers solved that problem sir... but I agree it is a really annoying problem to have to solve

  • @chauchau0825
    @chauchau0825 5 หลายเดือนก่อน +4

    Looking for an episode for Leaving Go for Java

  • @sc2unstable
    @sc2unstable 4 หลายเดือนก่อน +1

    Hey no one is forcing you to use spring, or annotations, or auto-wiring. Honestly seems like to me, this guy never read the documentations and just had some frustrating times with mixed configurations or whatever. As someone that's not even junior(no one employed me yet), I can see the benefits and drawbacks of this style of programming, and it seems quite useful in big corps where you have hundreds of engineers coding the same projects, you do want things to match welll and not have 1000 modules in different coding styles at least for the pipeline stuff that's absolutely mandatory.

    • @abhijitmohanty640
      @abhijitmohanty640 3 หลายเดือนก่อน +3

      Come back to this comment in 5 years 😊

  • @i-am-the-slime
    @i-am-the-slime 4 หลายเดือนก่อน

    I compile PureScript to Golang. That's fun. Higher kinded types, rowtypes, lenses and monad transformers. So good

  • @coolaj86
    @coolaj86 ปีที่แล้ว

    19:25 Someone's building a bridge and they say 'I've got this new idea. I think it's gonna work. Trust me.' ... That's not my bridge. I'll take a boat.

  • @paxdriver
    @paxdriver 4 หลายเดือนก่อน

    16:11 I must object: if you find yourself fighting the language you might just be writing javascript lol
    Being a javascript developer for 20 years is like being that friend who falls into the most destructive relationships.
    I love super stable romantic life, but I like my programming language to surprise me with novelty. C/C++ is just hard, Python is always a black box with libraries and concurrency, Haskell is impractical, lisp is like an ideal that nobody but gurus can read, sharp and php depend so much on versions of language, Java has secret sauce jvm conflicts, and Rust is... Well, Rust is probably perfect if it didn't take so damn long to write/learn anything.
    But javascript is beautiful. Up and running in minutes, it glues to everything but is so fluid it can't tell you why it crashes. It's the affair that never ends.

  • @KangoV
    @KangoV ปีที่แล้ว +7

    "Using Go to do magic tricks"........ "I left Java because of the magic" This gave me a giggle. As a Java dev I hardly ever use inheritance. I use composition all the time. When it comes to performance, how can Java perform 6,000,000 financial trades per second on a single thread? Java is blazingly fast.

    • @i-am-the-slime
      @i-am-the-slime 4 หลายเดือนก่อน +1

      It's not

    • @KangoV
      @KangoV 4 หลายเดือนก่อน

      @@i-am-the-slime Used in financial trades as it's insanely fast. Also check out 1BRC (one billion row challenge). Reads 1 billion lines from a file, aggregates and then prints results in 1.5 seconds. Only language to beat it was C (but only just).

  • @ryanwilliams5499
    @ryanwilliams5499 ปีที่แล้ว

    Amazing 🤩

  • @ninjabeatz905
    @ninjabeatz905 หลายเดือนก่อน

    I didnt leave Python it slithered away, and a Gopher popped up.

  • @eatsomeseaweed9760
    @eatsomeseaweed9760 ปีที่แล้ว +2

    Learning Java now to do QA work. Maybe I should just stop now. 😂

    • @KangoV
      @KangoV ปีที่แล้ว +1

      Lots of new stuff coming along in Java. Quite an exciting time. Avoid Spring!

  • @slansky6626
    @slansky6626 หลายเดือนก่อน

    If you declare more than one bean implementing your interface spring won't start and your IDE will tell you about the conflict as soon you finish typing the conflicting implementation... at least he could have looked for a better excuse 😂

  • @a0um
    @a0um 10 หลายเดือนก่อน +1

    Re immutability and concurrency: what about using channels of a value type or an interface without methods to mutate the underlying data?
    I guess Go designers wanted to meet the needs of low level system programming as well as a keeping the language radically simple.

  • @KangoV
    @KangoV ปีที่แล้ว +5

    Spring is now LEGACY imo. Spring's DI is so OLD that it uses strings at it's core instead of tyes. Newer frameworks such as Micronaut and Quarkus do all the dependency injection at COMPILE TIME! These catch errors thrown by the annotation processors to be displayed in you editor (vscode/intellij etc). With these you can compile to native code as well (GraalVM). Unfortunately, many (uninformed) developers think that Java == Spring.
    I'm doing some AI/ML stuff in Java which offloads to SIMD instructions (AVX-256/AVX-512) without having to write the low level code. The JVM will detect what instructions the CPU supports at runtime and offload as necessary. Coming soon is the capability to offload to the GPU without knowing how to do CUDA/OpenCL. Exciting times and huge performance ahead.

    • @hardcorecode
      @hardcorecode 11 หลายเดือนก่อน +2

      I disagree... spring is a mature framework. It solves a lot of problems you don't have now but will definitely have down the road. furthermore the rise of nexJs and the continuous feature on-loading.... well just give nextJS a five more years it will become just as big or even bigger.

    • @neebuandsocanyou7557
      @neebuandsocanyou7557 6 หลายเดือนก่อน +2

      Spring is great. People need to git gud

    • @i-am-the-slime
      @i-am-the-slime 4 หลายเดือนก่อน

      It's the worst shit ever. So is Java. Why is everything a class? "Runnable interface", really? Then binary incompatibility, semicolons, no higher-kinded types. The only people using Java are the ones that never tried anything else in earnest. The equivalent of people listening to Justin Bieber.

    • @KangoV
      @KangoV 4 หลายเดือนก่อน

      @@hardcorecode We've switch to HTMX. No javascript required. Just choose your backend language for your web app (Go, Rust, Java, Python). Take your pick :)

  • @Lorofol
    @Lorofol 5 หลายเดือนก่อน +2

    Bruh it is so creepy how you stare into the camera

    • @backendbanterfm
      @backendbanterfm  5 หลายเดือนก่อน +9

      I do it for u

    • @Benjamin-Chavez
      @Benjamin-Chavez 4 หลายเดือนก่อน +2

      lol I don’t think it’s weird. Thanks for the quality content man!

    • @AndreB777
      @AndreB777 3 หลายเดือนก่อน +1

      😂​@@backendbanterfm