11 ms·
Seems to be an ever increasing trend to replace Python components experiencing high load with ones written in Go. Is this Go's niche? Definitely a language I wi
by cs648 13y ago
Seems to be an ever increasing trend to replace Python components experiencing high load with ones written in Go. Is this Go's niche? Definitely a language I will be learning in the near future, it doesn't seem like it will be going away any time soon.
- bayesianhorse 13y agoI've heard this several times. But the success stories are mostly concerned with smaller parts under heavy load. Go still is a lot harder to work with than Python if you know Python and its tools well... With Go you don't have anything comparable to Django, Numpy, Pandas...
- mattrobenolt 13y agoThis is very true. We're definitely looking at Go for "services", not as something to replace our entire Django app with.
- caycep 13y agoWill this change with time? I know numpy, pandas and matplotlib are likely relatively large projects, but my assumption is someone will likely put together data analysis / matrix math libraries to perform some of these functions.
- jre 13y agoI think Julia (http://julialang.org/ http://julialang.org/) might be a better alternative to Scientific Python than Go. I'm not sure you can get the same flexibility/expressiveness you get in Numpy/R/Matlab in Go.
- up_and_up 13y ago> With Go you don't have anything comparable to Django, Numpy, Pandas... Given the age of the language I would assume building out its associated toolchain is only a matter of time. Python didnt ship with Django, Numpy, Pandas...
- bayesianhorse 13y agoIt will be a matter of years. I for one, am developing stuff today.
- up_and_up 13y agoAs are most of us lol. I would say if you want to use golang for a serious project and need additional libs you have to ready to write it yourself, which grants the opportunity to give back to the community and contribute to open source etc.
- adw 13y agoPython is rapidly becoming the lingua franca of data science; but there the vast majority of your inner loop isn't Python (numpy, scipy, pandas, numba, theano; C, Fortran, assembler, Cython, LLVM, CUDA...). Basically Python is the glue language data people wanted, it turns out.
- MetaCosm 13y agoThe best parts of python... are C.
- nostrademons 13y agoThe most-frequently-executed parts of Python are C. The best part is being able to glue all those together easily.
- mattrobenolt 13y agoIf you're CPU bound, I think it's a good option to at least check out. It can work with real threads, and doesn't compete with the GIL. In our case, our actual CPU was low, but due to the high concurrency, any little bit of CPU work requires a context switch and contends with everything, for a little work. We alleviated that by just using a bunch of processes. Will it replace all of our Python? Highly doubt it. Some very specific pieces? Probably.
- james4k 13y agoDo you know about GOMAXPROCS? Sounds like tuning it could help.
- mattrobenolt 13y agoI was referring to our Python processes being CPU bound. Not Go. :) Yes, I'm familiar with GOMAXPROCS.
- TylerE 13y agoI'd say Go's niche is pretty much any sort of network server. Right combination of high performance, easy multithreading, and making it hard to shoot yourself in the foot (no buffer overflows, for instance)
- enjo 13y agoI've settled on Go to replace a worn out Java mess (otherwise a Python shop). We need the computational performance, and I do like the general feel of the language. I think this is something you're going to see a lot of going forward. It's the same niche Scala has been filling to an extent, but I personally think Go is a much better option (unless you need the JVM of course).
- kasey_junk 13y agoIs there evidence that Go is better than Java in computational performance? Truly curious are their links?
- burntsushi 13y agoYou might have misunderstood the parent, I think. It seems like he was saying that they used Java (and then Go) in lieu of Python because of the performance. But to answer your question, the Language Shootout seems to suggest Java and Go are on the same plane in terms of speed. Take that with however many grains of salt you like.
- zik 13y agoIt's also interesting that according to the Language Shootout Go uses a fraction the memory of Java - meaning you can save a lot of money by deploying it on cheaper machines or VMs and get similar performance to Java.
- JulianMorrison 13y agoI just checked out the language shootout. Go has really pulled ahead from where it used to be. Faster than SBCL or Ocaml or Free pascal on quad core 64-bit - that's impressive. Clojure's done some impressive improving, too.
- jackielii 13y agoAnd be aware that Go is quite young compared to Java, the optimisations will be better and better
- hcarvalhoalves 13y agoI believe Go purpose is exactly that of replacing more familiar languages with a static compiled version that is palatable. It's fulfilling a niche where, otherwise, one would resort to C/C++.
- dom96 13y agoI find it rather annoying that everyone seems to be advocating Go, it may be a good language, but I can't help but feel that the only reason it's being used is because Google's behind it. You guys should look into alternatives like Nimrod (http://nimrod-code.org/ http://nimrod-code.org/), which is in fact a lot closer to Python than Go will ever be.
- sergiotapia 13y agoPersonally, having it backed by Google makes Go better in my opinion. I feel a ton of smart, very insane individuals are working on it and it can only get better. Nimrod? Never heard of it or the person backing it. I'm _not_ a language snob, trust me! I'm just a regular, family guy, software developer and I try to put my proverbial eggs in reliable baskets. Go doesn't seem to be going away any time soon and it's really really fast.
- dom96 13y agoIf you want to put your eggs in reliable baskets then why not use Java, or C#, or even C++. Those languages are most definitely not going to go anywhere anytime soon.
- sergiotapia 13y agoBecause I already know C#, and why waste time learning Java which is very similar; what would I gain? I chose Go over C++, because it looks easier.
- dom96 13y agoWhat do you gain from learning Go?
- sergiotapia 13y agoObscene speed and learning a language built with concurrency in mind.