What is the future of GO language?

I am a fresher. I am confused on which programming language should i choose to start my career. Recently i heard about Google GO programming language. Guys can any one suggest me whether I can start my career through GO. Will it be fruitfull . . .? Please help me in this.

1 Like

It is definitely growing. Weā€™re about to introduce a dedicated forum for Golang.
I know a couple of people that use it extensively. Iā€™ll see if I can get them to jump into this thread and give you some advice.

Hey there, welcome to the SP forums.

Go is a great programming language, which is only getting more and more popular. It wouldnā€™t be a ā€˜badā€™ choice, however this would depend on a variety of other factors. If you are simply looking to get into a language with which you could get a job, you might be better off choosing a more popular language, such as Ruby, PHP, C# or Java. The reason I say that is that there are many many more job opportunities available for those languages. While this will change over time, it might be a point to consider. Having said that, thereā€™s a counter side, which is that since Go is becoming more popular, there will be more and more jobs available, and since there might be a smaller pool of developers available you may be able to command a higher salary than in another language.

I guess, the answer is ā€œmaybeā€. Can you tell us more about why youā€™d like to start programming?

This is the correct answer. Learn a language that will support what you are planning on doing. If itā€™s general web development Iā€™d encourage you to learn Ruby or Python as a first language. They both have active communities and are great modern programming languages with a lot of job opportunities. C# is a great language but will place you firmly in a Microsoft stack which might limit what you want to do. PHP and Java are very popular with a lot of job opportunities but theyā€™re considerably worse languages in my not so humble opinion and have been in decline for a while now.

I havenā€™t used Go so canā€™t really comment but I think of it as being similar to Node, great for certain types of tasks but not the best option as a general purpose tool.

Why would you consider Java a worse language? What makes you think that it is in decline? Itā€™s still #1 in pay and job numbers, as well as performance for the web. I donā€™t really understand how that could be worse? Especially lumping it together with PHP (which is terribly designed and performs terribly without the HHVM). There is a lot moving forward making Java Web Development more accessible to less experienced developers and less startup overhead with Play and Spring Boot.

The majority of the top 500 sites in the world still use the JVM as their primary backbone. The performance is hard to match.

Here is a recent job numbers ranking. Itā€™s been linked everywhere recently. #1, #17 and #30 are JVM languages.

Thanks for your reply sir,
Now I have a clarity for my next step. I know java, a bit PHP and a bit of Android as well but recently I heard about this language and saw the basics which is similar to Java and I got an offer in a company which asks for Go developer. If possible can you tell me what is the main reason to develop Go.? because java does almost everything but still why this new language evolved?

Programming Language preference is a personal matter and I try to avoid getting into discussions/arguments like these as theyā€™re nearly always biased and donā€™t produce anything of value but Iā€™ll try and explain my thoughts.

My preference boils down to what is more enjoyable for me to read and write as thatā€™s what I spend my days and nights doing. Ruby code is simple, concise and in a lot of cases reads similar to English. I found the design of Ruby and Python encourage better, simpler programs than Java. For me, learning Ruby made me a much better programmer in general, this is why I encourage learning them.

What makes you think that it is in decline?

http://www.google.com/trends/explore#q=PHP
http://www.google.com/trends/explore#q=Java

The majority of the top 500 sites in the world still use the JVM as their primary backbone.

I donā€™t know about this but even if it were true it matters to me little. My primary concern with programming languages is being able to articulate the meaning of the program in a simple and concise way thatā€™s enjoyable to read and to write. I find dynamic flexible languages like Ruby, Python and JavaScript far more enjoyable to read/write than more limited compiled languages like Java.

The performance is hard to match.

The only important consideration here is if the programming language is fast enough. For all applications I need to worry about dynamic languages like Ruby and Python are plenty fast enough.

Here is a recent job numbers ranking. Itā€™s been linked everywhere recently. #1, #17 and #30 are JVM languages.
I did concede that ā€œPHP and Java are very popular with a lot of job opportunitiesā€. I think a large number of these jobs would be in enterprise, an area I see fraught with inefficiency and waste and I donā€™t want to be involved in itā€¦

Fair enough.

But the graph you showed only reflects search trends. Its not surprising that its trending down since 2005 because we have seen a huge rise in scripting languages now that computers are not bogged down with major efficiency concerns.

But you can add multiple terms to the graph. When you combine them, that downward trend doesnā€™t look so bad when you see it relative to other languages.

http://www.google.com/trends/explore#q=PHP%2C%20Java%2C%20python%2C%20ruby&cmpt=q

I did not want to get into one of those arguments, but your post was spreading false information. I donā€™t care about personal preference.

I would subscribe everything you said except for this comment which I do agree in this specific case but not so much in some other scenario.

While the most important consideration HERE, in this thread, may be if the programming language is fast enough because for the tasks we are considering, any of them will work beautifully.

But I do want to point out that, in a more generic view, I think that the main priority of a programming language, and of a good programmer, is really that the software does what it is supposed to do in the most efficient manner, as fast as possible and using as few resources as possible.

Hence, a programming language can be easy to use and read for the programmer but be incredibly innefficient and abuse of resources, and other programming language may not be that easy to use for the programmer but execute the same code, even if it may look longer, in a breeze.

I suppose another side to the debate is how many shared servers have Ruby and Python as an option. Is it only the large companies, dedicated servers and VPS that have it installed?
Is it worth learning Ruby and Python if you are only going to work on small websites?

I know Python and possibly Ruby can be used for other things like data gathering and instrument control.

Iā€™ve dabbled around in Django CMS and I felt that it would be much easier to develop a small business website using it, as opposed to Wordpress or even Drupal. Though I havenā€™t actually done it for real, just a few basic sites to play around with it. It was much easier to configure the end-user (owner) simple page editing with precision control on the front-end and the backend code was much more accessible.

I have seen shared hosts that offer Python support, but I donā€™t know how common it is.

Iā€™ve seen it in all the unix / linux servers I had but never under windows although Python is supposed to work there too

The OP was asking about which programming language is best to learn for a career, I was just sharing the programming languages Iā€™ve found that made me write better programs and made me a better programmer.

If you follow this line of thinking through then all good programmers should be writing in machine code or C.
In software more money is spent on programmers than the machines that run their programs. As computing power doubles every year it doesnā€™t make sense to optimize for the thing thatā€™s improving year on year, programmers brains will remain the same mush as they are now. In fact, most time and money is spent reading programs, making it all the more valuable to have the most legible programs as possible.

I do agree that within a program you should make it as efficient as possible but thereā€™s not orders of magnitude between the different programming languages these days - as you can say they can all be used to achieve the same task. I value much more highly the quality of the program than the speed of execution.
If thereā€™s a specific task the Java would achieve 1000 x faster sure Iā€™d use it, but for the reality of web development the other options are better for me.

Maybe? I havenā€™t used shared hosting for 5 years or so now, itā€™s getting easier all the time to setup a server which can run multiple small sites more efficiently than shared hosting.

Absolutely, a lot of small sites donā€™t require a backend - maybe a static site generator like jekyll or middleman will do the task.
If it does need to be dynamic thereā€™s simple packages like sinatra which will do the job.

@Mal_Curtis; would be better at answering this one as heā€™s had experience developing in Go. From what I understand itā€™s Goā€™s concurrency model that makes it very fast at handling lots of tasks at the same time which make it special. This is why I compared it to Node which has a similar strength.

Iā€™d encourage you to at least learn the basics if youā€™re interested and thereā€™s a job opportunity you like the look of. Itā€™s got a bit of momentum at the moment and would be another good language you can leverage.

Which is precisely why it bothered me you told him to stay away from the 2 languages that by far have the most jobs with solid foundations for the future. But recommended Python and Ruby, which are still kinda in their trendy phases (but maybe not as much as Go).

Iā€™m still not quite sure why you talk about Java like it takes a long time to write. Traditional frameworks have a lot of startup overhead and initial setup, but once thatā€™s out of the way you can pretty much write it at the speed of any other language.

But even the startup overhead is shrinking using Play(pretty entertaining intro video btw), [URL=ā€œhttp://projects.spring.io/spring-boot/ā€]Spring Boot, or even [URL=ā€œhttps://grails.org/ā€]Grails(though, technically not Java).

I wonā€™t argue, hereā€™s what Iā€™m talking about http://vimeo.com/64017580

Thanks for the vid, itā€™s pretty good. I love hearing him talk.

But I donā€™t understand what point you were trying to make? I never said Python or Ruby or Go for that matter were wrong or bad. Iā€™m actually a pretty big fan of abstracted languages and currently working on my first site in Scala. I only said that Java was not declining and still going very strong.

As a matter of fact, Jeremey Ashkenas based the idea Coffeescript on languages running on top of the JVM like Scala, Groovy, and Clojure.

In any case, this is kinda becoming a dead horse at this point.

Iā€™d love to let you have the last word but I just canā€™t bring myself to do it :slight_smile:

No, his main influences were Ruby, Python and Haskell.

In any case, this is kinda becoming a dead horse at this point.

Agreed.

I donā€™t know why you got that idea :scratch:

Maybe I didnā€™t express myself too well.

Each programming language has its forte and weak points. Not all of them are suitable for everything. But whatever language you choose, you should try to make their programs as efficient as possible

This is the reason why programmers donā€™t pay that much attention to efficiency and yes, of course, thereā€™s got to be an equilibrium because you canā€™t spend your whole entire life just for a milisec. But the opposite is also true. You donā€™t have to stop worrying about efficiency just because newer computers are more powerful. You never know how many programs it will be running at the same time.

I think that legibility and efficiency are kind of complementary :slight_smile:

But going back to the thread, the problem with GO it is that you really donā€™t know how far it will go (pun intended :p) although I suspect that it will go a long way, being Googleā€™s. Having Google behind to do some promotion will make it expand quickly. Now, if it is here to stay, thatā€™s something else. It wouldnā€™t be the first time that Google misses so who knows?

For syntax and program structure, yes youā€™re right. I was talking about compiling to JavaScript as the ones I mentioned are compiled to Java Bytecode. To think he only had 3 influences is silly. I read it in one of his blogs at one point, I canā€™t remember where.

When you have a server intensive web app with 5,000-10,000 hitting it at any given time, efficiency is a moderately high concern. Not enough to spend all your time worrying about it, but it still kinda needs to be in the back of your mind. JUnit helps a lot. What I work on for a living would not function in something like Ruby or Python. Our server already costs as much as 2-3 developers. Thereā€™s only like 8 people on the team and 2 of them are C++ guys.

I still donā€™t get why people talk about Java like it takes a long time to read or write. Inexperience with the language I guess. Itā€™s not the new trendy language, so you gotta find faults somewhere! Even if they are ungrounded. :slight_smile: