[openstack-dev] [tc] supporting Go

Flavio Percoco flavio at redhat.com
Tue May 10 23:08:39 UTC 2016

On 10/05/16 13:52 -0400, Adam Young wrote:
>Forget package management for a moment;  we can figure it out if we 
>need to.  The question is "Why Go" which I've pondered for a while.
>If you need to write a multithreaded app, Python's GIL makes it very 
>hard to do.  It is one reason why I pushed for HTTPD as the Keystone 
>front end.
>Python has long held the option to optimize to native as the way to 
>deal with performance sensitive segments.
>The question, then, is what language are you going to use to write 
>that perf sensitive native code?
>To date, there have been two realistic options, Straight C and C++. 
>For numeric algorithms, there is a large body written in Fortran that 
>are often pulled over for scientific operations.  The rest have been 
>largely one-offs.
>Go and Rust are interesting in that they are both native, as opposed 
>to runtime compiled languages like Java and Python.  That makes them 
>candidates for writing this kind of performance code.
>Rust is not there yet.  I like it, but it is tricky to learn, and the 
>packaging and distribution is still getting in place.

I disagree ;)

>Go has been more aggressively integrated into the larger community. 
>Probably the most notable and relevant for our world is the Kubernetes 
>push toward Go.
>In the cosmic scheme of things, I see Go taking on C++ as the "native 
>but organized" language, as contrasted with C which is native but 
>purely procedural, and thus requires a lot more work to avoid security 
>and project scale issues.

I disagree! I don't believe Go will take on C++ but for the sake of keeping this
thread a bit sane, I won't go into details here.

>So, I can see the desire to not start supporting C++, and to jump 
>right to Go.  I think it is a reasonable language to investigate for 
>this type of coding, but committing to it is less obvious than 
>Javascript was:  with Javascript, there is no alternative for dynamic 
>web apps, and for native, there are several.

I honestly don't think the above is a good enough motivation to start such a
huge change in the community. I mean, really, I'm not opposed to Go and I'm less
opposed to Rust.

As I've mentioned in other replies on this thread, there's more to it than just
the service specific needs. Infra, CI, Packagers, OPs, *community*.


>>OpenStack Development Mailing List (not for usage questions)
>>Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>OpenStack Development Mailing List (not for usage questions)
>Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe

Flavio Percoco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160510/cf2101d4/attachment.pgp>

More information about the OpenStack-dev mailing list