Why I’m Switching To Go in 2024

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

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

  • @dei8bit
    @dei8bit 4 หลายเดือนก่อน +36

    Alan Kay seems to be the inspiration for the Golang logo.

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +7

      😂😂😂 shame on you!

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

      @@awesome-coding xD sorry it just seemed to me

    • @CoConnoisseur
      @CoConnoisseur 4 หลายเดือนก่อน +6

      @@dei8bitThat was hilarious

    • @alinghinea98
      @alinghinea98 4 หลายเดือนก่อน +8

      underrated comment 😂

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

      how dare you! 😂😂😂😂😂

  • @arjandhaliwal4962
    @arjandhaliwal4962 4 หลายเดือนก่อน +176

    Concurrency deep dive!

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +13

      Noted!

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

      Yes, please.

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

      Please!

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

      Yes please!

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

      yes pls!!!

  • @nyagah243
    @nyagah243 4 หลายเดือนก่อน +88

    Going from Python to Go has been pretty fun for me tbh. So much just in the standard library.

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +3

      Glad to hear!

    • @ccgarciab
      @ccgarciab 4 หลายเดือนก่อน +14

      That's an interesting comment. The Python stdlib is known to be quite large and varied.

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

      I also went from python to go! I felt like it was kinda the opposite. Go's standard library is relatively small. Actually pretty helpful to learn the language. But I definitely felt like some things were missing coming from Python's expansive stdlib.

    • @Rockyabbu
      @Rockyabbu 26 วันที่ผ่านมา

      HI @nyagah243 ,Is it possible if you can guide me in the future related to the journey, Cuz I've learnt python and now thinking to move on to Go. (I Will Wait For Your Reply)

  • @rafalk0
    @rafalk0 4 หลายเดือนก่อน +56

    Re: Java - for quite a few years now Java has RECORDS, so you no longer need to create getters, setters, constructor or methods related to comparing object.
    You can simply define your movie type like this: `public record Movie(String name, double score) { }`

    • @davidchavez4054
      @davidchavez4054 4 หลายเดือนก่อน +17

      Good luck using those on old projects

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

      Yep, and C#, which in Program.cs you could write:
      ```
      var a = new Movie(Name: "Seven", Score: 10);
      record Movie(string Name, float Score);
      ```
      But the convention-based approach of Go looks reasonably nice to me (the uppercase versus lowercase names dictating public versus private). There was nothing I saw in the video that would make me switch to Go, but I can still respect it is elegant syntax.

    • @victorbitencourt9481
      @victorbitencourt9481 4 หลายเดือนก่อน +7

      for who is reading, this is only for making IMMUTABLE objects. it doesn't generate setters! sadly, we're not quite there in Java ;-;

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

      ​@@victorbitencourt9481 records are intentionally immutable which is a massive benefit.

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

      It's from scala actually(case class), and some of other higher level lang has this like kotlin dataclass

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

    I love the ridiculously easy cross compiling of Go :-)

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

    Greatest intro, I'd love to see more of Go from you

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

      More to come! Thanks for the feedback!

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

    I switched from Python to Go for both internal CLIs and webwidgets last year at work and haven't regret it.

  • @MrBran4
    @MrBran4 4 หลายเดือนก่อน +67

    I was the biggest Go fanboy you could imagine but I'm sick to the teeth of having to check if every interface is nil or a pointer to nil or...

    • @hamm8934
      @hamm8934 4 หลายเดือนก่อน +13

      For me, the biggest shortcoming of go is all properties being optional. If you could set a compiler flag for required properties or add a lil syntax, it would go a long way.

    • @bionic_batman
      @bionic_batman 4 หลายเดือนก่อน +10

      It sounds like you are doing something wrong. The only case when you need to explicitly check for nil is usually error handling. Everything else can be covered by default values and nil receivers

    • @MrBran4
      @MrBran4 4 หลายเดือนก่อน +33

      @@bionic_batman if your function accepts an interface type as an argument, that argument can be nil at runtime

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

      ​@@hamm8934yeah that's my biggest issue with it too. I'm surprised how little anyone else mentions this. I think your comment here is the first one I've seen, aside from all my own.

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

      @@hamm8934 Fork needed?

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

    I really like explanation. It's clear, concise, and insightful. Keep it up!

  • @eliasalerno8942
    @eliasalerno8942 4 หลายเดือนก่อน +7

    much love for go, especially the package manager saves me so many nerves

  • @Lucas-gt8en
    @Lucas-gt8en 4 หลายเดือนก่อน +10

    Go is looking pretty good, might give it a spin instead of hammering everything in with TypeScript

  • @Brofix_
    @Brofix_ 4 หลายเดือนก่อน +12

    I took the Elixir pill and I'm really happy

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

      How is it?

  • @dami-i
    @dami-i 4 หลายเดือนก่อน +25

    It's been a few weeks that I made the decision to ditch Node.js in the company I work for. Every one of our Node.js applications will be rewritten over time in Go or Java due to obvious reasons.

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

      May I ask what those obvious reasons are?

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

      i want to know too

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

      ​@@maacpiash like idk, it's literally JavaScript?

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

      ​ @maacpiash @girxchin Glad you asked.
      We started 3 years ago using Node.js. It was chosen as our main platform due to the following reasons:
      a) The team's average technical skills and stack at that time.
      Apart from myself, we had two beginner developers who only knew front-end JavaScript and had limited (college-level) knowledge of Python. We immediately discarded Python as an option for the back-end (the reasons for this should be obvious).
      b) The size and scope of the applications we were building back then.
      At that time, we were creating simple web apps for a single industrial customer, hosted locally. Few users, simple authentication mechanism, we theoretically had available as much computing power as we needed.
      As time passed, the complexity of our customers' demands increased. As the codebase of our apps grew, maintaining the code and adding new features became increasingly difficult. This wasn't due to poor design, architecture, or lack of clean code. This is an inherent issue with any other dynamically typed language.
      [Quick advice: if you want robust, less error-prone applications, you need a static/strict/strong-typed language.]
      I felt it was time to enforce the adpotion of TypeScript. The team quickly got the hang of it. And we kept using it up to this day.
      However, I knew that TypeScript would eventually reach its limitations.
      As we gained more customers, we started building and selling larger, multi-tenant applications. Our team grew in size and experience, and the developers became familiar with concepts like types and pointers.
      The perhaps not-so-obvious reasons for moving from Node.js to Go/Java are as follows:
      a) JavaScript
      The language was not created for back-end. It was adapted.
      The most important issue is that as a dynamically typed language, it has a high level of ambiguity, particularly with its "truthy" and "falsy" values - for example, "if (0)" translates to "if (false)" in JS. Such a situation wouldn’t occur in a properly typed language like Go or Java.
      b) Compilation and build size (Go advantage only)
      Recently we deployed a complex queue handler app in a container with a single 9MB executable!
      c) Memory consumption (Go advantage only)
      It's fairly known that Go applications eat a lot (like, A LOT) less memory than Node runtime.
      Also, Go's learning curve is shallow.
      Hope this clarifies.

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

      ​ @maacpiash @girxchin Glad you asked.
      We started 3 years ago using Node.js. It was chosen as our main platform due to:
      a) The average technical skill and stack of our team at that time.
      Except for myself, we had two beginner devs that knew only front-end JS and a bit (college knowledge only) of Python. Note: Python was immediately discarded as an option for back-end (I assume the reasons for this one are obvious here).
      b) The size and scope of the applications we were building back then.
      We were crafting simple web apps for a single industrial customer, hosted locally. Few users, simple authentication mechanism, we theoretically had available as much computing power as we needed.
      Time passed by and the complexity of our customer demands increased. As the codebase of our apps was growing, it was becoming harder and harder to maintain the code and to adding new features. It was not a matter of design or architecture or clean code. It would happen with any other dynamically typed language.
      [Quick advice: if you want robust, less error-prone applications, you need a static/strict/strong-typed language.]
      I felt it was time to enforce the adpotion of TypeScript. The team quickly got the hang of it. And we kept using it up to this day.
      However, I knew it was only a matter of time for TypeScript to not be sufficient anymore.
      We gained more customers and started building and selling multi-tenant, bigger apps. The team grew in size and we are more experienced. Devs now understand types and pointers.
      The perhaps-not-so-obvious reasons for moving from Node.js to Go/Java are:
      a) JavaScript
      The language was not created for back-end. It was adapted.
      The most important thing: as it's dynamically typed, the level of ambiguity is high, especially because of the famous "truthy" and "falsy" values - "if (0)" translates into "if (false)" in JS. Something like that wouldn't compile in a properly typed language, like Go or Java.
      b) Compilation and build size (Go advantage only)
      Recently we deployed a complex queue handler app in a container with a single 9MB executable!
      c) Memory consumption (Go advantage only)
      It's fairly known that Go applications eat a lot (like, A LOT) less memory than Node runtime.
      Also, Go's learning curve is shallow.
      Hope this clarifies.

  • @BlizzGMX
    @BlizzGMX 4 หลายเดือนก่อน +19

    I really like go. You can type go doc and the package name when you forget something you want to use and it pops right up in the terminal. Most of what you need is already in the language. Very nice.

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

      Good tip!

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

      Not everything is or was in the language. Why do frameworks or libraries like gin exist?

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

      @@hugochavez6170 Most != everything.

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

      @@hugochavez6170 because js devs come to Go and immediately start writing libraries instead of reading the docs

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

      @@hugochavez6170 most != everything

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

    Started learning Go today. Because I can't constantly build and run my application, it's helped me to write features more incrementally by taking baby steps rather than defaulting to building and running my aoplication, especially when writing large chunks.

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

    I was waiting for this🙏🏻

  • @greendsnow
    @greendsnow 4 หลายเดือนก่อน +232

    good luck if error is not nil

    • @cryptonative
      @cryptonative 4 หลายเดือนก่อน +27

      “_err” problem solved

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +10

      😅

    • @sequbeats
      @sequbeats 4 หลายเดือนก่อน +71

      errors as values is the best feature of golang

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +20

      @@sequbeats I agree, but it takes a bit of time to get used to them.

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

      My life for syntax sugar:
      f, ? := os.Open(filename) // return err and zero everything else out
      f, ?err1 := os.Open(filename) // call func err1
      f, ?err2 := os.Open(filename) // call func err2

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

    rust syntax is closer to js than go which is one reason that i like it more. mainly the type system and pattern matching is something i find difficult to live without.

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

    Go is a cool language at first but I found myself reinventing the wheel a lot for very simple things. Does it have a map now?

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

      Yes... It had maps for long time now

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

    go is beautiful. my current favorite

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

    the best part is it's cross compiler and pair it with zig linker and it's just awesome

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

      Didn't get the chance to spend too much time with Zig yet.

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

      ​@@awesome-codingwith the zig linker you can make statically linked binaries even with libraries that use CGO. It's not flawless and I haven't seen perf testing, but it works

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

      @@C4CH3S wdym by flawless?

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

      @@TechBuddy_ it will sometimes fail to produce a binary whereas a regular linker wont.

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

      @@C4CH3S huh wierd, i never had that issue. the zig linker is just the clang one with some stuff around it so it shouldn't be different

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

    things I dont get used to is, the awareness to know directly when to use * or & , why must have package name that follow its folder name?

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

    I tried it, I had problems with reading files. Many problems. I did not have that problem with any other new languages I was starting with. I passed it after an hour of fights. You may say I'm noob, yes I am, but to me that's much hassle with simple things making work.

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

      Would be interested to know what those problems were. My first Go use case was parsing, splitting & writing csv files. Whilst it wasn't quite as simple as something like NodeJS, it was not complex & extremely performant. Struct tags are a great feature, I find.

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

    Concurrency deep dive! Subscribed!

  • @luiscarlosjayk
    @luiscarlosjayk 4 หลายเดือนก่อน +12

    I started with Go last year, but then tried Rust and then got in love with it.

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

      Same

    • @ShaunYCheng
      @ShaunYCheng 28 วันที่ผ่านมา

      Which one do you like better and is easier to maintain?

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

    what will you build with it tho?

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

      Mostly backends / microservices

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

    Great video.

  • @homework3218
    @homework3218 3 วันที่ผ่านมา

    What do you think is better to learn from scratch at the moment, Go or Java? I have some basic experience with C++ and a foundation in computer science since I’m studying in this field, but I don’t have any commercial experience yet. Could you please advise if it’s not too much trouble?

    • @awesome-coding
      @awesome-coding  2 วันที่ผ่านมา

      These are difficult times, and it's hard to find a job. In this context I would definitely learn Java just to increase the odds of being hired.
      There are far more jobs in Java than in Go.
      In any other scenario, I would pick Go for all the reasons mentioned in the video.

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

    I have also recently started exploring Go. My background is mostly in Java but I also have a good understanding of Python and JS as well. I'm not really impressed by my first week of learning Go. I like the fact that is compiled in a single binary. I actually like the errors as values because it forces you to think more about error handling and it would definitely be my go to for writing concurrent programs. However, I'm really annoyed with the systax sometimes, for example appending to a slice, type conversion etc
    Do you think that I would get used to it and start liking it more once I get more familiar with the standard library and the "go way of things"? How was your experience in the beginning coming from JVM languages as well?

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

      >Do you think that I would get used to it and start liking it more
      It is quite possible. I hated some of the things in Go when I started working with it
      Now, after about 5 years of working with it on daily basis I love it and understand why those things were done the way they were.

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

      @@bionic_batman that's encouraging! Thanks

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

      ​@@bionic_batman. After 5 years you can like every language.

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

      You came from another universe.

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

    You forgot to mention web assembly. Go compiler can build in that and you effectively have a web app as well :)

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +4

      I actually have a whole video on this exact topic - th-cam.com/video/v8-yeWXCsi4/w-d-xo.html

  • @Nellak2011
    @Nellak2011 17 วันที่ผ่านมา

    I like Go overall, however after trying it for a week now I can say the thing I dislike the most is...
    The visual noise of Go code.
    When you write Go there is often indentation that is unavoidable and it breaks the visual flow of things.
    Like the most common example is the classic:
    if err != nil {}
    pattern.
    While explicit error handling is superior to the try/catch alternative I really wish there was a syntax that didn't require nesting and didn't break the visual flow.
    Aside from that I don't percieve any problems yet.

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

    Error handling in Go reminds me of the "Try Pattern" in C# where a method would return a boolean for status and have one or more "out" parameters to get your stuff back.
    I'm using Unity 90% of my time and I use this pattern A LOT to get around object lifecycle and I like it very much, so I guess GO would not be hard to adapt to.

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

    Have you tried c#?

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

      he did java for a long time, C# doesnt really offer anything game changing

    • @BrokeBillionare
      @BrokeBillionare 4 หลายเดือนก่อน +6

      @@ripple123 what game changing things does Go have which c# doesn’t?

    • @diamondkingdiamond6289
      @diamondkingdiamond6289 4 หลายเดือนก่อน +6

      @@ripple123C# is designed better compared to the cluster fuck of Go. I swear whoever designed Go did not put no thought into it.

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

      @@diamondkingdiamond6289 Fully agree. I started to learn Go after C#. C# much more thought out lang than go. And It has channels too. The most ugly thing in the Go is the implicit interface implementation. Never knows what interfaces has the struct.

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

      I was about to ask the same, all these features actually are present in C# with a better syntax and readability

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

    Go is now actually simpler than Python.

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

    What about Haskell?

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

    Go is very based. It’s very popular but its user base is not vocal like Rusts. Which is a good thing!

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

    Can anyone recommend good data validation library for Golang?

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

    Great video ! Will you work with Rust ?

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +3

      I played a little bit with Rust, but I'm not that confident in my Rust skills yet. The learning curve is pretty steep compared to Go.

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

      @@awesome-coding Yeah, it true it's pretty steep unfortunately. THANK YOU for talking about the real purpose of OOP. I think Go and Rust are the true spiritual heirs of OOP

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

    Please make a deep dive tutorial on concurrency please.

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

    So the separation of structs and interface is a reaction to oop? To simplify things when before all these methods, and types were bound up in a class?
    Am I understanding this correctly?

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

    Java used to be a nice simple language too. Go is heading in the same direction

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

      One of Golang's aims was to keep it as a simple language and so they won't keep adding features to it like they do to Java, C++ and Rust. And Java creators aim was never to keep it simple.

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

    Concurrent , but verbose, and generics being added late to the language, the libraries needs to adapt. Awesome standard library.

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

    Which frontend to be combined with?

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน

      Any frontend works just fine.

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

    Go ❤

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

    Thing is I don't think that any of the languages I use ( JS, PY, GO ) is good. I just use them that's all ...

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

    go compiled as one binary is killer, now I use ncc to compile my node.js app to make it single file

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

    I find go hard to follow and read

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

    Huh. I started with go and then Rust. But now moving to Elixir.

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

      A lot of Elixir mentions in the comments - interesting.

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

      @@awesome-coding I was skeptical because of its typing system. Now, after building, launching and maintaining 3 medium (100000LoC) to large (1_000_000 LoC) that Elixir covers more of the pain points of developing a server-side web app and web backend than go, and has tons of more useful, unique features that make the bug resolution easier than having a static type check. Also the memory profile of elixir is much more stable than go while still having the flexibility of using rust or zig for CPU-bound tasks. So putting it all together, I will choose Elixir for any server code rather than Go and Rust, given the chance. And the community and the documentation! Just amazing!
      If you like, I can go on about it for the rest of the day. Just know that Elixir is probably the most underrated language I have seen.

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

      Same

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

    arent objects simply data structures + algorithms (methods) ? if so then GO handles objects, but operations like inheritance are not implemented

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

    If I have to build a api or service, sure I am using go.

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

    Why not F#? I find F# much more expressive, safer, and just as fast.

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน

      I’ll have to check it out

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

    why not Rust?

    • @awesome-coding
      @awesome-coding  2 หลายเดือนก่อน +1

      I'm not smart enough for Rust 😅

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

    Concurrency deep dive please

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

    Folks warning ! Unused variables is a error in go

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

      Why is this a problem?

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

      its annoying

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

    Scary syntax

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

    More Go pls

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

    Go's simplicity makes programs extremely verbose

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

      But extremely obvious as to what is happening...

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

      @@beachfeet6055 nah it make things very complicated at the end

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

    I wish you could use it in my job, but JavaScript frameworks like Next.js make everything move faster in development.

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

    Concurrency deep dive

  • @hamm8934
    @hamm8934 4 หลายเดือนก่อน +12

    Go is the future of web dev. By 2030, Go is going to be a powerhouse once Templ, HTMX, and Alpine get more mature.
    Go is what typescript and pedantic pretend to be.

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

    Imo Go is possibly the fastest GCPL there is. This is a great pity, since it's made to be so versatile and not tied to any ecosystem (*ahem*swift*ahem*). I feel Google made a mistake here when they created three different PLs (Go, Kotlin, Dart) for different use cases. They should only have made Go, then aggressively pushed Android to switch from Java to Go, likewise with Flutter. Now Kotlin is stuck with the JVM which slows down its compile speed while Dart is only about as fast as JavaScript even though JS as a dynamic PL is JIT compiled and Dart as a static PL is AOT compiled.

  • @daniel.affonso
    @daniel.affonso 2 หลายเดือนก่อน

    Kinda modern C 😍

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

    Only pain is error handling

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน

      It's a matter of getting used to it.

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

      how, can you explain? To me it seems a lot better than using try-catch

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

      @@log8746 In one function you just need one try catch block and in the catch block you can write logic to segregate the errors by its type. Now compare this with golang error handling where after every function call you need to add a if statement to check if the function is returning error

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

    Thanks to The Primeagen Marketing 😂

  • @AnnasVirtual
    @AnnasVirtual 4 หลายเดือนก่อน +7

    maybe it just me i just don't like golang syntax

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

      it feels pretty great once you use it enough

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน

      @AnnasVirtual what's your background?

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

      What you are talking about bro ? Go is the neat and clean language. Half of the community love go only for its simplicity, minimal and neat code.
      And bonus is it has almost fastest compiler.

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

      @@SirJagerYT it's probably just typing := which to be fair, i still hate typing to this day.

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

      @@tokisuno So you must be loving typing
      this in js/ts and probably in any other lang :-
      try {
      const res =await funcMightThrowErr(opts);
      return res;
      } catch (error) {
      // handle error or return
      }
      than typing :=
      res,err := mightThrowErr(opts)
      if err != nil {
      // handle error
      return
      }

  • @G-Master2620
    @G-Master2620 11 วันที่ผ่านมา

    Idk i love js simplicity and flexibility, and looking for another form of java but not exactly like java and i feel like go fits it its more simple and still have the principle, and a little more flexability. Java has too many tools and i find it really hard to find what to learn and i hate the fact that im nearly forced too use frameworks. I wanna have option but not forced into it if you know what i mean. Dont come at me too hard still pretty new just my thoughts.

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

    Concurrency go deep dive

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

    go is my favourite language

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

      Real

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

    Try elixir to see real message passing...

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน

      will do! thanks for the suggestion

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

      @@awesome-coding unlike go, it has the best abstraction about OOP from Dr Alan. Go was also inspired by Erlang mailboxes
      Elixir/Erlang just does it better

  • @universaltoons
    @universaltoons 25 วันที่ผ่านมา

    Zig.

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

    You should try the new Java

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

    This is just a brain dump, not sure what I’m supposed to get from it 😢

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

    The syntax throws me off.
    I prefer Rust because of this. Its syntax is more similar to JS.

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +3

      It's the other way for me. I find Rust's syntax off compared to Go :))

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

      That's a wild take. Rust has a strange syntax and Golang's syntax is in line with C, C++ and Java type of languages.

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

      JS has the worst syntax, you need to create separate functions just to catch and handle errors, otherwise your code is going to nest too much. I like understanding how my code works at a deeper level and I would have to spend too many hours doing that in JavaScript.

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

    It might just be me, but I kind of disagree about Go being concurrent. It using physical cores or threads is kind of irrelevant to how the code behaves, and it behaves as parallel threads, and that's the entire reason why Go's model sets itself apart from C++ for example, where parallelism often requires complex thread locking and mutexes, which don't preclude deadlocks in the least.
    Concurrent to me is more like C++ coroutines, where you have many tasks you are juggling and it is explicit by the API that there's context switching happening within the scope of your app, not the operating system's automated scheduling.
    In other words: if you start a bunch of tasks, and they all happen at the same time - then it doesn't matter if the scheduler technically split them up into small chunks, as far as your code is concerned, it's parallel.
    Otherwise, if you implement coroutines in Go, what do you call those? Super/Strict Concurrency? Nah

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

    Awesome, but it's still hard to find a job

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

      I agree - Java and C# are still the best bets for comfy enterprise jobs

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

    htmx, htmx, htmx

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

    pokemon GO??? pokemon Rust!!!

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

    Go error handling is awful

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

    I simply don't buying it. I can agree that GO is better than Java (btw, almost any modern language is better than Java) but I can't understand how it's better than Kotlin. There is nothing in video about it.

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

    Great video! I'd love to listen to your takes on Gleam... I know it's new but it feels super promising

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน

      I am planning to explore the whole Erlang world sooner or later. I just need 3 free months for it :))

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

    its not clean at all

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

      Exactly.

  • @avalagum7957
    @avalagum7957 15 วันที่ผ่านมา

    Ah, you switch from Java/Kotlin to Go.

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

    I guess if you don't want to use generics, you don't have to use generics :)

  • @tsykin
    @tsykin 4 หลายเดือนก่อน +9

    After webdevcody's latest video I am sceptical about all that GO thing

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน

      I'm not familiar with his take on Go. Isn't he a fan?

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

      He wasnt skeptical of go, but templ and htmx, both of which are very young and will improve a lot over the next few years. Also, he’s so deep in react, he couldnt justify it for himself.

    • @awesome-coding
      @awesome-coding  4 หลายเดือนก่อน +7

      @@hamm8934 Ah I got it. There is a big distinction between Templ / HTMX and Go. I'm thinking Go in broader terms, as a general purpose language, not just as a solution to build UIs.

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

      ​@@hamm8934 also a "fullstack app stack" in go is not really beginner friendly since go is a "structure your project yourself" language, which propably scares of a lot of people.
      myself, i build a "dev" command with wgo, which works great, but is pretty advanced. also templ lsp is a bit frustating, so i switched to Gomponents, with the downsides of no intellisense for tags and attributes and you cant copy paste stuff from other projects or components. kinda makes sense that people go back to js, since its easier and sometimes you just need to get stuff done quickly

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

      @@awesome-coding100% agree with you

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

    Eh, pretty convincing but I'm gonna sleep on it til 2025.

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

    🦀

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

    Why in the cloud? Why not woke rust?

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

    Go is good but lack of AOP makes to difficult to create enterprise level system

    • @awesome-coding
      @awesome-coding  3 หลายเดือนก่อน +2

      Hmm... it is good enough for Uber, Docker, Twitch, Dropbox, or Netflix :D

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

      @@awesome-coding they had to create a lot of libraries to make it enterprise level, ex. Uber has to create zap as go standard logger wasn't that good, jaeger for distributed tracing. I had to create my own tracer for printing the traces in logs. All these are autoconfigured in java

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

    Rust

  • @rankarat
    @rankarat 4 หลายเดือนก่อน +7

    GO to C#
    Much better and more modern in every aspect you can imagine.

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

      Exactly.

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

      I endorse this message

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

    I think i will GO
    away from GO

    • @awesome-coding
      @awesome-coding  2 หลายเดือนก่อน

      you GO ahead and do that!

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

      @@awesome-coding 😂

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

    Why not Rust?
    Better safer code align with Rust a lot

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

      Rust is way more difficult, or maybe I’m just dumb 🥲

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

      @@awesome-coding I’m dumb. You are practical I guess 🙂😅 but yeah, I agree rust is difficult. But it is so enjoyable to write backend in it. I used Axum. It is like you wrote it once and have no surprises in prod as with js. And just writing rest APIs, connecting to db is not that hard. Also sqlx in rust is so good

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

    The only thing I do not like is the size of the binary, - especially on projects which include multiple libs. It's in the order of multiple megabytes, even for simple cmdline utils. That's not ideal.

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

      It uses statically linked libc, so this is to be expected.

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

    i like go for very small projects and prototyping. it's too simple and verbose when i want to be expressive. if there was a better balance it would be the perfect language. i like elixir phoenix more.

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

    Once Go receives syntax for error handling I'm hopping into that bandwagon.

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

    the only thing golang needs in my opinion is try and catch block 🙏

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

    I swapped from Go to Ada with no regrets.

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

    why I hate Go: null pointer exception, error handling, poor type system, context (no typesafety)
    why I love Go: compile, huge std & nice ecosystem, performance, easy multithreading
    for me "nil" and context is most problem
    error handling could be fixed with new syntax. but it also requires upgrade type system

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

    The syntax is too weird for me, I keep Typescript. Maybe Rust one day if I need better performances.

    • @awesome-coding
      @awesome-coding  2 หลายเดือนก่อน

      Fair. I find Rust's syntax more difficult than Go's btw.

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

    Go is awesome because it doesn't have all the OOP bullshit