DEV Community

Switching from JavaScript to Golang

/[Abejide Femi Jr]\s/ on September 30, 2019

Image Source Coming from a JavaScript background, I have always wanted to learn a static-typed programming language, earlier this year I picked up ...
Collapse
 
josemunoz profile image
José Muñoz

I am not sure Google backing is a plus

Collapse
 
cpustejovsky profile image
Charles Clinton Pustejovsky III

From a realistic standpoint, having a behemoth like Google backing it helps with longevity and adoption. See C# and Java as examples of this.

Collapse
 
josemunoz profile image
José Muñoz

don't fall for the big company illusion, Google has a track record of killing good projects: killedbygoogle.com/

Collapse
 
joshsea profile image
josh-sea

Not planning to learn go currently but love how you laid out how they overlap. Would love to see more tutorials like this, essentially basic components of a language in comparison to a language one currently knows, i.e. here is an array in ruby and this is what arrays are like in javascript... etc. Would help facilitate learning!

Collapse
 
yourtechbud profile image
Noorain Panjwani • Edited

The main reason to adopt go is its concurrency model. Go uses a concept of Green Threads which it calls goroutines. These goroutines lets you perform blocking calls (like network operations) without having to block the underlying OS thread! Greatly simplifies concurrency in a multi-threaded environment.

It would be really nice if you could mention that as well.

 
felicianotech profile image
Ricardo N Feliciano

Don't fall for hype.

Google can't "kill" Go because Go is an open source language entrenched in a world-wide community.

Thread Thread
 
careuno profile image
Carlos Merchán

Where all decisions are taken by them without listening the community

Thread Thread
 
freedom profile image
Freedom • Edited

Had that impact your decision before you even tried to use Go for your research purpose? If you have probably not even touch Go, perhaps, try it without the noise or negative opinions you heard in the community. Does it make your learning process or projects a lot challenging? Once I tried and found it's exactly what Go can do for my backends... and the next release 1.14 onwards will get more performant in certain areas that we thought it was already fast, there more to optimize.

Because some community said so should not impact the curious minds, you are a different individual, live in different countries and it's what you can do for your community with your creative inspirations and ideas just like your avatar.

There is no hype in Go language and it's a time saver with cross-compile binaries.

Remember, products can get obsolete, programming language does not, or C/C++/Ruby/etc would have been obsolete. It's not, because the Go's performance and productivity makes it worthwhile to invest that can replace many small different tasks and CI/CD.

Now "Defer" in v1.14 costs an extra 1 nanosecond compare to normal method calls without defer keyword, that's crazy fast.

Thread Thread
 
careuno profile image
Carlos Merchán

I'm working moving some nodejs code to go because of performance and ease of code reading. What I'm missing are generic and I'm sure many people like me want this feature implemented in go. I know that they have their reasons to not implement generics, but it was a reason that the community is angry with google.

It's a Google language and they do whatever they consider better.

Collapse
 
uby profile image
Ulf Byskov • Edited

IMO the only good thing about Go is go routines.
The simplicity of the language causes you to write too much boiler plate.
For example the need to have if err != nil { simply because there are no exceptions.

Collapse
 
jsrios profile image
jsrios

Great tutorial. I found quii.gitbook.io/learn-go-with-tests/ to be a great resource for picking up Go if you want to check it out.

Collapse
 
bjhaid_93 profile image
/[Abejide Femi Jr]\s/

yeah, it is nice, added it to the helpful resources.

Collapse
 
codelitically_incorrect profile image
codelitically_incorrect

This ain't ever gonna happen. Google indoctrination to the fullest it's for the left.

Collapse
 
jackyeoh profile image
Jackyeoh

Great article! I wish I’d found this article earlier as it could save me so much time poking around golang!

I’ve recently been trying to transfer some work done in js into golang and I’ve found that the major obstacle when it comes to switching between js and golang is on how you model your data.

For example, one of the very common use case is if I wanted to store different data in an array. You can do this very easily in js and even in some other static type language like java thru class inheritance. However, golang doesn’t fully support inheritance, which could drastically impact how we design our data model. Though you might want to add this in as personally felt that this is quite important.

Collapse
 
lluismf profile image
Lluís Josep Martínez

I suspect it's the only language for you :-)