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

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024

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

  • @dereklei1746
    @dereklei1746 8 месяцев назад +5

    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.

  • @kevinrineer5356
    @kevinrineer5356 4 месяца назад +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.

  • @interstellar1873
    @interstellar1873 Год назад +15

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

  • @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

  • @flaguser4196
    @flaguser4196 3 месяца назад +10

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

  • @thedoodler882
    @thedoodler882 2 месяца назад

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

  • @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 "_*".

  • @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.

  • @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.

  • @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 месяцев назад +3

    Looking for an episode for Leaving Go for Java

  • @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

  • @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).

  • @coolaj86
    @coolaj86 11 месяцев назад

    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.

  • @sc2unstable
    @sc2unstable 3 месяца назад +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.

  • @ryanwilliams5499
    @ryanwilliams5499 Год назад

    Amazing 🤩

  • @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.

  • @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!

  • @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.

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

    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 😂

  • @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 5 месяцев назад +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 4 месяца назад +2

    Bruh it is so creepy how you stare into the camera

    • @backendbanterfm
      @backendbanterfm  4 месяца назад +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