A Benchmarking Story: Go, Elixir, and a 3500x speedup

Sdílet
Vložit

Komentáře • 21

  • @crazzzik
    @crazzzik Před rokem +4

    Do more videos in general. They are helpful in more than one way.
    I used to say that college professors come in two flavors: those who know the tools and those who got the stories. The first kind keeps you on track to learn a tool that you will (might) need in your work. The second time will tell you stories from the field and inspire you to get there (often at the cost of a lab time).
    You seem to have enough experience to share some IT related technical stuff as well as stories associated with them. It is very valuable to the community in general. It doesn't have to be expert opinion, just a log of your journey that we can learn from and get some entertainment out of.

  • @tutoriaLinux
    @tutoriaLinux  Před rokem +2

    Sorry for the smallish font -- next time I'll bump that way up. Here's the code if you want to explore/benchmark/improve it yourself: github.com/groovemonkey/go-elixir-benchmark

  • @IanWeston
    @IanWeston Před rokem +3

    Absolutely would love to see some projects! Also great to see you trying out Neovim!

    • @tutoriaLinux
      @tutoriaLinux  Před rokem +3

      Yeah, I'm pumped about doing some programming projects, thanks! And yeah, I became addicted to neovim pretty hard about 4 months ago. I'd been casually using vim keybindings in other places but finally got serious about it this year and it's really paid off.

  • @bearsstuff
    @bearsstuff Před rokem +3

    still here at the end buddy. Do the projects!

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

    Nice video! What's your editor's theme?

  • @nateshrager512
    @nateshrager512 Před rokem +1

    Would love some go projects!

  • @kristun216
    @kristun216 Před 10 měsíci

    I wonder if you could build it radically different, when you start a new RandomWord module in Elixir you could spawn an Agent process (very cheap in BEAM) with the shuffled list of words and every time you take the word out you simply pop the front most items from the agent keeping the rest of the shuffled in memory.

    • @kristun216
      @kristun216 Před 10 měsíci

      Forget this, I tried with agent and `shuffle` was a huge bottleneck in hindsight. Might be better off keeping the "length" as a state and just do random number generator with Map.get access instead

    • @tutoriaLinux
      @tutoriaLinux  Před 21 dnem +1

      This is a cool idea, and I really appreciate that you actually tried it and followed up. Appreciate it!

  • @harshpatel105
    @harshpatel105 Před 11 měsíci

    From your neovim podcast! I am in the process of switching from vsc to nvim. How about you make a video as well about nvim and your workflow?

  • @swiftsifu
    @swiftsifu Před rokem +1

    still here :)

  • @EightSixx
    @EightSixx Před rokem

    GO GO GO!

  • @samrybkin9184
    @samrybkin9184 Před 11 měsíci

    Hi man I don't visit you channel for a while how you become go developer if I am not wrong you was as DevOps in past? Why you start to code on Go?
    As go developer what you thing about specially in the comparison with python? I mean about syntax, ease of coding, code support?

    • @tutoriaLinux
      @tutoriaLinux  Před 21 dnem +1

      Hey! Yes, I'm mostly a software developer now (although I do still take care of an AWS infra, write terraform, deal with datadog, etc.). At first I found Go kind of strange, minimal, and not-very-pythonic. After taking it seriously for a few months, I began to really like it. Now I'm as productive in Go as I ever was in Python (i.e. I can develop small tools or features in the same time, or faster, than I could in Python).
      After a few months of working with a language I find the syntax just "goes away" -- it's much less important than I used to think. Tooling and support is truly incredible in Go -- development is easy and feels great, and the fact that you ship a single, super-fast binary at the end makes all the deployment/infra stuff SO MUCH EASIER. I hope that helps!

  • @linuxlegion4312
    @linuxlegion4312 Před 11 měsíci

    As I remember you have had several videos promoting Emacs as the best editor,and now you are using neovim,have you changed your mind.

  • @uptimeroadtrips6365
    @uptimeroadtrips6365 Před rokem

    nice,

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

    so Go is faster than Elixir.

    • @hja-wo3ll
      @hja-wo3ll Před 2 měsíci

      Naturally

    • @tutoriaLinux
      @tutoriaLinux  Před 22 dny

      Yes, but that wasn't really a surprise. It's more about the kind of performance improvement you can get by using the right datastructures/algorithms and being aware of the complexity of the underlying operations that your language is doing.
      If elixir was just 10,000x slower than Go, it would be a hard sell for certain applications no matter how much developer productivity and extra features you gain. But getting it within an order of magnitude makes it "just as good" for most things on a practical level, and then you can really enjoy the productivity gains and everything else it gives you over Go.
      A 3.5x difference, you just use a slightly larger instance type on AWS and move on with your life.