DEV Community

Cover image for 7 Reasons Why Front End Developers Going Full Stack Should Choose Go
Jeremy Morgan for Pluralsight

Posted on • Originally published at jeremymorgan.com

7 Reasons Why Front End Developers Going Full Stack Should Choose Go

So you're a front end developer, and you want to learn some backend stuff. You want to become a full stack developer someday, so where do you start? Google's Go language is an excellent place.

For instance, let's say you want to build a RESTful API to test the calls from your React Application. You could use JSONPlaceholder, Reqres, or even SoapUI. All excellent options.

Or you could spend an evening take A Tour of Go and follow a tutorial like this one to build a local API that does exactly what you want, and mocks whatever you want. Right on your local machine!

Here are some reasons front end developers should choose Go as their jumping in point when going to full stack.

1. Go Is Cross-Platform

Where do you develop applications? Likely Mac, Windows, or Linux. Go works identically on all of these platforms. You can build Go applications in whatever environment you'd like, and push them to whatever environment you choose.

I like to "Jump around" operating systems when I'm working, and I've found the experience to be similar across all the platforms.

2. The Learning Curve

Go is a programmer-friendly language. If you're familiar with JavaScript, it isn't a far leap to learn Go.

sum := 0
for i := 1; i < 5; i++ {
    sum += i
}
fmt.Println(sum)
Enter fullscreen mode Exit fullscreen mode

It's very similar to C, and although it's a compiled language, it's not as finicky as C or C++. As you get more advanced, you'll see many differences from JavaScript. But when you're starting, much of it will be very intuitive.

3. Web Applications Are First Class with Go

If you're a front-end developer, obviously web applications will be a big concern for you. The Go ecosystem stacks up very well in this respect.

You can build REST or GraphQL APIs in Go several ways. You could do it with the Go Standard Library, net/http, or use one of the many mature, excellent frameworks for Go:

If you want to build robust, stable web applications in Go, you have some great options.

4. Clean Code

The Go language doesn't force good code but certainly encourages it. The compiler is opinionated and requires some conventions that ensures your code looks consistent. Built-in tools like fmt help clean up your formatting, and testing is built right in.

5. Get a Lot Done Quickly

Go is a language that offers the great performance of a language like C++ with the simplicity of a language like Python. It's easy to get a lot done with a small amount of code in Go. You won't find yourself doing a ton of low-level stuff that takes thousands of lines of code to complete. While some view this simplicity as hampering, it's great when you're starting out.

6. Abundant Learning Resources

There are so many places you can learn Go, it's difficult to choose where to start. Here's your answer: A Tour of Go. This is the first stop for learning.

Once you start looking for resources to learn more, there are a ton of great places to go.

Also, here are 10 places to Learn GoLang.

7. Performance

Ok, so most of the "why you should use Go" articles start with performance. This is because Go is screaming fast. I didn't mention it first because if you're a front end dev just getting your toes in the water, it doesn't matter how fast your todo backend app is while you're learning.

However, as you gain proficiency and start building real applications, Go scales up nicely. Whether it's a small microservice or an extensive enterprise application, Go offers superior performance. Go features:

  • Concurrency
  • No virtual runtime
  • Efficient value storage
  • Compiler optimizations
  • Non-blocking I/O

If you're going to take the leap to the backend, why not hitch your wagon to something fast and powerful?

Summary

If you're a front-end developer and curious about "making the jump" to full stack, you should give Go a look. It's easy to create basic applications to get started and easy to build out something "real" fast.

If you decide to jump into Go, let me know what you think!. I'll help you out in any way I can. Till then, Go build some cool stuff!!

Top comments (17)

Collapse
 
kataras profile image
Gerasimos (Makis) Maropoulos

Hello Jeremy, I wanted to say good things about the article, it contains good aspects but as others said, it lacks research...and can lead developers to bad decisions, e.g.

  1. You have listed the martini (deprecated) with 11k stars and the gorilla/mux with 12.5k stars but you ignored kataras/iris that Go developers support and trust with 18.8k stars and hundreds of feature requests(!), despite the fight against it when it was initially published. It shaked the Go community to think deeper and see what a tool like that can offer, nowadays many frameworks follows the Iris API and copy its features.

Please do research of issues, stars, community, google trendings and e.t.c. before publishing an article like that.

Thanks,
Gerasimos Maropoulos. Author of Iris

Collapse
 
jeremycmorgan profile image
Jeremy Morgan

I didn't "Ignore" Iris, I have never heard of it. I will check it out.

I listed the frameworks I have used and am familiar with. And Martini is no longer being maintained, but there are still many people using it, and it's worth looking at to learn from.

Collapse
 
petros0 profile image
Petros Stergioulas • Edited

Hey Makis,

I just wanted to say great job with Iris!

I wish I knew it earlier before I used echo. Although echo is actually good too.

Cheers

Collapse
 
kataras profile image
Gerasimos (Makis) Maropoulos

Hello Petros, thanks man. Its never too late for a change though 🤠

Collapse
 
rad_val_ profile image
Valentin Radu • Edited

No.

Go is great for web services, there's no need for an article to prove that, but I think most of the frontend developers out there are already familiar with Javascript/Typescript.

I don't feel like there's a specific language web devs should start their backend journey with, that's non-sense, but if there was one: why wouldn't they start with NodeJS, the ecosystem is rich, has a vibrant community and the language + building tools + best practices are very similar, if not the same.

So, why not start with baby steps and focus on the actual new backend topics you have to learn than the language and the platform itself?

Collapse
 
itsjzt profile image
Saurabh Sharma

I think people should choose languages by trying it themselves.

Collapse
 
rad_val_ profile image
Valentin Radu

Or based on the problem they want to solve.

Collapse
 
andrewbaisden profile image
Andrew Baisden

I am currently looking at the differences between Node, Python, Java and Go as backend languages.

Collapse
 
theonlybeardedbeast profile image
TheOnlyBeardedBeast

Try .net core, graphql with hotchocolatte is really nice!

Collapse
 
andrewbaisden profile image
Andrew Baisden

Oh cool I did not know about that one. Actually my thought process has changed now. I am trying to expand my skillset by learning a new language and not just for backend development. Also for use cases and future proofing. For example learning Python and Java would open the door to Android App development.

Using this for reference insights.stackoverflow.com/survey/...

Thread Thread
 
theonlybeardedbeast profile image
TheOnlyBeardedBeast

Flutter would be much cooler (crossplatform app development and works really good) or if android only then I suggest you kotlin with jetpack, python is overrated, I mean fo data science it is cool but I wouldnt use it for anything else.

Thread Thread
 
andrewbaisden profile image
Andrew Baisden

I don't doubt that its cool in fact I already have some courses on Flutter and Dart which I have had for a long time but never started. However if I am to learn something new then there needs to be job prospects available for it. Just searching on a few job boards brings up hundreds of hits for Python and Java jobs. More than Go, Kotlin and Rust.

If I was to learn Flutter is it going to lead to more job opportunities or will they just end up as personal side projects because not enough companies are hiring developers that use that tech stack? That is my concern.

Thread Thread
 
theonlybeardedbeast profile image
TheOnlyBeardedBeast

I understand, I think we are from different countries, and that results in different needs in the tech field 🙂

Collapse
 
rad_val_ profile image
Valentin Radu

I think the language doesn't matter.
In the end we should focus more on the libraries, communities and the ecosystem. For example, Python is a poor choice for web dev (slower adoption of new web techs in the community, not statically typed, etc), but the only (ok, an extrapolation, but you get it) viable choice for data science.

As for Go, a pretty solid choice for web dev, but certainly not all full stack devs should learn Go, that's non-sense.

Collapse
 
strzibny profile image
Josef Strzibny

Very weird list of reasons. I can think of a bunch of languages that would come up first to pair for a front-end dev. Only the speed is a kind of differentiator to Python, Ruby, and others. Everything else can be aplied to most languages.

Collapse
 
alantelles profile image
Alan Telles

Good article! I'm going to get at look at Go right inspired by your article. Here in Brazil it has no much attention, but I think it will be a good choice for a project of mine.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.