Complete Rewrite In Go!

preview_player
Показать описание
Recorded live on twitch, GET IN

MY MAIN YT CHANNEL: Has well edited engineering videos

Discord

Рекомендации по теме
Комментарии
Автор

“Go is like eating vegetables”🥕
Not tasty but good for your health.
Love it. 😂

kafran
Автор

Im convinced these blog reviews are just prime practicing his reading skills. I like it though, keep em coming, it somehow works

AndersGustafsson
Автор

Several years ago I did a Go rewrite of a Perl codebase of a task scheduler program and its utility programs used by an ERP system. The task scheduler is used by the ERP system to run reports and ERP processes at scheduled times, days, and dates. It was becoming increasingly difficult to distribute the Perl code due to its reliance on external dependencies. Go's single binary distribution is what sold me on the project. The ease of the rewrite and the ability to use Go's goroutines to implement per O/S process monitoring instead of the Perl version's status loop monitoring was great.

KevinInPhoenix
Автор

I want a compilation of all the "The name is a ...agen"s. It just feels good hearing those 😂

TechBuddy_
Автор

It's definitely not perfect, though what language is, but I do love Go. It's brilliantly simple, easy, efficient, and has a lot of excellent tooling built around it.

woody
Автор

You should really check out some of James Coplien's talks, he works with shops that successfully rewrite their codebases every 3 years. The problem people have with rewrites, is that they don't do them often enough. The longer you wait to do a rewrite, the more of a pain it's gonna be. Rewrites should be undertaken when the relevant domain knowledge is still fresh, so that the lessons learned from building the last iteration can be transferred to and codified better in the structure of the next one. If no one knows why something is there in the original codebase, then it's already too late to have a smooth rewrite.

It's literally the same dynamic as refactoring smaller chunks of code, except that smaller refactorings are forced to keep the overarching structure of the system the same instead of rethinking it as well. Focusing exclusively on small refactors just leads to the silly situation of having fresh clean code for an outdated/clunky system design. Rewrites are just the holistic logical conclusion of refactoring.

LambdaCalculator
Автор

Go is just vegetables until you start delving into channels and goroutines, they are delicious.
I feel like a lot of people just look at Go and think, it's just a C with GC and inverted syntax, without realizing how elegant and powerful the goroutines and channels are (CSP)

nafakirabratmu
Автор

Look, simple language like Go lets you focus on the product, on deliveries. Compare that to C++. Should you use this feature, or that feature, east pointers, west pointers, consts? auto? constexpr? constexpr if? Move? Or just copy? Pointers or references? And virtual tables? And standard library? And templates? Shared pointers? What about unique pointers? Why not raw pointers? Inheritance? Composition? Abstract classes? Who owns this piece of data?! And modules, And everything under the Sun... and you spend more time with the analysis paralysis and days go by.

Go is simple, there is only one way to do it, just do it. Go! DGAF, just Go.

peppybocan
Автор

Go is one of my favorite languages because how simple it is, how robust the standard library is, and how few updates it gets.

Learn a Go standard package and that knowledge will be viable for years. Big fan.

hamm
Автор

Prime is literally the only objective person in the Go versus Rust eternal debate. Everyone else is just stuck in my-tribe-your-tribe mentality. Is everyone egotistical? Evolve!

dareason
Автор

go is probably my favorite language so far, i'm doing some projects in it for fun and i can see myself being productive in it, also the performance is pretty good

jamlie
Автор

10:26 "Go is like literally the dumbest language possible"

And that's what makes it so good

Palundrium
Автор

This outro resonated with me. I had a similar experience with Haskell at the end of my Undergrad, only to find there were no jobs for it that didn't require 10 years experience or a PhD, so I wound up at my current company mostly writing Java and Python, until getting roped into the Docker/Kubernetes ecosystem, which is all in go, so now that's 90% of what I write now. I do like it for its simplicity, but find it somewhat restrictive (less so now that we have generics), but I still find my perspective and problem solving instincts are still colored by my time with Haskell, and I imagine it'll be the same if rust ends up imploding on itself.

BloodEyePact
Автор

I used to work in company were we had to migrate from spring boot 1.5 to 2 and as a result we had to rewrite our entire microservice stack . it was a nightmare because we ended having two teams where the first team keep adding new features to the old code and another team that keep migrating to the new one , the whole process took us about 3 years to finish and deploy

hamzanajji
Автор

A straight rewrite is hard to justify unless the current code is so bad that you’re losing enough revenue to justify the cost (both the direct cost and opportunity cost). But a re-platforming can be more easily justified. If you do a rewrite as part of creating your “next generation” platform, now you can gain support outside of engineering by offering a better feature set that should help to bring in more revenue

JonathanRose
Автор

Go is great for getting working done quick. And I enjoy that feeling at the end of the task. If there was a measurement for dev cycle to performance, Go would probably top that list, all other things being equal.

likwidsage
Автор

I love Go, such a simple language, with really clean syntax. It is a dead simple language and anyone can pick it up very quickly, however, I feel like Go sometimes tries too hard to make things simple, and they actually get more complex, like the critical lack of built-in methods. Why can't I have a Contains(array, element) on the standard library, no I fucking have to write it myself. It's not like it takes more than 2 minutes but damn is it annoying.

Then there is Rust, it is so similar to go, yet it is almost a complete opposite. Rust is an extremely complex language with possibly hundreds of built-in methods for everything you could imagine, even more so than python, with a complex and expressive syntax, that will make it very clear what you are doing but also sometimes ends up with shit like

alangamer
Автор

Go is my favorite language, because its just super productive. Its indeed not sexy, but when you just care about getting the problem solved, its your best friend.

vanclief
Автор

You can compile python into static binaries with nuitka. It will produce somewhat oversized binaries, but much smaller than shipping python in docker. Also startup times get way better.

alexpyattaev
Автор

10 years ago, hipsters used ruby, today they use rust

laughingvampire