3 ms·
> Just like our newer SDKs, AWS used the Smithy toolchain and service models to build AWS SDK for Rust This is pretty impressive. I haven't looked at the SDK i
by zokier 6y ago
> Just like our newer SDKs, AWS used the Smithy toolchain and service models to build AWS SDK for Rust
This is pretty impressive. I haven't looked at the SDK in detail, but managing to produce ergonomic APIs (semi-)automatically based on some service models for language as complex as Rust seems like a major accomplishment. I have most experience with the Python library (boto3) which is bit weird at places, but the Pythons dynamic nature is pretty good at hiding lot of that weirdness. Interesting to see how that works out for Rust where so much is static and explicit instead.
This also means that the possibility for multiple runtimes might not be that far fetched idea, if they can just make a code generator that spits out different flavors of the SDK.
- bradleyjg 6y agoThe Java SDK is not especially ergonomic and the docs are exactly what you’d expect from auto generation.
- nkozyra 6y agoThis universal for all of their SDKs. They seem to get community examples, too, which often contain some of the worst code you'll find. But the consistency is worth it. If you know how to work with boto you can use the java, JS, go, etc sdks easily.
- OJFord 6y ago> managing to produce ergonomic APIs (semi-)automatically [...] I have most experience with the Python library (boto3) This almost sounds tongue-in-cheek: the slightest use of boto3 makes it seem obviously auto-generated. It's fine, it even has advantages (whole classes of bugs removed, or at least fixed once fixed everywhere), I just wouldn't call it ergonomic or idiomatic. 's3 = boto3.client("s3")'.
- RideAndWave 6y agoI think there is a trend for a set of tools which auto-generate stuff. It started back with web tools generating websites from WYSIWYG, now it is getting everywhere. We build services and models using https://www.protoforce.io https://www.protoforce.io, which also auto-generates client and server side. Generally, it is impossible to generate good code using templates only, so it has to be transpiled. I think from amazon's side it was coming sooner or later anyway, with the amount of APIs they have - it is inevitable. I just can't see how many teams you need to have to manage all of the client side code for many languages.