Tip:
Highlight text to annotate it
X
MANDY WAITE: Another one for you.
Another performance.
So, what is the performance difference between *** Python,
*** Java, and *** Go?
FRED SAUER: OK.
Fair question.
This is actually one that comes up a lot.
It's a question that I try at first not to answer--
MANDY WAITE: Right.
FRED SAUER: --and then I'm happy to give an answer.
But I'd like to start out and say there are subtle
differences between the three different runtime
environments.
Python--
if you write any application in Python versus Java versus
Go, there are some things that work better in one language
versus another.
What's probably much more important for your
application, for your service that you're running, is what
your developers know and where they're going to be
productive.
So if you have a Python shop--
everyone knows Python really well, and there's one or two
guys that know a little bit of Java--
even if Java were slightly better for your application,
you're going to be much more productive building in Python,
so you should do that.
And the same goes the other way around.
Having said that, if all things were equal, if you
hadn't hired any development staff yet or you could pick
any language or you just want to learn something new, there
are some trade offs to make.
And maybe you should look at the complexity of the product
that you're building and how long it's going to last.
Python is a scripting language--
tends to be a little more productive for people
prototyping, iterating in small teams,
kind of working together.
Let's you be very agile.
You can do things very quickly.
If on the other hand, you're building a product and you
have a very large development team or a very complex code
base-- you're doing a lot of refactoring and you could use
some help from tools that can kind of refactor your code, do
static analysis--
then Java is probably a language that's more
productive.
And if you want to do something that's really
performance sensitive and you want to build with the stuff
that Googlers are building on, I would seriously check on the
Go runtime.
There's some really pleasing results there.
Having said that, it's an experimental runtime still, so
if you're building a production app, right now
probably Java or Python.
Pick the one you'll be in productive.
MANDY WAITE: So retraining your Java developers to work
in Go is probably not the best way to get performance?
FRED SAUER: Unless that's what motivates them.
And for some people, a new language is the thing that
wakes them up in the morning, more so than a cup of coffee.
For other people, it's being able to be productive and hit
the ground running.
MANDY WAITE: Excellent.
OK.
Good advice.