On 05/09/2016 07:43 PM, Rayson Ho wrote:
On Mon, May 9, 2016 at 2:35 PM, Ben Swartzlander <b...@swartzlander.org
<mailto:b...@swartzlander.org>> wrote:
 >>
 >> Perhaps for mature languages. But go is still finding its way, and that
 >> usually involves rapid changes that are needed faster than the
multi-year
 >> cycle Linux distributions offer.
 >
 >
 > This statement right here would be the nail in the coffin of this
idea if I were deciding. As a community we should not be building
software based on unstable platforms and languages.


Go is a production language used by Google, Dropbox, many many web
startups, and in fact Fortune 500 companies.

Using a package manager won't buy us anything, and like Clint raised,
the Linux distros are way too slow in picking up new Go releases. In
fact, the standard way of installing Rust also does not use a package
manager:

https://www.rust-lang.org/downloads.html

I never tried to compare Go to Rust. Rust also strikes me as a rather immature language that we shouldn't use. My point though is not to fixate on the language and start a religious war. I have bad things to say about every programming language in existence. My point is that immature unstable languages are a poor choice to pair with a stable mature language like Python (25 years old!) This is primarily due to cultural fit.

Only a small fraction of the human beings on Earth can write code at all. Of those, some fraction knows Python well enough to write and maintain complex software written in Python. Some other fraction knows $COOL_LANGUAGE well enough to do the same in that language. The intersection of these 2 groups is inevitably vanishingly small.


 > I have nothing against golang in particular but I strongly believe
that mixing 2 languages within a project is always the wrong decision

It would be nice if we only need to write code in one language. But in
the real world the "nicer" & "easier" languages like Python & Perl are
also the slower ones. I used to work for an investment bank, and our
system was developed in Perl, with performance critical part rewritten
in C/C++, so there really is nothing wrong with mixing languages. (But
if you ask me, I would strongly prefer Go than C++.)

If you think Perl is "nice" or "easy" you better get you head checked.

Also, C is not really a programming language -- it's more like assembly code with a portability layer. C++ is not worth mentioning as a language to write anything in given the better alternatives.

My argument boils down to: don't force OpenStack to accept code written in $COOL_LANGUAGE because we don't all want to have to learn that language in addition to Python. Sure some people will, and some probably already have learned it, but in a functioning development team, EVERYONE needs to speak the same language or you get the I-can't-review-that-code or I-can't-fix-that-bug syndrome.

OpenStack succeeds spectacularly at being modular -- with literally dozens of small projects that work with eachother and with other components in the ecosystem. Go start another project. Go use whatever language you want. If you don't want to use Python then don't call it OpenStack.

-Ben Swartzlander


Rayson

==================================================
Open Grid Scheduler - The Official Open Source Grid Engine
http://gridscheduler.sourceforge.net/
http://gridscheduler.sourceforge.net/GridEngine/GridEngineCloud.html




 >
 > If you want to write code in a language that's not Python, go start
another project. Don't call it OpenStack. If it ends up being a better
implementation than the reference OpenStack Swift implementation, it
will win anyways and perhaps Swift will start to look more like the rest
of the projects in OpenStack with a standardized API and multiple
plugable implementations.
 >
 > -Ben Swartzlander
 >
 >
 >> Also worth noting, is that go is not a "language runtime" but a compiler
 >> (that happens to statically link in a runtime to the binaries it
 >> produces...).
 >>
 >> The point here though, is that the versions of Python that OpenStack
 >> has traditionally supported have been directly tied to what the Linux
 >> distributions carry in their repositories (case in point, Python 2.6
 >> was dropped from most things as soon as RHEL7 was available with Python
 >> 2.7). With Go, there might need to be similar restrictions.
 >>
 >>
__________________________________________________________________________
 >> OpenStack Development Mailing List (not for usage questions)
 >> Unsubscribe:
openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
<http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe>
 >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 >>
 >
 >
 >
__________________________________________________________________________
 > OpenStack Development Mailing List (not for usage questions)
 > Unsubscribe:
openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
<http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe>
 > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to