On Sat, Sep 1, 2012 at 4:04 AM, Steven Degutis <
sdeg...@8thlight.com> wrote:
> I've noticed that the majority of people with this kind of response just
> like yours are usually the same kind of people who wish to change Go to
> allow every feature that goes against its principles and are upset that they
> can't, for instance "Go shouldn't complain about my unused
> variables/imports" or "Go really needs generics and is unusable without it"
> or "Go should let me obtain function values from a given string which I can
> derive at runtime" or "Go needs to have an interpreter" or "Go is useless
> because it doesn't have real exceptions". And that's cool. Hey, fork it and
> add those features man, make the world a better place. It's open source :)
I think you are confusing two very different groups of people.
First there are those who want Go to have all the bells and whistles
of other mainstream systems, and miss that the main point of Go (as
Rob put it) is that it has so much less, but offers so much more. And
that if Go added all those "features", then Go would become precisely
what it was meant to avoid.
But there is another (much smaller) camp. I know it is difficult for
some to understand, but Go's minimalism (both as language and as
implementation) is not radical enough to please some fundamentalist
followers of the Unix/C/Plan 9 traditions.
The Go maintainers have the difficult task of handling all this
contradictory external expectations while trying to preserve their own
view of what Go should be.
My aim was to propose a change as minimal and uncontroversial as
possible (there would be no functional changes, and code would be
simpler and more maintainable) that would help make Go more palatable
to this second camp. (There are also functional benefits, but not very
significant beyond convenience for people running rather marginal
platforms).
I believe the change I proposed had no downsides, yet, it is the job
of the Go maintainers (as in any other large project) so say "No!" by
default unless they can be convinced that there is enough
justification for a change.
Where to set this bar is a tricky question, and the rather
conservative approach by the maintainers, combined with a perhaps not
very transparent decision making process, has discouraged people like
Jason from being involved, which is extremely unfortunate.
Anyway, sorry for turning this into a philosophical dissertation about
software design an development.
Uriel