6 ms·
AWS Lambda Releases Go Support
- EwanToo 9y agoI'm curious how heavily used Go is inside Google (as they are the core developers), does anyone know the approximate ratio of languages used there? Is Go one of the top 3 languages with Java and JavaScript, or is Python or something else more significant.
- owaislone 9y agoI think Dart probably has more lines of code at Google than Go has. Purely speculative.
- ertand 9y agoC++ is definitely in top 3, along with Java.
- danesparza 9y agoOne of the things that sold me on Go was this slidedeck (back in 2013 -- wow!): https://talks.golang.org/2013/oscon-dl.slide#1 https://talks.golang.org/2013/oscon-dl.slide#1 TL;DR: Discusses how Google engineers replaced the download server written in C++ with one written in Go, and analyzes the reasons why. It's pretty cool.
- liveoneggs 9y agoI heard from a guy who heard from a guy that go was replacing as much python as possible and people were upset about it
- periphrasis 9y agoMy understanding is that it's not that significant in terms of lines of code in the codebase, but it is significant in terms of its official support and its rate of growth.
- oh-kumudo 9y agoHeard people are using Go for scripting in Google? Which is pretty counter-intuitive for me.
- jackmott 9y agowhat does scripting mean?
- tyingq 9y agoHrm. That is stretching the definition of scripting quite a bit. No REPL and clearly lower level than shell, Perl, Python, Ruby, no dynamic typing, etc. Not knocking golang at all, but "scripting"? I would agree that some problems solved by scripting could/should be replaced with something more precise. But golang wouldn't be a great fill in for true scripting needs.
- ben_jones 9y agoWell if you had to write a highly concurrent script, like to test a network or something, Go would be a good fit.
- justicezyx 9y agoI cannot tell you what's the no. 3 language used by humans, but it's not go, not python...
- pjmlp 9y agoTop 3 languages at Google are certainly Java, JavaScript and C++.
- Tehchops 9y agoLooking for an official announce from Jeff Barr/AWS Blog. This just looks like a pretty basic Git repo.
- fred256 9y agoFor what it's worth, I do see "Go 1.x" as one of the choices when I try to create a new Lambda function in the console.
- Tehchops 9y agoAh, well, that pretty much confirms it :)
- darrenf 9y agoThe official Lambda developer guide has a section devoted to golang now: https://docs.aws.amazon.com/lambda/latest/dg/go-programming-model.html https://docs.aws.amazon.com/lambda/latest/dg/go-programming-...
- electricEmu 9y agoHad anyone had resounding success with serverless technologies? The CLI tools work, but they're frequently more of an annoyance then running a single process app. The logical layout and composition falls entirely on the team. Composing related functions seems to be more troublesome than it's worth. Is Go on lambdas exciting because people use Go for cross cutting devops operations? Is there demand for writing serverless Go? I see containers and the single process model as much easier to test, lay out and run. Honestly, I probably just do "get" serverless. What am I missing?
- skywhopper 9y agoThere are some narrow use cases where yes, stuff like Lambda works well. Mainly for infrastructure glue and pasting over holes in AWS functionality. I do not recommend it for any direct production usage.
- methehack 9y agoWhy?
- skywhopper 9y agoI am on the go so I can’t type much, but basically lack of control and insight into your service—why it’s firing or not, what is backing things up, unexpected errors can fail near silently, there’s a lot of tooling we take for granted on servers we control that you start to miss on lambda. Logging is a lot more work. Scaling is completely invisible and outside of your control. Weird OS or runtime bugs can surprise you. I don’t have a bullet list with documentation of each downside, but from experience running at a large-ish scale, it can be a lot more frustrating than you expect and the benefits in cost are not necessarily there. But again it depends on the workload and the use case. I’m not interested in making blanket statements about serverless tech. It has a promising future but the tools are just not there yet, at least not with Lambda. I don’t have experience with the competing services.
- 9y ago
- munns 9y agoHi all, no Jeff Barr post for this one, but here is our launch post on the Compute Blog: https://aws.amazon.com/blogs/compute/announcing-go-support-for-aws-lambda/ https://aws.amazon.com/blogs/compute/announcing-go-support-f...
- fragmede 9y agoHi Chris, Thanks for your post about Go Lambda, but... should we be worried? Did something happen to Jeff Barr? Is it time to move to a different cloud provider? Your post about Go on Lambda is certainly helpful, but feels like it's aimed towards at a difference audience than Jeff (Barr, not Bezos).
- sudhirj 9y agoDon't know if this is sarcasm, but AWS has a large team of evangelists. I'm sure they'd want to avoid a single point of failure in developer relations as well.
- notyourwork 9y agoJeff Barr is still at Amazon today, nothing to be worried about.
- munns 9y agoHi fragmede! Jeff Barr is a busy man and his blog these days is mostly focused on new products or super major features for existing ones. Lambda releasing Go support definitely toes the line (at least in my mind) but we made the decision to go with a post on this blog which has a focus in this space. Jeff is quite fine though and I talk to him almost daily!
- jeffbarr 9y agoI'm alive and well! Due to the number of launches we have to pick and choose a subset for the main AWS Blog. Stay tuned for some cool stuff...
- paulmaddox 9y agoBlog post with more details: https://aws.amazon.com/blogs/compute/announcing-go-support-for-aws-lambda/ https://aws.amazon.com/blogs/compute/announcing-go-support-f...
- ctrlrsf 9y agoThis is very exciting. I've been waiting for Go support for a long time now. Thanks to the AWS Lambda team!
- munns 9y agoEnjoy! We're very happy to bring this to everyone today!
- jsjohnst 9y agoCurious if you can comment, but is it in the roadmap to define a standardized language agnostic gateway interface for Lambda so a binary written in any language could be deployed by simply implementing the interface?
- munns 9y agoHrmmm, can't talk about roadmap here, but shoot me an email munns @ amazon and I'd like to understand what you are thinking of.
- iMuzz 9y agoOut of curiosity, how come? Bonus Question: What kind of things are you using Lambda for now?
- crb002 9y agoWhere is the C/C++ support!!!!
- baybal2 9y agoI checked their website, and found out that there are none
- GolDDranks 9y agoWishing for Rust support too. At the moment we are doing some batch processing stuff on AWS Lambda using Rust. We are wrapping the Rust binary in a Python script, which is fiddly and annoying.
- schlarpc 9y agoLooks like the "Go support" is just running a precompiled binary that starts a TCP listener (https://github.com/aws/aws-lambda-go/blob/master/lambda/entry.go https://github.com/aws/aws-lambda-go/blob/master/lambda/entr...), so might not be that hard to port...
- raidan 9y agoIt looks like it is exposing the handler over TCP using net/rpc. I would imagine that would be quite difficult to port to a different language.
- allan_s 9y agoyes basically you would have to implement at least part of this serialisation format https://golang.org/pkg/encoding/gob/ https://golang.org/pkg/encoding/gob/ if it's a "json" like data that is sent to you (i.e a structure made out of only primitive types and list/dict) it may be not that hard, but I think it will be a work with very few value outside of this very specific use case.
- FridgeSeal 9y agoI'm in the process of writing a rust program that will run on Lambda too! Have you head or Apex [0], from what I understand it just creates a node.js shim to call your binary, it's what I was planning to use. 0: https://github.com/apex/apex https://github.com/apex/apex
- jitl 9y agoGo might be a better language to use as a shim executor than Javascript. Unless Lambda is doing something tricky to make NodeJS perform much better than normal when it comes to loading code
- akerl_ 9y agoAnybody dissected yet how they're invoking the handler? Given that you have to compile the binary before pushing it up, it seems weird to announce "golang support" and not "support for any binary that talks $insert_serialization_scheme" over stdin/stdout or a network socket or some such, unless they're doing fancier magic.
- raidan 9y agoIt looks like the compiled binary just gets exec'd by the Lambda function and listens on a TCP port (specified by the environment variable _LAMBDA_SERVER_PORT) which accepts RPC calls to execute the handler using net/rpc. The code: https://github.com/aws/aws-lambda-go/blob/master/lambda/entry.go https://github.com/aws/aws-lambda-go/blob/master/lambda/entr...
- dzhiurgis 9y agoWhy is GCP so slow rolling out Functions? They have only one region so far, only one nodejs and that still in beta. Exposing Google's language in the main competitor cloud feels like a major slap in a face.
- pjmlp 9y agoThey are used to it. Only after Microsoft had a better Android emulator experience and C++ support for Android development on VS, did they care to actually improve their own tools.