DEV Community

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

Discussion

pic
Editor guide
Collapse
hanpari profile image
Pavel Morava

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.

Collapse
orlandoco profile image
OrlandoCo

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.

Collapse
hanpari profile image
Pavel Morava

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.

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

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

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

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
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
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
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
hanpari profile image
Pavel Morava

Good point.
Thanks for the link.

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.