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