Coming Soon – AWS SDK for Go
aws.amazon.com
aws.amazon.com
Also, the current situation with goamz is truly horrific. There are multiple independent forks of the original Canonical Launchpad-hosted version, each with their own subtle differences in usage, interfaces and feature support. None of them feel like idiomatic Go.
It really would be unlikely for this now AWS-supported project to end up doing worse than the status quo.
[1] mainly Coda Hale from Stripe, where the project originated: https://github.com/stripe/aws-go
Do you have some feedback that I can pass along to the AWS SDK team?
Not a reasonable comment.
In the past, it was difficult (impossible?) to figure out how it worked by reading the code. That's highly unusual for a Ruby library. It felt like a generated library, not like Ruby. When something wasn't working as expected (which happened often), it was difficult to figure out what was going wrong and why.
As a heavy AWS user, I've felt much more comfortable using Fog, even though I only really use its AWS provider. That's true even though I didn't even get to take advantage of Fog's multi-provider abstractions (basically just using it to make raw AWS API calls). Hopefully that's all in the past and I should give it another look the next time I'm doing that stuff in Ruby. Fog also gave much better control over a lot of the details that are important when doing stuff in production, like timeouts and keep-alive settings.
The 2nd example that comes to mind is the AWS Flow framework for Ruby: https://github.com/aws/aws-flow-ruby
Flow does things like create global methods ( https://github.com/aws/aws-flow-ruby/blob/master/aws-flow/li... ) and its DSL abstraction just doesn't feel right. It tries too hard to make it feel like you're just running Ruby code, and it's tough to determine how it uses SWF under the hood. It's such a large abstraction on top of SWF that it basically means you can't write parts of your app in anything other than the Flow frameworks for Java or Ruby. But then, the other major SWF framework I've seen (https://github.com/sclasen/swf4go) also locks you in. So maybe it's just a shortcoming of SWF that it's not usable without a big abstraction layered on top of it?
From what others are saying, it sounds like the newer stuff is in much better shape. That's very encouraging!
Regardless, I think you've made a great decision in taking over aws-go. I have very high hopes for its future :)
The primary thing needed for ongoing success is relentless commitment to 100% coverage of the AWS feature set, with new AWS features supported when they become available, not "at some later date". Nothing worse than reading about some new (or old) AWS feature that effectively does not exist because it is not supported in the client libraries.
Hopefully Amazon's version will be comprehensive and idiomatic.
that's the reason you're seeing all those forks: we all added what we needed, couldn't get it in, and gave up.
(Would there need to be any dependencies to install?)
That said, I can see it becoming a standard for daemons, utilities and low-level userspace in general due to its rather excellent POSIX and syscall support. I really find the (present) lack of this to be Rust's main deficiency, though the third-party crates are slowly picking up with bindings for things like prctl(), epoll() and so on.
EDIT: Why the downvotes? Rob Pike has stated that he regrets attaching the "system programming" label to Go, since he never intended it for OS kernels and the like. If it's about me being wrong on Rust's POSIX bindings or Go's suitability for daemons, do prove me wrong.
> It's not going to be displacing low-level programming any time soon, unless radical changes are in store for 2.x and beyond, hypothetically
What radical changes are you referring to, and why are they needed in order for Go to be a de-facto language for system programmers?
Oberon Kernel.Mod, initial version 11.4.86
http://www.inf.ethz.ch/personal/wirth/ProjectOberon/Sources/...
A certain swiss guy decided to create a graphical workstation based on the NS32000 processor, using a revised version of Modula-2, with a GC for systems programming, named Oberon.
The Oberon OS managed to provide a fully working graphics workstation capable of fulfilling many tasks at the ETHZ systems programming department. Specially the latest version, System 3 with the GUI Gadgets framework.
It had as descendents EthOS, BlueBottle AOS and its design influenced Plan9's ACME and Rio.
But the world was busy looking into UNIX being adopted by the industry and Oberon is no more.
When I started programming, the bias was against any language higher level than Assembly for home computers.
However it's certainly possible to use as a glue language. I've talked to some folks at DO who just install go on machines and `go run` scripts.
Glad to hear Amazon have formally adopted it as canonical!
Godef: https://github.com/buaazp/Godef
Others also have this issue with GoSublime http://stackoverflow.com/questions/21832288/gosublime-go-to-...