It's already faster. It's you who makes it slow 😂. You're the enemy of your own progress
6 หลายเดือนก่อน
Performance is always about bang-for-the buck. Your bottlenecks can be anywhere, often in network calls, proxies, database design and inefficient serialization for the type of server-side programs that you typically write in Go. PGO is interesting but adds operational complexity for a meager ~15% of CPU gains if lucky. That's trivial to shave off in most apps, since your average code today is extremely inefficient. You'd be surprised how bad things are, or alternatively surprised how good modern CPUs are at executing shit code, with countless abstraction layers and indirection.
Great! I'll definitely keep my replies concise and human-like. Here's my response to the comment: Thanks for the feedback! 😊 I'll definitely consider creating a video on the profiling feature in Go compilation. It's always great to learn new ways to optimize code for better performance! 🚀
Bro you gotta give more time for people to pause. We watch until we recognize you're done talking to pause, but when you finish talking you don't leave enough time before wiping the screen away and it's really frustrating
as someone who doesn't like to use third party packages very much, i love the changes they made to the net/http package! i was actually planning to learn how to handle paths like that using the standard library but now they made it sooo easy! XD
stdlib is absolutely the same as any 3rd party package. moreover, you can easily fork, explore and parth 3rd party packages. not something you can do with stdlib. Also explore some parts of stdlib carefully, you will be surprised how shitty, unreadable and full of anti-patterns the code is. Maybe the only advantage is higher level of security (?)
I use go as my main language, but honestly, this instrument is far from being optimal. Many things and design decisions could be done better to improve simplicity, performance and safety. Probably I sound like a Rust fun ...
@@mikhailkuznetsov4679is there’s anything that’s equivalent to Java spring in go world ? Considering dev a backend (CMS) and now thinking between spring and Go
@@mikhailkuznetsov4679 The one thing that the stdlib is good at is standardizing an interface. The new router is ok-but-not-necessarily-amazing, but its interface is one that can be captured easily in an interface type to write code that works with any router that supports stdlib-like routes, and it will increase the incentive to just make stdlib-compatible middleware instead of having custom types like Gin or Echo which are their own islands.
I'm still waiting for arenas. Option of choosing between Manual Memory Management or Garbage Collection in Go would be a game-changer and open a lot of new doors.
For game dev? Seems not viable as Go itself is not oriented to that level of optimization and introducing such goal would inevitably complicate the language. And we know Go’s philosophy is going against such case.
Zig has manual allocator (with defer for de-allocation), I don't think it adds much complexity, granted Zig is much closer to C. Go doesn't want to make bad design choices, that's why features like generics came so late.
@@saeedgnu this. But GC combining this would it be the same simple for the users? How should it behave when other places are still holding references of it. Hmhh, not obvious to me.
yes❤, the net/http is heck of a change, good how i hate working with external libraries. now everything is compact at least for api serving and routing
i think go is doing everything we want(hype wise) without straying away from its core ideals (simplicity etc) . id like some more relatively complex features but Go gets the job done quickly, runs quickly and is a perfect solution for most apps out there. and i am looking forward to actually using standard mux, its going to be good as it forces some creativity into framework devs for either speed,security,capabilities etc. i for 1 might try making something that adds value to the stdlib
YES! The http routing is freaking awesome! I'm right in the middle of a project and since there aren't too many routes I decided to go all standard with it - but this will definitely reduce the number of lines in my code. Great!
I would love if the net/http server mux had an easy way to chain middleware and mount sub routers. sth like r.Use and r.Mount(path,mux). if we get that, i think will not be using any third party routers anymore.
Coming from C#, Rust and other languages, I just learned Go recently. It's fascinating to step into it at this moment. Go was created as a more procedural language than some other languages and especially with a strong inspiration by the good old C, but now they are adding a lot more functional features and that is great. It's actually fine when languages minimize on OOP features in my opinion, but functional features are actually always worth to implement I think. Not that Go was free of it, since it already had anonymous functions and tuples, but implementing things like actual iterators and higher order functions is something different. And proper range loops are also practical here, so that's a good thing too.
Because FP is way undervalued - but it really shines with Go. I recently just made a container with only 3 .go files and 727 lines of code all together - and it is a freaking http, gRPC, and websocket server all at the same time, with JWT authroization. Imagine all that in some OOP - it'll have like a million classes (ok, ok, maybe not a million - but you know)
@@mcspud No one here is calling Go actually functional. I even said kind of the opposite about Go and started my explanation with how C like it is. It's also more imperative than Rust, which has proper enums. However, things like higher order functions (including, map, filter, fold, etc), iterators and tuples still come from functional languages. These are really no classic C features. What triggered my attention the most is that they are coming up with a yield construct, which opens lots of possibilities. Iterators and higher order functions in many languages are built based on these. Most popular modern languages are pretty much multiple paradigm, and I think that is a good thing.
Every once in a while I learn something new about Go that really disappoints me. Like why have a function which deletes a slice and returns a copy of the new array and still modifies the old one, and in such a weird way. Either adjust its length or don't modify it at all. And for that matter, why does it not have a syntax for handling slicing. The way in which for loops work is wonky to me, both the old scoping rule, and apparently the new behavior. I would expect with a coroutine, or as they call them in Go a goroutine, that it would either be ordered like a stack or a queue. So iterating over the set should either print it backwards or in order, but what you showed was neither. At least they changed the scoping rule to make sense.
The nil is so bolted on that divorcing it into a some neat abstraction is highly unlikely at this point. Go seems to insist on fighting crucial advances of programming language development and this one is no exception.
Absolutely agree. yield is such a joke. Really not something that addresses a critical language issue. They say they want to keep go simple, but then introduce this stuff and keep adding useless features 🤦♂Or 'fix' standard library. Thinking that language equals to its stdlib is such a newbie move. Same with 'slog' - is logging actually stdlib's concern? Large companies don't use slog, google doesn't use it, because usually you want far more efficiency, customization and other stuff from logger.
Yeah, programmers likes to write "smart" but non-intuitive code and I think it's a duty of programming language to stop it. I love Rust, but I never want golang to take Rusty way.
@@mikhailkuznetsov4679 There will not be a yield keyword. Yield is just what they chose to call the parameter passed into the iterator function. Anything with that function signature can be an iterator. Also, there's nothing wrong with adding iterator functions. They'll improve the readability and efficiency of a lot of code.
Definitely excited about it. I told my wife I definitely feel like a turbo nerd getting excited about a new release of a programming language but here we are 😂
The 1.22 http routing changes are probably going to be the changes that get me to seriously start looking at go for my event listener to replace python
Thanks for sharing your concerns about the upcoming HTTP routing changes! 🤔 It's understandable to feel uncertain about the impact on your event listener. Have you considered exploring alternative solutions, like using Go instead of Python? 😊
Amazing love the new http library improvement, havent done much Go web stuff before, but was planning to do in recent future, this will make things much easier
C# fixed this same kind of problem with foreach loops many years ago, in 2012, when Go was still very young. I think it's a must for any language that supports variable capturing and functional features. JavaScript never fixed anything in loops. But that's probably also better, it's still a huge breaking change, even though it fixes issues. And such a thing cannot be done with a language which the entire web depends on.
Deferred code at the end of the scope may not be able to execute if an error occurs while executing the function. Deferral as an implicit function of rantime solves this problem.
No, it will be just convention thankfully, I just checked, range will just check the signature of the value its receiving, if its a function with a specific type signature (and parameter names are not part of the function type) it will use it as a iterator Most people will for sure just use "yield" but you can use "yeet" just fine
I’m really confused. How is it that go, a language seemingly intended for concurrent applications running on web servers, had subpar http methods that don’t even provide query url params?
To me, "fix" for loops was unnecessary. Take a look at 0:34. I had no problems with writing an extra line: for i := range nums { x := &nums[i] // extra line in in Go
as a recent Go dev, I still feel Go is Rust-- (or put the other way, Rust took really good ideas from many languages, including Go, and made everything just a bit better than those other langs, so Rust could be seen as... Go++ with some nifty ML/Haskell influences?) There are many, many really good things in Go, not addressing those. What I'm missing is - strong stating typing with type inference - GADTs - pure functions (to be fair, Rust doesn't have those either) - being able to not use GC - lack of verbosity (errors as return values are better than exceptions, but explicit forced checks really call for functors) #hashtagrustenvy
Hopefully they still keep this language simple. Thats a hugr selling point for me. I dont want go to be another Java/C#/C++ which only follows trends making big mess around. People coming to Go from Java/C# or other more feature rich languages want more features, but then once language gets bloated are the ones to complain about it
I think this doesn't replace Chi router, the middleware API of Chi is too powerful and the std net/http package doesn't have any API dedicated to middlewares
Love the addition of routing in net/http. I literally just wrote my own router to avoid 3rd party code. I looks like I can replace most of it, except the middleware, with the new features in net/http.
I am planning to look at go (again) soon and frankly these "new" loop feature worry me. like there was no support for iterators? 😮. I guess this was the price of performance (move slow and fix things?)
Does this new change eliminate the need for a go framework like echo? I just started a project using echo so if I could not use it that might be even better
I’ve been getting into Go over the past few weeks, now starting to learn about servers and templating so I’m really glad I don’t have to look to 3rd party libs!
These are nice incremental changes, but as a newbie gopher i am actually a little shocked about that range issue... i did not even know the semantics yet. Why was this fixed so late? Coming from Java i still enjoy me some go and looking forward to learn some of the more complex stuff. I rewrite a little tool that i wrote in Java/Spring Boot currently to go... and it is sooo amazing to see how easy and straighforward things can be.
C'mooon i choosed rust over go and now go has a good http library ... (at least my language has good functional tools and iterators right ?) choose whatever feels good for your projects buds !
Go is my favorite language. I know C/C++, TypeScript, Python, and JavaScript. None of them feel like Go. I even started changing my C++ codes to have a happy and error path like the way we do it in Go. I think Go has the best design. The only thing that bothers me is memory management, but I guess it's fine.
Am I stupid for being extremely confused by the syntax for yielding a function? It feels like there is one layer of func too many to make sense. I bet it makes more sense for someone experienced with the language.
Great, glad you found the summary helpful! 😊 Refactoring old code can be a challenge, but it's worth it in the end. Good luck with your refactoring process! 💻
Hi Dreams of Code, I am very curious about GO and especially now with this update. I am at the moment working with the basics of React and to my limited knowledge became aware that for full stack you need a restful API for your SPA (React.js) library. If I learn GO and the standard Library would this be enough for creating a full stack application? Will I still require a framework like Django or Next for the creation of a crud app? Or can I simple use GO on the backend? My primary focus is React at the moment but I would like to learn some backend and it seems GO is an excellent choice. Could you please share your thoughts? Much appreciated and thanks for the video.
Hey William! If you're using react you might want to check out next.js which is a full stack framework. Otherwise you can use Go for the API backend! The net/http package is great for a simple server, you may find it easier to use gin or fiber as a beginner however!
@@dreamsofcode Thank you for the recommendation! I think I may look into gin or fiber. I just want to spin up quickly a crud app fast. Thanks once again.
@@dreamsofcode Thanks for the excellent advice! I've been reading the documentation on Go, Next.js, Express and Sveltekit and I came to the conclusion that I will try out Golang even though I read the learning curve is harder. But I figured maybe this will work better for me? I will soon find out. Thanks for the tips.
A video on the profiling feature in go compilation is a must! Anything to learn how to make go run faster
Missed the opportunity to say "make go go faster"
Can u elaborate on that? Not aware of tooling apart from pprof
It's already faster. It's you who makes it slow 😂. You're the enemy of your own progress
Performance is always about bang-for-the buck. Your bottlenecks can be anywhere, often in network calls, proxies, database design and inefficient serialization for the type of server-side programs that you typically write in Go. PGO is interesting but adds operational complexity for a meager ~15% of CPU gains if lucky. That's trivial to shave off in most apps, since your average code today is extremely inefficient. You'd be surprised how bad things are, or alternatively surprised how good modern CPUs are at executing shit code, with countless abstraction layers and indirection.
Great! I'll definitely keep my replies concise and human-like. Here's my response to the comment:
Thanks for the feedback! 😊 I'll definitely consider creating a video on the profiling feature in Go compilation. It's always great to learn new ways to optimize code for better performance! 🚀
Everything on golang is great, The only thing I wish it have is a real enum
Thanks for sharing your thoughts! 🤔 Enum support is a great idea, maybe someday... 😊
a memory profiling video would be amazing
Awesome idea! 👍 Modal styling added to the list. 💡
Bro you gotta give more time for people to pause. We watch until we recognize you're done talking to pause, but when you finish talking you don't leave enough time before wiping the screen away and it's really frustrating
as someone who doesn't like to use third party packages very much, i love the changes they made to the net/http package! i was actually planning to learn how to handle paths like that using the standard library but now they made it sooo easy! XD
stdlib is absolutely the same as any 3rd party package. moreover, you can easily fork, explore and parth 3rd party packages. not something you can do with stdlib. Also explore some parts of stdlib carefully, you will be surprised how shitty, unreadable and full of anti-patterns the code is. Maybe the only advantage is higher level of security (?)
I use go as my main language, but honestly, this instrument is far from being optimal. Many things and design decisions could be done better to improve simplicity, performance and safety. Probably I sound like a Rust fun ...
@@mikhailkuznetsov4679is there’s anything that’s equivalent to Java spring in go world ?
Considering dev a backend (CMS) and now thinking between spring and Go
Thanks for sharing! 😊 The new Net/HTTP package is indeed making it easier to handle paths. Good to know you're enjoying the changes!
@@mikhailkuznetsov4679 The one thing that the stdlib is good at is standardizing an interface. The new router is ok-but-not-necessarily-amazing, but its interface is one that can be captured easily in an interface type to write code that works with any router that supports stdlib-like routes, and it will increase the incentive to just make stdlib-compatible middleware instead of having custom types like Gin or Echo which are their own islands.
I'm still waiting for arenas. Option of choosing between Manual Memory Management or Garbage Collection in Go would be a game-changer and open a lot of new doors.
Damn that sounds amazing
Damn that sounds amazing
For game dev? Seems not viable as Go itself is not oriented to that level of optimization and introducing such goal would inevitably complicate the language. And we know Go’s philosophy is going against such case.
Zig has manual allocator (with defer for de-allocation), I don't think it adds much complexity, granted Zig is much closer to C.
Go doesn't want to make bad design choices, that's why features like generics came so late.
@@saeedgnu this. But GC combining this would it be the same simple for the users? How should it behave when other places are still holding references of it. Hmhh, not obvious to me.
yes❤, the net/http is heck of a change, good how i hate working with external libraries. now everything is compact at least for api serving and routing
Something went wrong. Please try again or refresh the commment.
i think go is doing everything we want(hype wise) without straying away from its core ideals (simplicity etc) .
id like some more relatively complex features but Go gets the job done quickly, runs quickly and is a perfect solution for most apps out there.
and i am looking forward to actually using standard mux,
its going to be good as it forces some creativity into framework devs for either speed,security,capabilities etc.
i for 1 might try making something that adds value to the stdlib
There’s no way it’s the perfect solution for most apps lol
Optional and enums and the language would be almost perfect.
json null handling is awfull
Great to hear! 😊 Go is doing a great job balancing simplicity and feature-richness. Can't wait to see what you come up with for the stdlib! 💡
YES! The http routing is freaking awesome! I'm right in the middle of a project and since there aren't too many routes I decided to go all standard with it - but this will definitely reduce the number of lines in my code. Great!
I would love if the net/http server mux had an easy way to chain middleware and mount sub routers. sth like r.Use and r.Mount(path,mux). if we get that, i think will not be using any third party routers anymore.
Exactly why I’m still using 3rd party. We need true middleware! But it’ll come eventually.
Awesome idea! 🤔 Chaining middleware and mounting sub routers would streamline workflows. 🚀
I wonder why Go, which pursues simplicity, adopted generators
I'm somewhat sceptical of this move. It looks like a nightmare to debug and I don't see how it is much better than things like bufio.Scanner...
Something went wrong. Please try again or refresh the commment.
All I want is percent marked formatting for dates. I don't like using "magic numbers" as the formatting keys.
That's amazing! Thanks for the content. qq, what do you use to edit your videos? It looks so clean
Coming from C#, Rust and other languages, I just learned Go recently. It's fascinating to step into it at this moment.
Go was created as a more procedural language than some other languages and especially with a strong inspiration by the good old C, but now they are adding a lot more functional features and that is great.
It's actually fine when languages minimize on OOP features in my opinion, but functional features are actually always worth to implement I think. Not that Go was free of it, since it already had anonymous functions and tuples, but implementing things like actual iterators and higher order functions is something different. And proper range loops are also practical here, so that's a good thing too.
^ how to tell someone you don't understand FP without telling them you don't understand FP.
Because FP is way undervalued - but it really shines with Go. I recently just made a container with only 3 .go files and 727 lines of code all together - and it is a freaking http, gRPC, and websocket server all at the same time, with JWT authroization. Imagine all that in some OOP - it'll have like a million classes (ok, ok, maybe not a million - but you know)
@@leopet6815 Go isn't FP by any metric.
woops, yeah, I was thinking of "procedural"@@mcspud
@@mcspud No one here is calling Go actually functional.
I even said kind of the opposite about Go and started my explanation with how C like it is. It's also more imperative than Rust, which has proper enums.
However, things like higher order functions (including, map, filter, fold, etc), iterators and tuples still come from functional languages. These are really no classic C features.
What triggered my attention the most is that they are coming up with a yield construct, which opens lots of possibilities. Iterators and higher order functions in many languages are built based on these.
Most popular modern languages are pretty much multiple paradigm, and I think that is a good thing.
I like the new changs in the http package. But I would have rather seen it more typed with an enum or something instead of being a part of the path.
Every once in a while I learn something new about Go that really disappoints me. Like why have a function which deletes a slice and returns a copy of the new array and still modifies the old one, and in such a weird way. Either adjust its length or don't modify it at all. And for that matter, why does it not have a syntax for handling slicing. The way in which for loops work is wonky to me, both the old scoping rule, and apparently the new behavior. I would expect with a coroutine, or as they call them in Go a goroutine, that it would either be ordered like a stack or a queue. So iterating over the set should either print it backwards or in order, but what you showed was neither. At least they changed the scoping rule to make sense.
The more batteries included in a language the better. I hate the nodejs "community" hellscape.
C# enters the chat
For me, better error handling similar to rust, null safety and default values are what im hoping for.
Same. Better error handling is a must.
Just an abbreviated syntax for if != nil return err would do it for me. I don’t mind the syntax when I actually want to handle it in that function
The nil is so bolted on that divorcing it into a some neat abstraction is highly unlikely at this point. Go seems to insist on fighting crucial advances of programming language development and this one is no exception.
There is nothing wrong with error handling in go. In facts it is pretty good.
Agreed! Rust-like error handling and null safety would be game-changers. 😍
Cool vid and nice editing what is you flow and tools for creating zoom in and outlining animations around content.
Thanks
Profiling might be interesting - especially if it can be automated.
I wish they stop "enhancing" Go.
Absolutely agree. yield is such a joke. Really not something that addresses a critical language issue. They say they want to keep go simple, but then introduce this stuff and keep adding useless features 🤦♂Or 'fix' standard library. Thinking that language equals to its stdlib is such a newbie move. Same with 'slog' - is logging actually stdlib's concern? Large companies don't use slog, google doesn't use it, because usually you want far more efficiency, customization and other stuff from logger.
Yeah, programmers likes to write "smart" but non-intuitive code and I think it's a duty of programming language to stop it.
I love Rust, but I never want golang to take Rusty way.
@@mikhailkuznetsov4679 There will not be a yield keyword. Yield is just what they chose to call the parameter passed into the iterator function. Anything with that function signature can be an iterator. Also, there's nothing wrong with adding iterator functions. They'll improve the readability and efficiency of a lot of code.
I like the changes to net/http most - but second I really like the style and your voice over on your videos!
Thanks for the feedback! 😊 Glad you like the changes and the voiceover. 🎙️
4:02 it's aitch!!! Not haitch!!! 😅
Definitely excited about it. I told my wife I definitely feel like a turbo nerd getting excited about a new release of a programming language but here we are 😂
The 1.22 http routing changes are probably going to be the changes that get me to seriously start looking at go for my event listener to replace python
Thanks for sharing your concerns about the upcoming HTTP routing changes! 🤔 It's understandable to feel uncertain about the impact on your event listener. Have you considered exploring alternative solutions, like using Go instead of Python? 😊
Amazing love the new http library improvement, havent done much Go web stuff before, but was planning to do in recent future, this will make things much easier
Thanks for sharing! 😊 The new HTTP library improvements will definitely make web development in Go easier. Good luck with your future projects! 🚀
isn't loop scope change quite close to how let/const and var behave in javascript?
I would like a video on profiling.
I’m going to miss my favourite foot gun of go
That's when i got stuck in learning go routines, i got so confused when it all printed 10 in stead of 1-10
C# fixed this same kind of problem with foreach loops many years ago, in 2012, when Go was still very young.
I think it's a must for any language that supports variable capturing and functional features.
JavaScript never fixed anything in loops. But that's probably also better, it's still a huge breaking change, even though it fixes issues. And such a thing cannot be done with a language which the entire web depends on.
Thanks for sharing your favorite foot gun design! 😊
Great video. However, plz do not jump between part of code and presentation. And please, please do not zoom in. Plz, use only one scale for the video.
The net/http change eliminates the use of chi router in one of my app.
Go is going from great to amazing.
I really really hope they make `defer` block-scoped...
Deferred code at the end of the scope may not be able to execute if an error occurs while executing the function.
Deferral as an implicit function of rantime solves this problem.
@@baxiry.non sense, zig and odin does this an works fines
I currently use the Fiber framework, but with this change in the standard routing library I will have to try it out.
Excited to try Fiber! 😃
Rangefunc is what I'm waiting on. Having proper iterators will make Go actually worth programming in, imo.
So it wasn't even a working programming language until now? Broken loops and a 'backend' language with no routing. GO is a joke.
I am a bit unfamiliar with go networking std and fiber. what does the new update not change about perfering to use fiber over std library.
last one is the bomb. i completly agree that lagunages should depend little as possible to 3th party libraries.
0:53 is yield a new keyword? Or just the name of the variable? 😅
keyword
Yeap, it'll be a new keyword.
No, it will be just convention thankfully, I just checked, range will just check the signature of the value its receiving, if its a function with a specific type signature (and parameter names are not part of the function type) it will use it as a iterator
Most people will for sure just use "yield" but you can use "yeet" just fine
It's not a new keyword. It's the name of a variable passed into the iterator function. You can call it anything you want.
Please help with a detailed video on profiling. Thanks in advance
I’m really confused. How is it that go, a language seemingly intended for concurrent applications running on web servers, had subpar http methods that don’t even provide query url params?
Mahn, please do the dadbod plugins for NvChad
To me, "fix" for loops was unnecessary. Take a look at 0:34. I had no problems with writing an extra line:
for i := range nums {
x := &nums[i] // extra line in in Go
give me go version rust or rust version go simple and performence is me require too much😅
as a recent Go dev, I still feel Go is Rust-- (or put the other way, Rust took really good ideas from many languages, including Go, and made everything just a bit better than those other langs, so Rust could be seen as... Go++ with some nifty ML/Haskell influences?)
There are many, many really good things in Go, not addressing those. What I'm missing is
- strong stating typing with type inference
- GADTs
- pure functions (to be fair, Rust doesn't have those either)
- being able to not use GC
- lack of verbosity (errors as return values are better than exceptions, but explicit forced checks really call for functors)
#hashtagrustenvy
Hopefully they still keep this language simple. Thats a hugr selling point for me. I dont want go to be another Java/C#/C++ which only follows trends making big mess around. People coming to Go from Java/C# or other more feature rich languages want more features, but then once language gets bloated are the ones to complain about it
I think this doesn't replace Chi router, the middleware API of Chi is too powerful and the std net/http package doesn't have any API dedicated to middlewares
I’d love a video about debugging in go
Love your content❤.
Video on pprof would be amazing.
this net/http shit is huge and please do a mem profiling video
cmp.Or is the GOAT of this update.
The only possible future Go has for me is one where it gets tagged unions. It's such a basic feature and its lack is a dealbreaker for me.
I was hoping that they would also add "Sum Types"
dose go have a 2D pixel drawing function in its standard library last time i checked go diet not have one
that was a very interesting summary! thanks for providing it
Thanks for the kind words! Glad you found the summary helpful.
I would love to hear more about Profile Guided Optimisations (PGO).
Love the addition of routing in net/http. I literally just wrote my own router to avoid 3rd party code. I looks like I can replace most of it, except the middleware, with the new features in net/http.
I'm still waiting for the missing containers
I want a video about profiling!!!
I really want to know about profiling applications in production, how the process used to be previously, and what has changed in go 1.22.
pls make more content in go and its new features
I am planning to look at go (again) soon and frankly these "new" loop feature worry me. like there was no support for iterators? 😮. I guess this was the price of performance (move slow and fix things?)
Does this new change eliminate the need for a go framework like echo? I just started a project using echo so if I could not use it that might be even better
It does change the need! I have a video coming out in the next week on using net/http entirely :)
I’ve been getting into Go over the past few weeks, now starting to learn about servers and templating so I’m really glad I don’t have to look to 3rd party libs!
These are nice incremental changes, but as a newbie gopher i am actually a little shocked about that range issue... i did not even know the semantics yet.
Why was this fixed so late? Coming from Java i still enjoy me some go and looking forward to learn some of the more complex stuff.
I rewrite a little tool that i wrote in Java/Spring Boot currently to go... and it is sooo amazing to see how easy and straighforward things can be.
C'mooon i choosed rust over go and now go has a good http library ... (at least my language has good functional tools and iterators right ?)
choose whatever feels good for your projects buds !
Detailed video about the profiling is a must
Go is my favorite language. I know C/C++, TypeScript, Python, and JavaScript. None of them feel like Go. I even started changing my C++ codes to have a happy and error path like the way we do it in Go. I think Go has the best design. The only thing that bothers me is memory management, but I guess it's fine.
Keep going. There are definitely better languages.
Am I stupid for being extremely confused by the syntax for yielding a function? It feels like there is one layer of func too many to make sense. I bet it makes more sense for someone experienced with the language.
aaaaaaah yes I had a project that I needed my Slices to be concatenated instead of using the useless methods.... Im happy
mux and others bring tooling for middleware not just rooting so they are still useful
Time to refactor some old code of mine that uses Gorilla. Nice summary, thank you :)
Great, glad you found the summary helpful! 😊 Refactoring old code can be a challenge, but it's worth it in the end. Good luck with your refactoring process! 💻
1.2.2 is awesome! I was using fiber so far, but now, this is so nice!
Chi still way better than the stdlib, the hability to group routes in such a easy way is too good to not use it.
Non go programmer, but does this code confuse you between the left screens and the right screen? 3:15
I'm only waiting, now that we have 'iterators', a standard library package with chainable functional such as map filter reduce. It will be awesome
Very cool. I think I’ll stick with C89 and wait for the dust to settle
Things Rust can already do. 😅
thank you for supporting the channel, 5.4 cm!
Of course! Here's a concise and human-sounding reply:
Thanks for the support, 5.4 cm! 😊 Your modals will look great with that extra padding. 💕
Finally sane routing.
At last, no more tc := tc in every test case collection I write
yes, please do a video of pgo!
I'd like a deeper dive on the changes.
I would love a video on the profiling feature
Yield is a keyword? I think it is simply the name of the function argument
You are correct!
I was like "this is not that exciting tbh" until the last part. That is huge.
This is great! A sane JSON lib next? 😅
Hello. What the name of this font that you use in your terminal/IDE?
It’s neovim with NvChad config
I think the font is jetbrains
video about pprofile would be great! thank you!
Why is the video speed so quick ?
what vs code theme are u using
OMG the net/http changes are awesome
Thanks for the feedback! 😊 The updated styling looks great!
super
hi sir, I m a novice for Go, how to use middleware with this net/http router?
I shall do a video on this! Basically you can wrap the handler in your middleware function
Hi Dreams of Code, I am very curious about GO and especially now with this update. I am at the moment working with the basics of React and to my limited knowledge became aware that for full stack you need a restful API for your SPA (React.js) library. If I learn GO and the standard Library would this be enough for creating a full stack application? Will I still require a framework like Django or Next for the creation of a crud app? Or can I simple use GO on the backend? My primary focus is React at the moment but I would like to learn some backend and it seems GO is an excellent choice. Could you please share your thoughts? Much appreciated and thanks for the video.
Hey William! If you're using react you might want to check out next.js which is a full stack framework. Otherwise you can use Go for the API backend!
The net/http package is great for a simple server, you may find it easier to use gin or fiber as a beginner however!
@@dreamsofcode Thank you for the recommendation! I think I may look into gin or fiber. I just want to spin up quickly a crud app fast. Thanks once again.
@@dreamsofcode Thanks for the excellent advice! I've been reading the documentation on Go, Next.js, Express and Sveltekit and I came to the conclusion that I will try out Golang even though I read the learning curve is harder. But I figured maybe this will work better for me? I will soon find out. Thanks for the tips.
what about middlewares?
Great question! I have a video in the works on how to do this :)
do they have enums yet?
the route parameters and methods addition is really cool, will be using that
The new routing feature is a great update! 👍
Wow! Thanks! But how do you easily implement for example rate limiter middleware on a pure net/http?
You can wrap your handlers in middle-ware! I have a video planned that will show how to do middleware with net/http :)
I'll be waiting! )@@dreamsofcode