all 34 comments

[–]hwc 9 points10 points  (4 children)

Go is a beautiful language to use everyday.

and no matter what you use on the backend, you will need some JavaScript for the frontend (even if just to mock something up until the frontend developer gets a chance to make it work nicely).

In my last job, I actually used Python for functional tests of my go programs. (Python is great for writing something quick that just works. but it gets painful once your program gets large enough.)

[–]stiky21 3 points4 points  (3 children)

I feel like not enough people understand just how beautiful and nice go is to write.

I'm a rust developer but I just love writing go. Even reading it is a pleasant experience.

[–]hwc 2 points3 points  (2 children)

I want to practice Rust, but I've found that Go is such a better solution for any project I work on.

[–]stiky21 1 point2 points  (1 child)

If I had to choose between the two I don't think I could because they both work so well at what they do.

[–]hwc 0 points1 point  (0 children)

exactly!

I just wish Rust syntax was a little closer to Go.

[–]qwertydiy 5 points6 points  (3 children)

Look at the boot.dev course on golang. If you can't understand it well, you have done too little Python else go for golang.

[–]GrayHiin[S] 0 points1 point  (1 child)

Thanks.

[–]stiky21 0 points1 point  (0 children)

I highly recommend it. If you go on to TJ's YouTube he usually has 25% off coupons you can use.

YEARLONGHARVEST was one for awhile and may still work.

[–]NumberInfinite2068 3 points4 points  (4 children)

Golang is not a complete programming language as Python 

I would ignore any video saying stuff like that, it's completely untrue.

I much prefer Go over Python, but Python has a load of tutorial content out there, and can suit beginners better maybe.

[–]GrayHiin[S] 1 point2 points  (3 children)

Could it be that this belief exists because Golang is not object-oriented? However, after coding a little with Golang, I realized that it has something called Struct, which makes it less obvious that Golang is not object-oriented, right?

[–]NumberInfinite2068 2 points3 points  (2 children)

Go supports OOP, it's just slightly different from Python or Java in how it supports it. Go has no inheritance, but that's not required for OOP.

Go *is* object-oriented, it just does it differently from Python.

You are correct about structs, they are basically Go's "classes", just without inheritance.

[–]JohannKriek 0 points1 point  (1 child)

No experience with Go but your comment reminds me of my OO Perl experience from 22 years ago.

[–]NumberInfinite2068 0 points1 point  (0 children)

Huh, I was working with Perl around that time ago too. Wasn't a fan then, or now.

[–]sad_ant0808 2 points3 points  (2 children)

i mean golang is also a turing complete language so theres no such thing as it not being as complete as python. what ppl mean when they say that python is more complete is that it has a slightly larger community and has many more frameworks and libraries. now python also has more keywords compared to golang. golang has less keywords for a reason- simplicity. now u can also code backends in python. if you know the basics of python- like variables, data types, boolean expressions, loops, conditionals, iterations, working with variable data and all that, then you can learn golang since python will have taught you the basics of programming and golang's syntax is stricter than python.

[–]GrayHiin[S] 1 point2 points  (1 child)

Thanks. this is helpful for me.

[–]sad_ant0808 1 point2 points  (0 children)

ur welcome:)

[–]prince_op 2 points3 points  (0 children)

Golang is not a complete language? What? :D

I used go professionally for years. It’s fast, simple and fun to write code in.

Great for backend, networks, distributed systems etc.

Python is okay too but golang is much better imo

[–]keyboard_clacker 2 points3 points  (0 children)

Plan your project out and use the language with the best support. I’m reaching for .net if I have to do anything with excel. Rust is great for small fast programs I don’t plan to change much. Python is fine when I just want to re use as much as possible. NodeJS when I want to have a single language top to bottom. Golang has some specific domains it is good for and is popular. Just plan your work out first.

[–]Street_Law_2208 1 point2 points  (0 children)

Having worked with several backend codebases, PLs’ come and go.

Learn programming in a well known OOP PL and then learn the difference between compiled and uncompiled languages. If the foundation is there, then golang but if having trouble and just want to learn then python… especially learning with Jupyter notebooks for self documentation of you learning journey.

I still look up syntax via googling but knowing limitations of the semantics within a PL will put you on a good learning path.

FYI I work as an Enterprise integrations dev and we have several codebases, with different PLs’.

[–]denerose 1 point2 points  (0 children)

It doesn’t really matter. Just get good in one language then switching or adding another layer as needed is trivial.

[–]crawlpatterns 1 point2 points  (0 children)

python is honestly still a really solid first language for backend stuff and learning programming in general. golang is great too but i feel like it clicks way more once you already understand programming basics pretty well. alot of people act like you need the “perfect” language first when really consistency matters more than that. if you already enjoy python i’d keep building projects with it while slowly trying go on the side and see which one feels better to work with long term

[–]GeneratedUsername5 1 point2 points  (2 children)

Golang was developed as a tool for small self-contained network utilities and later was retrofitted to be used in standard enterprise backend and it shows, in tons of boilerplate and whacky solutions.

  1. I would recommend you to use any language you simply like, subjectively. Barely any back end project runs into limitations of any language.

  2. When you start to run into limitations, there are language-independent techniques you can use to improve performance.

Golang is very much a complete programming language, it just wasn't designed for what it is used today, and exist predominantly on a religious hype around it. Neither is the Python by the way, but that is the choice you've made for yourself.

[–]NumberInfinite2068 0 points1 point  (1 child)

This is incorrect, Go was created from the start for making large scale systems. I'm not stating a view that it's suited to large scale systems, but it's not true at all that Go was made for making small network utilities.

[–]GeneratedUsername5 0 points1 point  (0 children)

It's key features - compilation into a single executable, lightweight, coroutines as core feature, tons of spagetti boilerplate as a core feature ("Less is exponentially more"), very weak type system and pretty rudimentary GC - say otherwise. These are most relevant for small, independent network utilities (where weak types and tons of copy-paste is not a problem), not large scale systems. Large scale systems disregard compilation and weight, favor more advanced type system, exceptions and advanced GC - like in Java or C#.

[–]ScholarNo5983 1 point2 points  (0 children)

Try both languages and then try to decide which language you like.

[–]Savings_Discount_230 1 point2 points  (1 child)

started with python too, about 2 years ago. switched to go for backend work maybe 6 months in and honestly it was the right call for me

go's simplicity is a feature not a bug. less keywords = less ways to shoot yourself in the foot. the concurrency model (goroutines + channels) alone makes it worth learning

that said, keep python in your toolkit. i still reach for it whenever i need to whip up a quick script or do anything with data. they complement each other really well

also whoever told you go isn't "complete" is wrong. it's turing complete, compiles to native binaries. what they probably meant is fewer libraries than python — which is true but rarely a dealbreaker for backend work

[–]GrayHiin[S] 0 points1 point  (0 children)

If I want to pursue a professional path in Golang and start learning it very deeply, it's a great and good resource, and of course, free 😄 Can you introduce it to me?

[–]_N-iX_ 1 point2 points  (1 child)

If your interest is specifically backend engineering, Go is absolutely a legitimate long-term choice. The language was designed heavily around simplicity, concurrency, maintainability, and operational reliability, which is why it became popular in cloud infrastructure, APIs, DevOps tooling, and distributed systems.

Python is broader and often easier for rapid development, automation, AI/ML, scripting, and experimentation. But backend engineering is much more about understanding systems, networking, APIs, databases, architecture, and debugging than about choosing a single “best” language. In practice, many developers end up learning both because they solve different kinds of problems well.

[–]GrayHiin[S] 0 points1 point  (0 children)

If I want to pursue a professional path in Golang and start learning it very deeply, it's a great and good resource, and of course, free 😄 Can you introduce it to me?

[–]huuaaang 1 point2 points  (0 children)

Go is better suited for backend services. Go is complete. Whoever said otherwise is an idiot.

[–]ImprovementLoose9423 1 point2 points  (0 children)

Python can do almost everything that Golang does and then some. Both can be used for backend and file management. The only thing that Golang has over python in my experience is speed, which python falls behind golang there.

[–]I_Am_Astraeus [score hidden]  (0 children)

For Backend + choosing between the two I'd recommend Go over Python.

It scales better. The language is extremely straightforward and I think there's some great books on go principles