News for hackers. Stuff that matters.
Re:To boldly go where Node man has gone before by paufernandez on Wednesday May 16, 2012 @02:56PM (#3983468)
As we are commenting here, the community is assembling by the minute... Go allows you to import "github.com/user/package" and will download and compile the code, so creating a new project is even easier than with node, no need to "npm install ..." first.

For a taste of what's out there, see: http://go.pkgdoc.org/index.

Re:To boldly go where Node man has gone before by jlarocco on Wednesday May 16, 2012 @03:13PM (#3983529)
The GitHub thing was neat the first time I saw it, but then I thought about it some more, and I'm not sure it's such a good idea.

I couldn't find any way to specify a specific tag or revision, so it's basically always getting the bleeding edge developer build of the library code. That might be nice in some situations, but for getting work done I almost always want the most recent stable release.

Am I missing something?

Re:To boldly go where Node man has gone before by vito on Wednesday May 16, 2012 @03:21PM (#3983563)
I hit this a while ago. The first thing I tried to install failed, because it depended on something that depended on something that moved its repository location (renamed itself from foo.go to foo).

It's a convenient hack but nothing more.

Re:To boldly go where Node man has gone before by zemo on Wednesday May 16, 2012 @07:21PM (#3984595)
if the repository owners tags a commit with the tag Go1, it is used by Go. If there is no tag to specify which commit, the tip of master is used. In practice, most maintainers just keep master clean and do all development in a dev branch.
Re:To boldly go where Node man has gone before by paufernandez on Wednesday May 16, 2012 @03:27PM (#3983597)
If I wanted a specific tag or release, I would just download that revision in the GOPATH directories, and refer to the package directly, instead of through the github URL.
Re:To boldly go where Node man has gone before by ConstantineXVI on Wednesday May 16, 2012 @03:57PM (#3983719)
Kind of a clunky way to handle versioning though. In Lein (for example), adding

    [noir "1.2.0"]
ensures I'm always grabbing the same version. In Go, appears the only way to guarantee this is to check in the full source of the library alongside your own in your repo.
Re:To boldly go where Node man has gone before by jamii on Wednesday May 16, 2012 @04:22PM (#3983839)
I wish Leiningen would also handle bleeding edge dependencies as easily as rebar eg:

    {deps, [
      {quoted, "1.0.3",
        {git, "git://git.corp.smarkets.com/quoted.erl.git", {tag, "1.0.3"}}},
      {proper, ".*",
        {git, "git://git.corp.smarkets.com/proper.git", {branch, "master"}}}
    ]}.
Re:To boldly go where Node man has gone before by ConstantineXVI on Wednesday May 16, 2012 @05:34PM (#3984139)
This plugin[1] looks like what you're looking for.

[1] https://github.com/tobyhede/lein-git-deps

Re:To boldly go where Node man has gone before by jamii on Wednesday May 16, 2012 @07:26PM (#3984610)
"You will also need to manually add the checked-out project's dependencies as your own (the plugin simply checks out the code, it doesn't recursively resolve dependencies)."

I've seen this plugin before but its not particularly useful without dependency checking. It's a start though. I'll have to look at leiningen to see if it exposes hooks for that sort of thing.

Re:To boldly go where Node man has gone before by cageface on Wednesday May 16, 2012 @09:59PM (#3984993)
I also consider it a huge plus that Go produces a single, statically linked native binary. No fiddling around with directories of libraries and search paths required.
Re:To boldly go where Node man has gone before by KaoruAoiShiho on Wednesday May 16, 2012 @03:20PM (#3983561)
npm is awesome, this direct import doesn't seem like a feature, more like a lack of a feature.
Re:To boldly go where Node man has gone before by paufernandez on Wednesday May 16, 2012 @03:33PM (#3983620)
It works very well for me. If I want someone to install a Go program I've developed, in Ubuntu 12.04 they can just:

  $ sudo apt-get install golang
  $ go get github.com/pauek/garzon/grz
That's it, and it takes a few seconds.
Re:To boldly go where Node man has gone before by nilliams on Wednesday May 16, 2012 @04:06PM (#3983757)
That's great to quickly show someone a program, but not so great if they try it a few weeks later and get a non-stable version of your program, otherwise that definitely won't be it, they'll have to spend some time figuring out what went wrong.

If Go adds some method to specify a tagged version that could be pretty nice though.

I hope it goes without saying that there's no way this kind of hack (neat as it is) is a substitute for a proper package management system like npm (which is a very good package manager).

Re:To boldly go where Node man has gone before by substack on Wednesday May 16, 2012 @05:59PM (#3984263)
This is a nifty feature and npm can do something very similar:

    npm install git://github.com/substack/node-optimist.git
Re:To boldly go where Node man has gone before by KaoruAoiShiho on Wednesday May 16, 2012 @04:51PM (#3983957)
How's that any faster than

  npm install express
Not only do npm handle versioning for you, you also don't have to remember the host or username. Obviously Go is a younger community, and could make a package manager some day, but I'm puzzled by how you're comparing this positively with npm.
Re:To boldly go where Node man has gone before by paufernandez on Wednesday May 16, 2012 @05:44PM (#3984192)
It is faster because you don't have to install npm, the case I was explaining involves someone with no developing skills.

And I'm not saying this feature of Go is better than npm, I also use npm and I like it very much. What I like is the fact that Go comes already with this feature and I don't need anything extra.

Re:To boldly go where Node man has gone before by rje on Wednesday May 16, 2012 @07:58PM (#3984704)
I believe that npm is now included as part of all node distributions.
Re:To boldly go where Node man has gone before by KaoruAoiShiho on Wednesday May 16, 2012 @04:52PM (#3983963)
Oh I get it, you're talking about from a package developer's standpoint. Not having to register your package with a central directory does save a bit of time for you I guess.

But when installing packages, I have to say, npm is fantastic.

Re:To boldly go where Node man has gone before by baudehlo on Wednesday May 16, 2012 @05:59PM (#3984261)
You don't have to do this with npm either. You can provide a URL to a tarball or a git repository and npm will install from there.
Re:To boldly go where Node man has gone before by baudehlo on Wednesday May 16, 2012 @05:58PM (#3984254)
And npm ships with node, so this is no different.

Furthermore npm can install git URLs directly too, including tags and branches if you need a particular one. Just specify the url as the "version" in your dependencies section of package.json. Totally trivial.