Well, the language is still pre-1.0. It is better to fix things now than be stuck with supporting poor design decisions years into the future. The good thing is that the semantic changes to the language have decreased significantly over the past year, and feature flags are now provided to force users to opt-in to experimental parts of the language. Much of the churn is is now on the library front.
There is no gofix tool, but you can use http://rust-ci.org/ to get immediate feedback when things break.
I don't know about the gofix tool, but I sure believe the language needs a standard gofmt tool before it's 1.0.
It saves the Go community so much bikeshedding and BS, and I've never seen anyone (except an insignificant minority bent on "freedom of expression" on their brace style) not like it.
That's a moot point. Many languages go without any kind of formatting tools. I definitely think a format and test coverage tools are HUGE productivity boosts, but I don't think it's time to spend on them when things like DateTime are still missing from language.
>Many languages go without any kind of formatting tools.
Well, actually that's a moot point too. Lots of languages go without any kind of closures either, but I wouldn't much like a language that doesn't have them.
I'm not saying it's necessary -- I'm saying it's very nice to have.
And I don't think it's a moot point -- if with moot you mean "open for debate". In Go, nobody debates that gofmt is very beneficial (well, the few complaints are on the level of statistical noise).
>but I don't think it's time to spend on them when things like DateTime are still missing from language.
You can add DateTime at any time. Java only recently added a decent one. But if you don't come with a tool like fmt from 1.0 and force it down people's throats (like Go), nobody will adopt it later.
A)Rust team deemed it low priority because syntax is in flux
B)Lot's of great languages go without formatting tools, so it's not THAT necessary
>You can add DateTime at any time.
DateTime added after will likely be in a form of several incompatible and buggy libraries. A formatter is nice, but personally I think a good test coverage tool is way more functional than a pretty formatter. And a date time library is often way more needed to deal with the insanity of DateTimes received from databases and other sources of information.
>but if you don't come with a tool like fmt from 1.0 and force it down people's throats
..they will invent an IDE that does automatic formatting, for them? Like Eclipse, IntelliJ IDEA? Or a library that does the same like JSLint/JsHint?
As long as your tools agree on common formatting, it's not that difficult to achieve similar results to gofmt.
>..they will invent an IDE that does automatic formatting, for them? Like Eclipse, IntelliJ IDEA? Or a library that does the same like JSLint/JsHint?
That's not the same. All those tools allow different styles, and people use them. You'd be hard pressed to find 2 javascript projects with the same formatting style on GitHub, whereas in Go it's like the default way or the highway...
So? As long as you have same style on your project - any style, your code will be readable and with less WS conflicts. I don't see what a built in formatter does, other than allow to minimize bikeshedding about format, which will just pop up as BS about libraries or VCS or something.
That is assuming built in formatter doesn't have configurable options. Which some formatters do.
>I don't see what a built in formatter does, other than allow to minimize bikeshedding about format
That's exactly what it does -- and it's an absolute wonderful experience to see it in Go. I'd say it again: very few people don't like, and most that tried Go were singes the praises of this idea.
That strikes me as a minor quality of life issue. Great, you've removed about 1% of all Bikesheds (which library,which framework, etc). Not, something that NEEDS to exist.
> And I don't think it's a moot point -- if with moot you mean "open for debate".
While "moot" itself has several definitions (and is, in fact, a contranym), the phrase "moot point" generally means a point about which debate is irrelevant, not one which is "open for debate".
You're arguing against a point he didn't make: he's not saying that it's a high priority now in the larger scheme of things, just that the formatter should be there before it hits 1.0. The latter usually meaning "when we really intend to unleash it on the public".
Good standardisation and automated tools to help with it are not quite as irrelevant when you reach the stage of trying many people to work with the language in big projects.
It works, but it's not perfect. The groundwork has been done, but as the language is still shaking out, it's not something that a ton of effort has been put into improving.
I too, hope that it will be psudo-mandatory upon 1.0. We'll see.
There is no gofix tool, but you can use http://rust-ci.org/ to get immediate feedback when things break.