Choosing Go at American Express
americanexpress.io
americanexpress.io
I am curious: why was Go the only language not currently in use at AMEX to be considered? Why not Rust? Why not dotNet Core?
As far as dotNet Core, it is used at AXP but generally not in our high performance environments. Not saying it couldn't as I'd have to do a lot more research to say one way or another on that. But I'd say that's the primary reason it wasn't added to the list.
Appreciate the read and questions though!
I tried to insert some of the benefits we are seeing into the article in different pieces but now that we are several years later have it running in production. We are happy with the decision. In my opinion, there are even some newer things we didn't write in Go that I kind of wish we did.
The reasons we choose Go are holding true, and I can't say enough about how the performance and low GC times out of the box is something that is very beneficial. At least for my use cases.
I wonder what the top performer was... I bet it was C.
If you're doing just binary to string conversion there's no need for a features-language like Java or Node. C probably would've been a better option.
If you're building anything new it's very hard to make a valid case for coding in C. You're almost always better off working in Rust, Java, Swift or Go
>As such, we launched an effort to evaluate different languages.
I feel the purpose of a payment network is performance, concurrency, resiliency, and availability, and somewhere, wayyy towards the bottom of the list, at 2px font size, modernity and extensibility are there.
Go certainly cannot cover all C++ uses, nor Javascript/Node.