We are converting AWS Lambdas from Java due to excessive cold start times. Usage: These lambdas handle XML and JSON payloads, they use s3, API Gateway, RDS, DynamoDB, and external API's. Most of our developers are only experienced in java. These three languages (Go, Node.js, and Python) were discussed, but no consensus has been reached yet.
Go would provide the easiest transition for Java programmers -- its IDE/tooling is second to none (just install Goland) and the deploy/distribution story is extremely clean and lends itself to work well in lambda: single, static binaries with quick startup. No need to set up a full environment or package dependencies on your lambda AMIs, just copy a file.
I will disagree only with the recommendation of Goland. If you are already invested in the Jetbrains ecosystem, then yes, by all means continue, but I've found Goland to abstract too much away from the actual environment setup so that it's twice as hard to use anything other than Goland in the future. VSCode works well for me and is less heavy on the machines I run it on and is less "language specific" which works really well for me because I am constantly switching languages. Also, VSCode is free :D
I use VS Code myself, but if they’re coming from the Java world they’re likely already familiar with JetBrains
I've worked with all three of these languages and also with Java developers converting to these languages and far and away Go is the easier one to convert to. With the improved cold-start times and the ease of conversion for a Java developer, it is a no-brainer for me.
The hardest part of the conversion though is going to be the lack of traditional Classes so you have to be mindful of that, but Go Structs and interfaces tend to make up for what is lost there.
Full Disclosure: I'm a 95% Go convert (from Python) at this point in time.