all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Reily Siegel <mail@reilysiegel.com>
To: Maxime Devos <maximedevos@telenet.be>, 53765@debbugs.gnu.org
Subject: [bug#53765] [PATCH 13/17] gnu: Add clojure-com-cognitect-aws-api.
Date: Mon, 07 Feb 2022 14:31:35 -0500	[thread overview]
Message-ID: <87a6f2xylk.fsf@reilysiegel.com> (raw)
In-Reply-To: <18d931f2449797067ff0894fe63dd2571c50df47.camel@telenet.be>

Maxime Devos <maximedevos@telenet.be> writes:

> OK, though I don't see how it can be declarative -- it's a library
> for ‘invoking AWS APIs’, which seems rather imperative, at least
> procedural.
Let me compare this library and the official Java AWS SDK.

#+BEGIN_SRC java
// Create a GetItemRequest instance
GetItemRequest request = GetItemRequest.builder()
                       .key(keyToGet)
                       .tableName(tableName)
                       .build();

// Invoke the DynamoDbAsyncClient object's getItem
java.util.Collection<AttributeValue> returnedItem = client.getItem(request)
                                                  .join()
                                                  .item()
                                                  .values();
#+END_SRC

#+BEGIN_SRC clojure
(aws/invoke s3 {:op :GetObject :request {:Bucket bucket-name :Key "hello.txt"}})
#+END_SRC

The Java API programatically creates a Request object, when is then
modified by several methods to set the options, before being invoked.
The Clojure API, on the other hand, specifies the operation
declaratively using plain Clojure data structures (in this case,
keywords, strings, and maps), before calling invoke on that
specification. The declarative part is in how the API is interacted
with, not necessarily what happens in the library internals or over the
wire.

Examples from the respective documentations of each project.
-- 
Reily Siegel




  reply	other threads:[~2022-02-07 19:37 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-04  0:22 [bug#53765] [PATCH 00/17] Remove limitations on clojure-tools Reily Siegel
2022-02-04  0:24 ` [bug#53765] [PATCH 01/17] gnu: Add clojure-data-priority-map Reily Siegel
2022-02-09 11:10   ` Maxime Devos
2022-02-09 11:18   ` Maxime Devos
2022-02-04  0:24 ` [bug#53765] [PATCH 02/17] gnu: Add clojure-data-json Reily Siegel
2022-02-10 17:52   ` Maxime Devos
2022-02-10 18:00   ` Maxime Devos
2022-02-04  0:24 ` [bug#53765] [PATCH 03/17] gnu: Add java-eclipse-jetty-client Reily Siegel
2022-02-04  0:24 ` [bug#53765] [PATCH 04/17] gnu: Add clojure-core-cache Reily Siegel
2022-03-17 20:44   ` Maxime Devos
2022-03-17 20:45   ` Maxime Devos
2022-03-17 20:47   ` Maxime Devos
2022-03-17 20:50   ` Maxime Devos
2022-03-17 20:57   ` Maxime Devos
2022-03-17 20:59   ` Maxime Devos
2022-03-17 21:00   ` Maxime Devos
2022-03-17 21:06   ` Maxime Devos
2022-03-17 21:08   ` Maxime Devos
2022-02-04  0:24 ` [bug#53765] [PATCH 05/17] gnu: Add clojure-core-memoize Reily Siegel
2022-02-04  0:24 ` [bug#53765] [PATCH 06/17] gnu: clojure-data-xml: Exclude failing tests Reily Siegel
2022-02-04  0:24 ` [bug#53765] [PATCH 07/17] gnu: Add clojure-http-kit Reily Siegel
2022-02-06 10:30   ` Maxime Devos
2022-02-04  0:25 ` [bug#53765] [PATCH 08/17] gnu: Add clojure-tools-analyzer Reily Siegel
2022-02-04  0:25 ` [bug#53765] [PATCH 09/17] gnu: Add clojure-tools-analyzer-jvm Reily Siegel
2022-02-06 10:46   ` Maxime Devos
2022-02-07 18:04     ` Reily Siegel
2022-02-07 19:01       ` Maxime Devos
2022-02-07 19:18         ` Reily Siegel
2022-02-04  0:25 ` [bug#53765] [PATCH 10/17] gnu: Add clojure-tools-logging Reily Siegel
2022-02-07 20:55   ` Maxime Devos
2022-02-07 22:19     ` Reily Siegel
2022-02-08 10:15       ` Maxime Devos
2022-02-08 10:22   ` Maxime Devos
2022-02-04  0:25 ` [bug#53765] [PATCH 11/17] gnu: Add clojure-core-async Reily Siegel
2022-02-07 20:32   ` Maxime Devos
2022-02-07 20:34   ` Maxime Devos
2022-02-07 20:37   ` Maxime Devos
2022-02-07 23:46     ` Reily Siegel
2022-02-07 20:53   ` Maxime Devos
2022-02-04  0:25 ` [bug#53765] [PATCH 12/17] gnu: Add clojure-com-cognitect-http-client Reily Siegel
2022-02-06 10:50   ` Maxime Devos
2022-02-07 18:06     ` Reily Siegel
2022-02-07 19:30       ` Maxime Devos
2022-02-07 19:50         ` Reily Siegel
2022-02-15  8:59           ` Maxime Devos
2022-02-07 20:21   ` Maxime Devos
2022-02-07 20:23   ` Maxime Devos
2022-02-07 20:31     ` Reily Siegel
2022-02-07 20:29   ` Maxime Devos
2022-02-04  0:25 ` [bug#53765] [PATCH 14/17] gnu: Add clojure-com-cognitect-aws-endpoints Reily Siegel
2022-02-07 19:53   ` Maxime Devos
2022-02-07 20:01     ` Reily Siegel
2022-02-04  0:26 ` [bug#53765] [PATCH 13/17] gnu: Add clojure-com-cognitect-aws-api Reily Siegel
2022-02-06 10:37   ` Maxime Devos
2022-02-06 10:39   ` Maxime Devos
2022-02-07 18:09     ` Reily Siegel
2022-02-07 19:19       ` Maxime Devos
2022-02-07 19:31         ` Reily Siegel [this message]
2022-02-06 10:45   ` Maxime Devos
2022-02-04  0:26 ` [bug#53765] [PATCH 15/17] gnu: Add clojure-com-cognitect-aws-s3 Reily Siegel
2022-02-06 10:35   ` Maxime Devos
2022-02-07 19:44   ` Maxime Devos
2022-02-07 19:56     ` Reily Siegel
2022-03-26 10:08       ` Maxime Devos
2022-03-26 10:13         ` Maxime Devos
2022-03-28 10:31         ` Reily Siegel
2022-03-28 11:50           ` Maxime Devos
2022-03-28 11:52           ` Maxime Devos
2022-04-05 13:50   ` Maxime Devos
2022-02-04  0:26 ` [bug#53765] [PATCH 16/17] gnu: clojure-tools-deps-alpha: Fix issues with S3 Reily Siegel
2022-02-04  0:26 ` [bug#53765] [PATCH 17/17] gnu: clojure-tools: Fix logging warning messages Reily Siegel
2022-03-16 12:39 ` [bug#53765] [PATCH v2 00/18] Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 01/18] gnu: Add clojure-data-priority-map Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 02/18] gnu: Add clojure-data-json Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 03/18] gnu: Add java-eclipse-jetty-client Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 04/18] gnu: Add clojure-core-cache Reily Siegel
2022-03-16 12:43 ` [bug#53765] [PATCH v2 05/18] gnu: Add clojure-core-memoize Reily Siegel
2022-03-17 21:10   ` Maxime Devos
2022-03-18  9:01     ` Reily Siegel
2022-03-18 13:22       ` Maxime Devos
2022-03-19 19:07         ` Reily Siegel
2022-03-19 19:15           ` Maxime Devos
2022-03-21  8:35             ` Reily Siegel
2022-03-21  9:06               ` Maxime Devos
2022-03-21  9:07               ` Maxime Devos
2022-03-21  9:51               ` Maxime Devos
2022-03-21  9:55             ` Maxime Devos
2022-03-21 11:27               ` Reily Siegel
2022-03-21 13:38                 ` Maxime Devos
2022-03-19 19:23           ` Maxime Devos
2022-03-19 19:28           ` Maxime Devos
2022-03-19 19:34           ` Maxime Devos
2022-03-19 19:46           ` Maxime Devos
2022-03-19 19:56             ` Maxime Devos
2022-03-19 19:54           ` Maxime Devos
2022-03-17 21:11   ` Maxime Devos
2022-03-17 21:19   ` Maxime Devos
2022-03-17 21:26   ` Maxime Devos
2022-03-21 14:18   ` Maxime Devos
2022-03-16 12:43 ` [bug#53765] [PATCH v2 06/18] gnu: clojure-data-xml: Exclude failing tests Reily Siegel
2022-03-17 21:27   ` Maxime Devos
2022-03-17 21:30   ` Maxime Devos
2022-03-16 12:43 ` [bug#53765] [PATCH v2 07/18] gnu: Add clojure-http-kit Reily Siegel
2022-03-17 21:31   ` Maxime Devos
2022-03-17 21:32   ` Maxime Devos
2022-03-17 21:42   ` Maxime Devos
2022-03-17 21:44   ` Maxime Devos
2022-03-17 21:45   ` Maxime Devos
2022-03-16 12:44 ` [bug#53765] [PATCH v2 08/18] gnu: Add clojure-tools-analyzer Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 09/18] gnu: Add clojure-tools-analyzer-jvm Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 10/18] gnu: Add clojure-tools-reader Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 11/18] gnu: Add clojure-tools-logging Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 12/18] gnu: Add clojure-core-async Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 13/18] gnu: Add clojure-com-cognitect-http-client Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 14/18] gnu: Add clojure-com-cognitect-aws-api Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 15/18] gnu: Add clojure-com-cognitect-aws-endpoints Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 16/18] gnu: Add clojure-com-cognitect-aws-s3 Reily Siegel
2022-03-26 10:03   ` Maxime Devos
2022-03-28  9:41     ` Reily Siegel
2022-03-28 11:46       ` Maxime Devos
2022-03-28 11:57         ` Reily Siegel
2022-03-16 12:44 ` [bug#53765] [PATCH v2 17/18] gnu: clojure-tools-deps-alpha: Fix issues with S3 Reily Siegel
2022-03-26  9:51   ` Maxime Devos
2022-03-29  9:54     ` [bug#53765] [PATCH 00/17] Remove limitations on clojure-tools Ludovic Courtès
2022-03-29 10:39       ` Maxime Devos
2022-03-16 12:44 ` [bug#53765] [PATCH v2 18/18] gnu: clojure-tools: Fix logging warning messages Reily Siegel
2022-04-06 12:37 ` [bug#53765] [PATCH v3 00/17] Remove limitations on clojure-tools Reily Siegel
2022-01-15 22:30   ` [bug#53765] [PATCH v3 01/17] gnu: Add clojure-data-priority-map Reily Siegel
2022-01-15 22:32   ` [bug#53765] [PATCH v3 02/17] gnu: Add clojure-data-json Reily Siegel
2022-01-16  1:38   ` [bug#53765] [PATCH v3 03/17] gnu: Add java-eclipse-jetty-client Reily Siegel
2022-01-16  1:48   ` [bug#53765] [PATCH v3 04/17] gnu: Add clojure-core-cache Reily Siegel
2022-01-16  1:51   ` [bug#53765] [PATCH v3 05/17] gnu: Add clojure-core-memoize Reily Siegel
2022-01-16  2:06   ` [bug#53765] [PATCH v3 06/17] gnu: Add clojure-http-kit Reily Siegel
2022-01-16  2:40   ` [bug#53765] [PATCH v3 07/17] gnu: Add clojure-tools-analyzer Reily Siegel
2022-01-16  2:43   ` [bug#53765] [PATCH v3 08/17] gnu: Add clojure-tools-analyzer-jvm Reily Siegel
2022-01-21 23:43   ` [bug#53765] [PATCH v3 10/17] gnu: Add clojure-tools-logging Reily Siegel
2022-01-22  0:19   ` [bug#53765] [PATCH v3 11/17] gnu: Add clojure-core-async Reily Siegel
2022-01-22  0:32   ` [bug#53765] [PATCH v3 12/17] gnu: Add clojure-com-cognitect-http-client Reily Siegel
2022-01-22  0:35   ` [bug#53765] [PATCH v3 13/17] gnu: Add clojure-com-cognitect-aws-api Reily Siegel
2022-01-22  0:36   ` [bug#53765] [PATCH v3 14/17] gnu: Add clojure-com-cognitect-aws-endpoints Reily Siegel
2022-01-22  0:36   ` [bug#53765] [PATCH v3 15/17] gnu: Add clojure-com-cognitect-aws-s3 Reily Siegel
2022-01-25 18:37   ` [bug#53765] [PATCH v3 16/17] gnu: clojure-tools-deps-alpha: Fix issues with S3 Reily Siegel
2022-01-25 18:41   ` [bug#53765] [PATCH v3 17/17] gnu: clojure-tools: Fix logging warning messages Reily Siegel
2022-02-28 18:39   ` [bug#53765] [PATCH v3 09/17] gnu: Add clojure-tools-reader Reily Siegel
2022-04-15 13:54 ` [bug#53765] (no subject) Reily Siegel
2022-04-15 13:55 ` [bug#53765] V3 Patches Reily Siegel
2022-04-15 18:47   ` Maxime Devos
2022-04-15 19:03     ` Maxime Devos
2022-04-16 17:39       ` Reily Siegel
2022-04-16 19:16         ` Maxime Devos
2022-04-16 19:35           ` Reily Siegel
2022-04-16 19:45             ` Maxime Devos
2022-04-16 20:15               ` Reily Siegel
2022-04-16 20:47                 ` Maxime Devos
2022-04-16 21:14                   ` Reily Siegel
2022-04-16 19:45         ` Maxime Devos
2022-04-16 19:32   ` Maxime Devos
2022-04-16 20:11     ` Reily Siegel
2022-04-16 21:59 ` [bug#53765] [PATCH v5 1/2] gnu: clojure-tools-deps-alpha: Patch unpackageable deps warning Reily Siegel
2022-04-16 22:00   ` [bug#53765] [PATCH v5 2/2] gnu: clojure-tools: Fix logging warnings Reily Siegel
2022-04-16 23:00 ` [bug#53765] [PATCH v4 0/2] Simpler patch removing warnings Reily Siegel
2022-04-16 21:59   ` [bug#53765] [PATCH v4 1/2] gnu: clojure-tools-deps-alpha: Patch unpackageable Reily Siegel
2022-04-17  7:59     ` Maxime Devos
2022-04-17 11:33       ` Reily Siegel
2022-04-17 14:53         ` Maxime Devos
2022-04-16 22:00   ` [bug#53765] [PATCH v4 2/2] gnu: clojure-tools: Fix logging warnings Reily Siegel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a6f2xylk.fsf@reilysiegel.com \
    --to=mail@reilysiegel.com \
    --cc=53765@debbugs.gnu.org \
    --cc=maximedevos@telenet.be \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.