5 ms·
Guido says goodbye to Google
- calebhc 14y agoInteresting...
- silasb 14y agoKinda makes sense. They are moving to more and more Go.
- chimeracoder 14y agoWhile Go is quickly eating into my use cases for Python in my own work, I'm not really sure that there's a connection here. Guido's employment at Google was a little more than simply, "Python's a cool language, so let's hire the main Python developer so we can use Python at Google." Furthermore, Google's vision for Go isn't as a replacement for what Python does - the fact that Go can satisfy many of Python's use cases is by coincidence more than by design.
- jrockway 14y agoI personally see Go as more of a Java replacement than anything.
- codewright 14y agoGo complements and sorta-kinda replaces Python for web programmers. Go replaces Java for Google and most other companies. Go was supposed to replace C++ but didn't even come close despite the best intentions of Pike and ken. Comical.
- DigitalJack 14y agoI am not a programmer by trade... but I'm a little confused as to why you would say Go can replace java but not c++? Is it just a speed thing?
- koko775 14y agoC++ gives you an insane amount of control, is exceedingly manual, hard to use, hard to learn, and you can easily screw yourself over by using it - but it gives you so much performance that it's worth the necessary expertise. Go tries to be safer and more automatic, like Java. While it's more organized and prescriptive than C or C++, it's less religious than Java about everything being a class. So it encourages the pragmatism and low-levelness of closer-to-the-metal languages while also abstracting out a lot of the details which get in the way of just writing systems.
- myko 14y agoSo the answer to the question is that C++ is just much more performant than Go in general?
- codewright 14y agoIt's principally about control, performance is a side effect related to control and abstractions.
- afhof 14y agoI still can't grok why people pick C++. Is it just a Windows specific thing? If someone wanted speed of execution, why not use Ansi C? If someone wanted object oriented programming, why not the myriad other languages? (Java comes to mind) What does C++ do better than all the languages?
- koko775 14y agoWhile I don't have personal experience with it myself, things like games lend themselves well to a limited use of OOP but also require performance-critical code and tight control over the language. With static analysis tools, I bet that C++ could be audited more comprehensive through automated tests than C could be.
- azth 14y ago> If someone wanted speed of execution, why not use Ansi C? If someone wanted object oriented programming, why not the myriad other languages? Because they want both speed and OO programming? :) C++ is a multi-paradigm language. It has more abstractions than C, while retaining the ability to get down to the metal when you need to. Arguably, these higher level features are desirable when working on larger code bases. C++ also has features that make it easier to write clean and correct code (such as RAII). Templates and operator overloading makes for writing expressive libraries. I remember reading and article that compared C and C++ in the context of a matrix library. The C++ code was much more concise and readable, and was easier to get right compared to C, mainly due to those two features. Furthermore, C++ can actually be faster than C. The canonical example is the templated std::sort() vs C's quicksort(). The C++ compiler is able to inline the comparator argument to the former, whereas qsort() takes a function pointer.
- kennu 14y agoHow does Go replace Python for web development? Is there a thriving web framework and module ecosystem for Go, like Django/Rails are for Python/Ruby?
- dchest 14y agoWhy do you need Django/Rails for web development?
- spamizbad 14y agoYou don't. But without something like them (or microframeworks + libs) you're going to be rewriting a bunch of stuff yourself. On top of that, security sensitive parts (session management, CSRF protection) that get hand-rolled will need a significant amount of testing. If you have the time and resources though... go for it! Edit: But it does seem like there's already some contenders for Go's go-to framework (Like Django/Rails are for their respective language) http://robfig.github.com/revel/ http://robfig.github.com/revel/ http://code.google.com/p/goweb/ http://code.google.com/p/goweb/ https://github.com/ungerik/go-start https://github.com/ungerik/go-start
- dchest 14y agoMy point was that you don't need huge frameworks with high barrier to entry to write web applications -- the things you mentioned can be handled by external modules just as well. Need captcha? Find the best captcha package and use it.
- pretoriusB 14y agoYes, and tomorrow that captcha package is abandoned, left to rot, etc. Or some other library you used. Especially since most Go packages are one man shows in GitHub (3-4 abandoned MySQL drivers, etc). I'd rather have a framework with a community that ensures that it is guaranteed to be maintained in the future.
- cmccabe 14y ago
- pjmlp 14y agoGo will replace Java when it will offer generics, same GC execution speed and the amount of libraries Java currently enjoys. Channels and Goroutines are easily available in java.util.concurrent. If you really want compilation to pure native code, there native code compilers for Java as well.
- _ak 14y ago> Channels and Goroutines are easily available in java.util.concurrent. HAHAHAHAHAHAHAHAHAHA. No.
- pjmlp 14y agoWith your childish comment you just showed how much you know about programming, zero!
- _ak 14y agoYeah, right. Just take a closer look what goroutines really are (hint: not threads), and how Java threads differ from them.
- nickik 14y agoYou show your ignorance again. Do you think that go does not use operatingsystem threads in the background? Do you think the same abstraction could and has not been built for java? How do you think does the Erlang impmentation on Java work? How do you think that scala can start so many actors? How do you think the forkjoin framework works?
- slurgfest 14y agoIt bears mentioning that Python can satisfy many of Go's use cases too. A fairer way to put it is that there is a lot of overlap across modern programming languages
- chimeracoder 14y agoWell, the big feature of Go - non-process-based concurrency - is still impossible in (C)Python.
- cdavid 14y agoThat's not exactly true: that' why something like twisted (and later async frameworks) was invented in the first place. What is not possible is non-process-based, CPU-bound concurrency. Generally, python is poor choice in those cases anyway (there are exceptions of course).
- zaidf 14y agoWhy do you need to hire the developer of Python in order to use it at google? Or do you mean they got him to better use python or to have close insight about a core language?
- pretoriusB 14y agoNo, they are not. Go is very peripheral to what they do. Few internal Google projects use it compared to the other Google languages. Google uses mostly C++, Java and Python for most of the stuff they do. Go is just a side project made by some Google people, not an office Google marketed platform like Dart or V8.
- pjmlp 14y agoEven the App Engine support is made by the Go team, not the App Engine Team, as I got to know in a Google IO talk.
- general_failure 14y agoNot a single hint on what he is going to be doing.
- nieve 14y agohttps://tech.dropbox.com/2012/12/welcome-guido/ https://tech.dropbox.com/2012/12/welcome-guido/ Or do you mean what he's going to be doing at a Python-heavy company like Dropbox that's trying to scale hugely performance-wise while building a lot of new features? (And yes, the link is in the original post as well as everywhere else on the net.)