Live data from Hacker News

Portable Cloud Programming with Go Cloud

blog.golang.org

61–70 of 158 posts

Re: Portable Cloud Programming with Go Cloud

#61
post #6

Earlier quoted context omitted.

Our company uses Go. Most people who join have no experience in Go yet usually they can get comfortable with the language in 1-2 weeks to start contributing. I know nothing about Node/JS but I'm sure that takes much longer?

> but I'm sure that takes much longer? Your people can pick up go reflect package or go routines/channels and co in 1-2 weeks and start contributing? impressive... most people can pick up for loops, if,switch statements, variable and function declaration in a week in any language as well... In fact, a lot of non programmers use JS regularly to write scripts in the browser. I imagine your people know how to program be…

go reflect is not commonly used, goroutines are pretty simple to pick up. I have used several large codebases with zero use of reflection. The point of go is it restricts you to 25 keywords (the basics that you sneer at above) so senior people can't get fancy and produce an impenetrable mess/marvel that beginners will take months to orient themselves in.

It is definitely easier to write well than js IMO, and harder to make a big ball of mud in.

Re: Portable Cloud Programming with Go Cloud

#63
I like how Google tries to masquerade their corporate goals behind the 'portability' banner. Google Cloud is in a distant third place behind AWS and Azure, so ofcourse they don't want developers to have tight coupling to their competitors.

This portable cloud strategy is a mirage. I haven't seen anyone migrate providers easily (we tried in my last company). In reality, you have to break the cloud agnostic abstraction to leverage provider specific functionality. And then you are stuck with unmaintainable mess of 'cloud agnostic' APIs mixed cloud specific APIs.

Re: Portable Cloud Programming with Go Cloud

#64

ironically terraform is already written in golang. https://github.com/hashicorp/terraform Go 96.1%

A frustrating choice. I spend a few minutes per week running Terraform on a recent laptop. If it were written in Python, it might use more memory and require a few dependencies (which I don't care about at all) but then I could write plugins without having to deal with IPC and weird language-specific serialization (which Java should have convinced us is a bad idea).

Re: Portable Cloud Programming with Go Cloud

#65
post #4

Maybe it's a biased and distorted perception that I have, but Go seems to be the most consistent and unsurprising language I've used, and I mean this positively. I haven't written any Go for over a year since my current job mostly uses Node, but I feel immediately comfortable jumping in to the examples in this blog post. I don't think that I'm explaining what I mean very well, but it's something I don't think is so t…

It is so consistent and unsurprising to the point of being boring. Which is a quality I have never thought I would appreciate, but if I am at work I do. It's very utilitarian.

I'll take Scheme for a spin if I am doing something for fun.

EDIT: %s/bored/boring/g

Re: Portable Cloud Programming with Go Cloud

#66
post #55
post #50

Earlier quoted context omitted.

There's a fine balance here. "You can't pay people enough to carefully debug boring boilerplate code. I've tried." (Yaron Minsky of Jane Street) While C++ goes to one extreme, not having certain expressive means (whatever they may be) has a price, and for certain kinds of problems, this price may be high. This returns to the idea I very much agree with: "The trick is to actually optimize a language for the difficult,…

Go is what Java 1.0 should have been. Question is, how it will move beyond that, if ever.

Go the language now is indeed very similar to Java pre-1.5, but with a better OOP story, and a much better concurrency story.

I still think that JVM + JIT is hugely important, though. Now it's importance is somehow diminished by presence of LLVM, but 20 and even 10 years ago the situation with native compilation was different. (I know that the canonical Go compiler does not use LLVM.)

Re: Portable Cloud Programming with Go Cloud

#67
post #4

Maybe it's a biased and distorted perception that I have, but Go seems to be the most consistent and unsurprising language I've used, and I mean this positively. I haven't written any Go for over a year since my current job mostly uses Node, but I feel immediately comfortable jumping in to the examples in this blog post. I don't think that I'm explaining what I mean very well, but it's something I don't think is so t…

Go is certainly very easy to reckon with. But I was surprised at how little O cared for it when I tried it, given the hype I'd heard. The two things that immediately jumped out at me were error handling and generics. I understand both were deliberate choices but I'm still surprised they were made - I've been working with Swift a lot lately and it just feels like it makes so much more sense to me.

I do love how opinionated Go is, though. Every language should have a gofmt equivalent.

Re: Portable Cloud Programming with Go Cloud

#68

I wonder what kind of monitoring and alert system must exist if any cloud provider changes their SDK or APIs (signature, logic, capability etc.) upstream while your go binaries are in production. Did Google manage to get cloud providers on board to register and update a 1 to 1 match between the upstream api and the go cloud api? Secondly on the article's mention on multi cloud usage, you would need to be a pretty lar…

I don't think cloud providers would just change their SDK or APIs without notice. It will break anyone using their SDK, not only go-cloud.

For your second point, it's normal for small startups to shop around and pick the cloud provider that's more suitable for their needs. For example on my last job at a small startup, we switched from AWS to GCP for cost reasons, and I implemented an abstraction (similar to go-cloud's) between S3 and GCS because of that.

Re: Portable Cloud Programming with Go Cloud

#69

I'm working on a new kind of container that allows for lambdas with very-very low latency. (Suitable for running a game loop.) This is absolutely awesome! Programming against the auto-generated AWS golang APIs is pretty painful. It works, but it's not idiomatic and overly verbose. I'm going to give it a try and see if switching to GCP is that easy.

FWIW there is an AWS-go-sdk-2 our there that’s more idiomatic.

Re: Portable Cloud Programming with Go Cloud

#70
post #40

I like to see how Go seems to getting some traction within Google. For years, I had the impression that Google was more Java/JS/Python driven and I was wondering why they weren't using their own language for more projects :-D

Google is actually C++ centric - every other language is a bit of a "second class citizen" when interacting with infrastructure. Go is still new and Google is "old", so there is surprisingly little Go code at Google - it doesn't make sense to rewrite critical infrastructure just because you have a shiny new language. The derivative is positive though, and slowly Go is being used for more and more new development.

When I left, Google was nearly 50/50 C++/Java with some lingering low-volume Python. Language-neutral RPC was key to not being stuck in one language.
Post reply on HN