It's come up multiple times before, and been rejected each time.
https://groups.google.com/group/golang-nuts/search?group=golang-nuts&q=shebang&qt_g=Search+this+group
Python, Perl, Ruby, Lua, Node.js, and Haskell manage. Rust treats shebangs as comments. What's the problem?
https://github.com/mozilla/rust/issues/1772
Rob's a funny guy. "Category error", wooo, scary!
Compiler speed is not hurt by shebang support. Shebangs as comments at the beginning of files are O(1) to parse.
Compiled and interpreted are complementary, not exclusive. The secret behind fantastic interpreted languages like Erlang, Clojure, Haskell, and Ruby is that they're powered behind the scenes by solid compilers.
gorun is such an obvious improvement I'm surprised it's not in core Go already. I'll see myself out, it's rustx for me.
"I still don't see how that would help much with bootstrapping. Are you saying we should rewrite everything in Go and ship Go compiler binaries for all platforms we want to support? Sounds like a lot of work for a very marginal gain, and is hardly a good argument for shebang support since it comes down only to the difference between "./make.go" and "go run make.go", and that's a command you only type once.
Andrew"
Why speculate incorrectly as to the Go team's motivations, when you can read the several previous threads on this topic?
> As to what the problem is: it is the way these threads develop and the
> divisiveness that people seem to cherish. What I want to see from the
> proprietors of Go to requests they are not going to follow up is not
> "This is our language, we say how it goes, other programmers don't
> matter.", but "We are not going to put this in the language, but if you
> really want to here is what you can do." Be constructive rather than
> confrontational.
We are not going to put this in the language, but if you really want to here is what you can do
go get launchpad.net/gorun
and use "#!/bin/env gorun" in your scripts. Of course, the usual portability concerns of shebangs must be considered.
> In this case all that is needed is #! in the grammar as per Groovy,
> Scala, etc. and a gorun instead of go run. The Go proprietors indicated
> they wanted to create a community of support tool people and yet it is
> being blocked in an area a lot of people want to go. This sounds like
> dictatorship rather than community building.
The Go language pushes a lot of responsibilities onto tools and libraries. This is a design choice. The existence of gorun proves that it is unnecessary to add shebang support to the core.
The Go project has hundreds of contributors, and more committers from outside Google than within. Yes, the core team gets final say in important matters, but usually it comes down to consensus among the people who have spent the most time working on and with the language. The core group of contributors (from inside and outside Google) regularly debate important issues on the public mailing list, and all opinions are considered. It works rather well.
However, if new people come to Go and say "give me shebang support in the core or I won't use it!" then I am happy for them to walk away unsatisfied. We have spent a lot of time in other threads explaining the rationale for our decisions. At some point you've got to concede that people disagree sometimes and that is a perfectly fine situation.
> The interesting point is whether goroutines are a sufficient pull to get
> over all the problems of Go. Or whether D and Rust might actually get
> some traction leaving Go the programming language used only in Google.
D and Rust have very different goals. (Just ask their designers.)
If you think goroutines are all that Go has to offer, then you must have a very shallow understanding of the project. Do you write Go code?
I can't speak for all Go users, but most that I have encountered appreciate it for the restraint exercised by its designers. (The very quality that you malign here.) It is the overall combination (and sometimes absence) of features that appeals to me. Less is more.
Andrew
I wonder if https://code.google.com/p/go-wiki/wiki/Projects needs to be
more actively curated. An anology is with the Emacs 24 package
management: there is a distributed set of packages (ELPA), MELPA an
actively curated list, and Marmalade which is user uploaded packages.
I suggest that "SCons Go Tools" and "goscons" may no longer be useful. I
think both are now stale projects.