I'm a student majoring in in CS and I'm interested in golang and learn it a little bit but I don't know what's the real advantage of it.
I think C# or java has better a framework now (for example Spring in java) and speed is fast enough.
and golang's orm isn't good so far.
If you guys work for company and use golang now, I want to know why you choose it.
** recently golang is frequently used in blockchain instead of C++. why?
Background: I've been using Java for about 8 years and just started learning Golang.
So far, I'm in love with the language, and these are the top reasons:
More low-level control of memory. I hated how much the JVM's GC relied on the compactor. Objects can only be created on the heap and object arrays are arrays of pointers to non-contiguous locations in memory. Many like to say that Java has better GCs than Go, but that's because Go's memory model doesn't require such complicated GCs. It's also nice to have pointers in Go.
More paradigm-neutral. Java was designed from the beginning to be a language primarily for OO programming. Using Java for functional programming results in unnatural syntax and inefficient use of memory. Golang feels ambidextrous.
I'm still very new to Golang but as of right now, I even see it as a replacement for Node and Python in the areas of scripting and web server development. Golang's fast compile time closes makes it competitive against interpreted languages in terms of development speed, but 1-ups these languages because it gives the developer more low-level control of memory and has static typing.
So i am a python backend dev(mainly using fastAPI) but for scaling backends this is not ideal. I also know the basics of Java and Spring, but tbh i do not like coding in java. So my question as a dev who mainly uses Python and TypeScript is if Go could be the best fit for my use case and if so which of the Frameworks is the most similar to FastAPI?
Thanks for your help.
I've started to learn Java mainly because Android development is based on it. I'm not really familliar with it, but I've a c++ background that might give me some ideas. What I'm really looking to know is where I should use Java instead of Go. There's some fields below that I'm interested in and wanna hear your opinions as well:
a) Mobile Development
b) Web Development
c) Games Development
d) Scientific Development
e) GUI Development
f) New field..
If you're familliar with both languages and wanna give me your opinion would be awesome!
Note that I'm not looking to switch or give up one language in favor of another, but wanna learn to use them where they fits the best.
Hi guys 👋, I’m a SE student currently doing a personal project. I know Spring boot/Java/Kotlin and pretty happy with it. However I see Golang is kinda interesting and beside it have pros over Java like:
low ram consume
compile to single binary file
fast(nearly same as java)goroutine
good for cli app (github cli)
But I saw some people (not in r/java, trust me) said that we don’t need to learn Golang anymore because of Java virtual thread. Some people said that the performance between Java and Golang is nearly no difference, Java for monolith big app, golang for microservice/small rest app. Learn Rust instead of Go
So my question is, Is it worth learning Golang or just “All in” Java? Any benefits in learning Golang for Java/Backend developer? I want to hear you opinions ❤️
Btw, I’m good at Java, Kotlin, Dart, Python, (also know JS/TS but not proficient)
This question has been asked in r/java
Sorry if I said anything wrong. Thank you, have a great day 🙏 ❤️
EDIT: I want to learn Go because of the job opportunities (1/4 compare to Java) 🥲
I am with the opportunity to make a move (not a project within my company, a proper move to a go based role/company) from Java o Go.
I have worked with go before in some small projects in my company (mostly kubernetes focused), and I enjoyed, but was never “full time” or for long periods , it’s always have been a kind of “pet project” language for me.
So my question here is, have you made similar move, do you regret, do you miss the Java verbosity at all? What abou the ecosystem do you miss the nice java frameworks, do you have fun or would go back if you could?
Thanks
I cannot stress enough how much I prefer working with Go compared to Java. It's clean, simple, and, it's fun! No more factory design pattern, no more hundred lines of getters and setters, and no more shitty annotations. It all just makes sense.
When I first started, I did a lot of reading about avoiding "Writing Java code with Go". My dad was an engineer in the 80s-00s who was a very very early adopter of Java (I have more Java & OO books than you can imagine). So, it was definitely a challenge stepping back and reevaluating how I would approach a problem compared to before. Go's interface system, as an example, was extremely confusing compared to how Java does it (tho, I'm definitely a fan now of Go's). If you have any prior experience with C, you'll definitely find it much easier to transition to the language.
Lastly, just want to say thank you to the Go community! You all have been so helpful with any dumb questions I've had :)
Note: To anyone new to Go that's reading this, be sure to go through "Go by Example", Go Docs, and "Effective Go" (also recommend Go's style guide: https://google.github.io/styleguide/go/best-practices). Really helped me with getting up to speed quickly (will be going through Go's specification soon).
Go is such a simple language when it comes to building APIs. I worked with Java/Spring last summer and I have to say I really dislike the verbosity of Java.
Hello,
My background is working with Go on microservices ~3 years total xp and I got a better offer (60% more) for a Java role.
The Java role seems interesting due to the $ (obviously), but also due to the nature of the scale and amount of data that I will be working with, which for my current role are not met.
I don’t want to fall into the trap of getting attached to a language or tool, but I love Go and its ecosystem. This change seems quite big, but I want to become better as a software engineer, not an expert on "x" tool.
Can practices from Go be transferred to Java, as I know the approaches are quite different? I don’t want to get opinionated and think that there is only one good way to do things.
Any opinions or feedback on this and how it can impact my career is appreciated.
I'm seeing recurring claims about exceptional JVM performance, especially when contrasted with languages like Go, and I've been trying to understand how these narratives form in the community.
In many public benchmarks, Go comes out ahead in certain categories, despite the JVM’s reputation for aggressive optimization and mature JIT technology. On the other hand, Java dominates in long-running, throughput-heavy workloads. The contrast between reputation and published results seems worth examining.
A recurring question is how much weight different benchmarks should have when evaluating these systems. Some emphasize microbenchmarks, others highlight real-world workloads, and some argue that the JVM only shows its strengths under specific conditions such as long warm-up phases or complex allocation patterns.
Rather than asking for tutorials or explanations, I’m interested in opening a discussion about how the Java community evaluates performance claims today — e.g., which benchmark suites are generally regarded as meaningful, what workloads best showcase JVM characteristics, and how people interpret comparisons with languages like Go.
Curious how others in the ecosystem view these considerations and what trends you’ve observed in recent years.
Recently came across this post on the other sub.
Java outperforms golang
I don't buy it because native code is literally machine code and anything else(bytecode) comes with overhead
I've been using Java with Spring to implement microservices for over five years. Recently, I needed to create a new service with extremely high performance requirements. To achieve this level of performance in Java involves several optimizations, such as using Java 21+ with Virtual Threads or adopting a reactive web framework and replace JVM with GraalVM with ahead of time compiler.
Given these considerations, I started wondering whether it might be better to build this new service in Golang, which provides many of these capabilities by default. I built a small POC project using Golang. I chose the Gin web framework for handling HTTP requests and GORM for database interactions, and overall, it has worked quite well.
However, one challenge I encountered was dependency management, particularly in terms of Singleton and Dependency Injection (DI), which are straightforward in Java. From my research, there's a lot of debate in the Golang community about whether DI frameworks like Wire are necessary at all. Many argue that dependencies should simply be injected manually rather than relying on a library.
Currently, I'm following a manual injection approach Here's an example of my setup:
func main() {
var (
sql = SqlOrderPersistence{}
mq = RabbitMqMessageBroker{}
app = OrderApplication{}
apiKey = "123456"
)
app.Inject(sql, mq)
con := OrderController{}
con.Inject(app)
CreateServer().
WithMiddleware(protected).
WithRoutes(con).
WithConfig(ServerConfig{
Port: 8080,
}).
Start()
}I'm still unsure about the best practice for dependency management in Golang. Additionally, as someone coming from a Java-based background, do you have any advice on adapting to Golang's ecosystem and best practices? I'd really appreciate any insights.
Thanks in advance!
Hello experienced dev community,
I have 6 years of front end experience at big tech, start ups, as well the bank.
I want to transition into full stack or backend development , therefore I will be starting to learning backend tech stacks outside of work hours.
My friends suggested either Java + spring or GoLang. Apparently Java has the most mature platform and best overall supported ecosystem. As well, from landing a job perspective, most enterprise uses Java. However, he said golang is getting popular and the golang community is very motivated, although Go is utilized to write dev op tools like Terraform.
My goal is to intensively study and build a decent backend heavy project and hopefully transition into full stack / backend developer roles in 6 months.
Should I start go all in on Java?
Need advice from senior developers in this group. I am currently working as a full-stack JS developer and am currently looking to learn a backend language and cannot decide between Java and Go.
My goal is to eventually work on highly scalable distributed systems. So which language should I learn keeping in consideration the job market and my goal to build scalable systems? Java or Go?
Note:- I am currently based in India and would soon be moving to Toronto, Canada.
Please elucidate with reasoning. thanks!
Say you had several services taking in millions of requests a day, why would you write those services in go vs java. I have read through a few blog posts online but I am interested to hear what the community here has to say...
Edit: thanks for the responses. I realize the question may be a little vague but a majority of you were able to answer it thoughtfully!
I think it all boils down to what you, your team, and your company feel comfortable with. Assuming that everything outside of the service implementations is going to be the same for either language (monitoring tools, deployment services, CI/CD, logging, etc), then you have to base your choice on the libraries that exist for each language, and the support that exist for those libraries from either the community or a company.
Go typically has a smaller memory footprint and faster start up times. This can let you scale your apps faster and more efficiently if that's your priority. I have migrated quite a few apps from Java to Go. One thing to keep in mind I find a lot of the Java libraries to be more mature and better supported than the go equivilant. I wouldn't go through the trouble of migrating apps just for the fun of it. But new developement I'd lean towards Go unless it was something I could cheat and autowire with a few annotations in springboot.
Hi folks!
Small disclaimer: I have 11 years of experience as software engineer. Started with Java (web services) and after some time (5-6 years) decided to switch to mobile development(iOS + Swift). On that time the last actual version of Java was 1.8 ver. Now, after a while I want to switch back to backend development and from here and there I read about comparisons between Java and Golang. I know what are the differences between them and understand, that there is some hype behind the Golang. I tried Golang for 2-3 month and I have some feelings, that in some aspects it's not a language for my taste. But now I just curious do anybody have an experience with switching from Java to Golang and back to Java. What were your reasons? What you didn't like in Golang.