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

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

jeremycmorgan profile image Jeremy Morgan Originally published at jeremymorgan.com ・4 min read

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)

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!!

Posted on by:

jeremycmorgan profile

Jeremy Morgan

@jeremycmorgan

Silicon Forest Developer/hacker. I write about .NET, DevOps, and Linux mostly. Once held the world record for being the youngest person alive.

Pluralsight

With our technology skills platform, companies can upskill teams and increase engineering impact.

Discussion

markdown guide
 

Not sure about that

Google trends speak otherwise.

For frontend coders who want to go full-stack is Python more reliable path, offering in one go (no pun intended) much more since, with Python, one receives data science, Linux administration, web development, and the wider ecosystem in one package.

Not to speak about the interactive shell and no waits for compilation. Go was developed by Google to address specific problems, and what is worse, they even failed to follow the recent trend in programming language development.

In my humble opinion, Go or Dart (Google languages) did not make it and have no future, especially Dart. Even Javascript in combination with Typescript may be a better choice compared to these two.

In comparison, Rust, not backed by any major player, is winning popularity constantly.

 

I think you have some wrong concepts, first of all, languajes are not like popularity or beauty contests so Google trends should not be taking in account as a reason to choose or discard a languaje.

Python it's a good alternative, but you should choose wisely when and how to use it, and know it's limitations. Also if you learn the languaje you don't magically get data science....

About the programmings Go was designed with simplicity in mind, thats why some people can find it dull, but it fulfills its purpose. If you haver ever used Go you should have know that the compilation time it's super fast so thats not a problem.

Rust it's a very nice languaje (backed by Mozilla btw...) but the learning curve can be very high, so It must be used in places where performance and safety it's demanded.

In conclusion, languajes are tools, you should learn the tool thats solves your problem, claiming that Go a 11 years old languaje in the top ten of most used and highest payed in many lists, has no future can be misleading.

 

I wonder if it is not some sort of misunderstanding.

Since your post advocates the Go language as a viable supplement to JavaScript on the frontend, I tried, perhaps sloppily, outline why this is not a good idea.

As demonstrated by Google Trends, Go fails to receive more traction, so shortly, it is doubtful if any significant number of jobs appear.

As for programming language design, it is certainly not a question of beauty but sheer pragmatism. Good language design encourages safety in the first place, not beauty.

Historically, Go addressed issues that Google had with the complexity of C++, but as it turned out, in the end, Go attracted a particular portion of Pythonists instead because of its intrinsic speed.

Rust, on the other hand, even though backed by Mozilla, which is a minor player compared to Google, exercises steady grow, even though it lacks in absolute numbers behind Go.

From that perspective, it is doubtful if any of these will replace C++ in a long go.

Anyway, suggesting Go as a proper tool for full stack developer seems to me somewhat too hastened, given the current state of affairs.

To conclude, if you advocate Go for people who know only Javascript, you mislead them on the wrong path, at least in my opinion.

 

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.

 

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?

 

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

 

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.

 

I think people should choose languages by trying it themselves.

 

Or based on the problem they want to solve.

 

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

 

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

 

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/...

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.

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.

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

 

Good point.
Thanks for the link.

 

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.