
Go: Planning the 1.5 release - kristianp
https://groups.google.com/forum/#!topic/golang-dev/2ZUi792oztM
======
edwinnathaniel
I played with Go a bit and I like the idea of Go replacing C/C++ to write *NIX
tools (no, not the GUI ones, the command-line ones, the daemons, the
utilities, the server/collectors).

~~~
waxjar
Once Rust is stable, it would be really cool to see these rewritten in Rust.

~~~
YakovYakov
When will it be that Rust is stable? Many moon ago I was of the told that
December of 2014 would be the calendar date of the Rust stable version. Yet
December is now and I see no Rust stable version. When come it? When?

~~~
steveklabnik
Release candidate around the end of the year. See [http://blog.rust-
lang.org/2014/10/30/Stability.html](http://blog.rust-
lang.org/2014/10/30/Stability.html) and [http://blog.rust-
lang.org/2014/09/15/Rust-1.0.html](http://blog.rust-
lang.org/2014/09/15/Rust-1.0.html) for more details.

~~~
melling
If the release candidates are a few weeks out then it must be beta and very
close to stable? Can anyone who's using Rust daily discuss performance and
reliability. It should be ready for weekend projects.

~~~
jakevn
They have 31 blocking issues to take care of before 1.0 is a possibility:
[https://github.com/rust-lang/rust/milestones/1.0](https://github.com/rust-
lang/rust/milestones/1.0)

The project has 2,100 open issues and 8,500 closed issues.

The stability more or less comes down to the community moving away from
targeting nightly, and that can only happen when all of the fires are put out.
There are still a lot of breaking changes and clean-up being done in the final
hour.

Some people consider stable to mean that the language is "production ready",
which often implies a complete set of common libraries. There is still a lot
of work to be done in this regard after 1.0. Doing the nightly build whack-a-
mole is too frustrating for many, though, so 1.0 will help a lot for
developing the ecosystem that a "public ready" language needs.

~~~
gtani
I recommend looking at "This week in" blog and the RFC's also, to form your
own opinion of stability

[http://this-week-in-rust.org/](http://this-week-in-rust.org/)

[https://github.com/rust-lang/rfcs#active-rfc-list](https://github.com/rust-
lang/rfcs#active-rfc-list)

__________________________

discussion re: stdlib and 1.0
[https://www.reddit.com/r/rust/comments/2mo0zb/the_race_towar...](https://www.reddit.com/r/rust/comments/2mo0zb/the_race_towards_10_and_the_standard_library/)

~~~
jakevn
Thank you for this. I thought this-week-in-rust stopped a while ago. Very
useful!

------
mrcwinn
Really exciting to hear a focus on stability and performance improvements. The
GC improvements are absolutely necessary first and before anything else, in my
opinion. Go is new and it doesn't have the benefit of all the hard work and
learning that happened in other languages, particularly Java and the JVM.
We're playing catch-up there, to be sure.

For what it's worth to those new to Go, it's well-worth learning. It's not a
perfect language but I've thoroughly enjoyed working with it. It strikes a lot
of balances very well.

------
jsnk
"more complete support for Android"

Will we be able to write at least a simple CRUD android app using pure Go?

~~~
dsymonds
Per [http://golang.org/s/go14android](http://golang.org/s/go14android), apps
that don't need the Android UI (e.g. if it's only using OpenGL) should not
need Java and could be written in pure Go.

~~~
tonyhb
In fact, there's a user on Reddit that built an entire Android app with a UI
using a webview:
[https://github.com/MarinX/godroid](https://github.com/MarinX/godroid) and
[http://www.reddit.com/r/golang/comments/2kv0s1/go_14_on_andr...](http://www.reddit.com/r/golang/comments/2kv0s1/go_14_on_android/clpuscd)

It's entirely possible right now — we just need it to mature.

~~~
pjmlp
Webview != pure Go, which is what the OP was asking for.

~~~
tonyhb
My point was that even apps that _do_ need a UI can be written without Java
using Go.

~~~
pjmlp
Faire enough.

------
sbt
I have mixed feelings about this roadmap. On the one hand it's refreshing to
see that they are not pushing new features recklessly and rather focus on core
improvements. On the other hand, I think many would agree that the language is
ripe for a little bit of innovation at this point.

~~~
notduncansmith
Obligatory comment regarding generics. God I can't wait - if they add generics
and a decent package manager, I'm gonna be pushing hard for Go at our shop.

~~~
cpfohl
What sort of "decent package manger" do you mean? `go get` is pretty solid as
far as I can tell, the only thing it's missing is the ability to lock to a
particular version...

~~~
jbooth
It's missing the ability to publish or lock to a particular version, which is
a game breaker for shops with >5 people, and the go maintainers don't seem to
see it as a problem, making it a permanent game breaker.

~~~
MoOmer
The idea is that there are a few community-developed and supported dependency
managers that do this for you to choose from:

[https://code.google.com/p/go-
wiki/wiki/PackageManagementTool...](https://code.google.com/p/go-
wiki/wiki/PackageManagementTools)

~~~
jezclaremurugan
Been using godeps for a while, and absolutely no complaints so far.

------
disputin
_" the goal is to eliminate C from the source tree so that—except for programs
that use cgo"_

What does the future hold for cgo? Yesterday I ran into erratic DNS success
with a cross compiled program, win to lin. Haven't had a chance to look
further, but I'm wondering when I'll run into similar snags again.

~~~
axaxs
Can you please raise bug report or let me know what you find here? I work on
go native dns library for linux, which iirc is used when crosscompiling rather
than libc.

~~~
disputin
Not sure it's a bug, may be _" a well-known limitation"_ (unknown to me) -
[https://inconshreveable.com/04-30-2014/cross-compiling-
golan...](https://inconshreveable.com/04-30-2014/cross-compiling-golang-
programs-with-native-libraries/)

Have a Go: package main

    
    
      import (
              "fmt"
              "net"
              "os"
      )
      
      func main() {
              hostname := "feeds.feedburner.com"
              if len(os.Args) > 1 {
                      hostname = os.Args[1]
              }
              addr, err := net.LookupHost(hostname)
              if err != nil {
                      fmt.Printf("err: %v", err.Error())
              } else {
                      fmt.Printf("addr: %v", addr)
              }
      }
      
      set GOOS=linux
      set GOARCH=amd64
      set CGO_ENABLED=0

~~~
axaxs
Hi,

I do not have windows box to crosscompile any longer. I did test go 1.4 rc2
with CGO_ENABLED=0, which builds a static binary, and it gives -

addr: [74.125.192.118 2607:f8b0:4001:c00::76]

Are you seeing different behavior? Please describe...I'll see if I can look
into it.

~~~
disputin
Hi,

    
    
      $ ./dns-win-xc.bin
      err: lookup feeds.feedburner.com on [178.22.66.167]:53: no such host
      $ ./dns-lin.bin
      addr: [173.194.116.64 173.194.116.69 173.194.116.71 173.194.116.65 173.194.116.73 173.194.116.70 173.194.116.67 173.194.116.66 173.194.116.72 173.194.116.78 173.194.116.68 2a00:1450:400c:c0a::76]
    

Win 8.1, go1.3.3., Centos 7. There's a downvoter for some reason, maybe they
have something to add...? Don't let me lead you astray - I haven't yet read
that article I linked to, but a quick glimpse suggested to me that this isn't
a bug.

~~~
axaxs
I didn't(actually, can't) downvote. Before I dig further, can you try 1.4 rc2?
We heavily refactored DNS this release.

Secondly, your dns-lin.bin, is that with go built with CGO_ENABLED=0? Ie...if
you ldd both files, do they both claim to be statically linked?

If you'd like to continue by email, please click my username.

Thanks

------
mostafah
Interesting that a lot of serious and important tools of today are being
written in Go (like Docker and Rocket which made another news today). Very
impressive for a young programming language which is still at version 1.3.

~~~
Dewie
[http://blog.codinghorror.com/the-magpie-
developer/](http://blog.codinghorror.com/the-magpie-developer/)

~~~
zaphar
Except that Docker and probably Rocket work really well. And the speed of
development on the projects looks to have benefitted from using Go.

Speed of development is the killer feature that Go has. For me and most people
I know who enjoy the language it provides an almost frictionless development
experience that makes us more productive than any other language I know.

I'm a language geek so I totally get the whole "Why doesn't go have
{Generics,Typeclasses,Hindley-Milner Type Inference,...}" arguments. Sometimes
I miss them too. But then I remember how I literally cut months off a personal
project's development time using Go. That's when I remember to be greatful for
the core teams approach to making a purely pragmatic language that is geared
toward frictionless development above all else.

~~~
Dewie
> Except that Docker and probably Rocket work really well. And the speed of
> development on the projects looks to have benefitted from using Go.

By this you mean that people adopted Go because it is good (in a technical
sense), and because of the speed of development rather than because it was
"new and shiny"? Fair point.

> I'm a language geek so I totally get the whole "Why doesn't go have
> {Generics,Typeclasses,Hindley-Milner Type Inference,...}" arguments.

Why do you bring this up?

~~~
zaphar
While it was slightly off topic I was trying to head off the inevitable thread
about how Go sucks because it doesn't have favorite language feature X.

~~~
Dewie
Don't be presumptuous.

~~~
dsymonds
It's not presumptuous if that's what almost every HN comment section on an
article about Go devolves into.

~~~
Dewie
It's presumptuous to assume that _I_ will bring it up, to be specific.

~~~
zaphar
I truly didn't mean to target you specifically.

I was trying to be preemptive instead of presumptuous. Please accept my
apology. I can see how it might have been misinterpreted.

------
nonuby
Not being an expert on language design, but these improvements "compiler,
assembler, linker, and runtime for 1.5 will be entirely in Go" look like they
could lead the to large enhancements in 2.0.....

puts on trollface.. possibly even generics :)

