<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 05/10/2016 07:08 PM, Flavio Percoco
wrote:<br>
</div>
<blockquote cite="mid:20160510230839.GH12804@redhat.com" type="cite">On
10/05/16 13:52 -0400, Adam Young wrote:
<br>
<blockquote type="cite">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.
<br>
<br>
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.
<br>
<br>
Python has long held the option to optimize to native as the way
to deal with performance sensitive segments.
<br>
<br>
The question, then, is what language are you going to use to
write that perf sensitive native code?
<br>
<br>
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.
<br>
<br>
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.
<br>
<br>
Rust is not there yet. I like it, but it is tricky to learn,
and the packaging and distribution is still getting in place.
<br>
</blockquote>
<br>
I disagree ;)
<br>
</blockquote>
OK, you know I am a RUSTifarian. But Packaging is a real issue in
Fedora, as the Rust compiler is not packaged yet, and thus all the
downstream.<br>
<br>
<br>
But really I was attempting to curb my enthusiasm for Rust, as it is
not the language under discussion here.<br>
<br>
<br>
<blockquote cite="mid:20160510230839.GH12804@redhat.com" type="cite">
<br>
<blockquote type="cite">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.
<br>
<br>
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.
<br>
</blockquote>
<br>
I disagree! I don't believe Go will take on C++ but for the sake
of keeping this
<br>
thread a bit sane, I won't go into details here.
<br>
</blockquote>
This is the core of the matter: they want to build something
native, performance, and threadable. The options thus far are C or
C++, and I would expect people that got to C to continue to do so;
their rationale still holds. In the past, I would have suggested
people use C++ for an Object oriented and structured code base, but
Go is a viable native alternative unlike ones we've had in the past.<br>
<br>
Yes, yes, Rust would also work, but they are not asking about Rust.
Curb your enthusiasm, too, Flavio!<br>
<br>
<br>
<blockquote cite="mid:20160510230839.GH12804@redhat.com" type="cite">
<br>
<blockquote type="cite">
<br>
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.
<br>
</blockquote>
<br>
I honestly don't think the above is a good enough motivation to
start such a
<br>
huge change in the community. I mean, really, I'm not opposed to
Go and I'm less
<br>
opposed to Rust.
<br>
<br>
As I've mentioned in other replies on this thread, there's more to
it than just
<br>
the service specific needs. Infra, CI, Packagers, OPs,
*community*.
<br>
<br>
Flavio
<br>
<br>
<blockquote type="cite">
<blockquote type="cite">
<br>
__________________________________________________________________________
<br>
OpenStack Development Mailing List (not for usage questions)
<br>
Unsubscribe:
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>
<br>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
<br>
</blockquote>
<br>
<br>
__________________________________________________________________________
<br>
OpenStack Development Mailing List (not for usage questions)
<br>
Unsubscribe:
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>
<br>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
<br>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: <a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>