From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: tuhs-bounces@minnie.tuhs.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 0de6f25c for ; Wed, 31 Oct 2018 16:51:16 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 74752A231D; Thu, 1 Nov 2018 02:51:15 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 28F5CA215A; Thu, 1 Nov 2018 02:51:00 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id 37E5FA2162; Thu, 1 Nov 2018 01:47:28 +1000 (AEST) Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) by minnie.tuhs.org (Postfix) with ESMTPS id 90389A215A; Thu, 1 Nov 2018 01:47:22 +1000 (AEST) Received: by mail-lj1-f169.google.com with SMTP id z80-v6so9221789ljb.8; Wed, 31 Oct 2018 08:47:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=C42fUln/O9VtTgB3YLt/uDZ1/P1MipV9W6TLIgkS/IM=; b=oZ7J+n/Qw1QCEP3yCnD5/Sli63dPmm+xYr+0kpVJ15R+6qyOIKT+zf1JZaLd5VKq7l C7+OFzgRRYHYvogm5G6UuT9+DWJ1l/njUqgFPK8FzmgaC+vH6a8MmHclsfHC4QY2sdHB 2DYsqnfvdueZ+XUUYtbb3tq0trR/GLB6nQXtS8S7ZpMSsY9jwRoXXarerO11b9ojZRmc eC31GEaYE+UYrjr0v18wzPlltE9vLRrbY3tSdJE0lHOjIvdIkRPQ1duK+bXvIKUaleBk +lzezb2OVdjEkV0GP4O7bnVJL0waDx+c3sSMsB28bhUEGpr6Xz6iQR7H9x9+e6iKDhaT WBXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=C42fUln/O9VtTgB3YLt/uDZ1/P1MipV9W6TLIgkS/IM=; b=Nrqm3sy+j224yBJiqWJ7aBl9C+DANuxGNPZ0OzwIrY88ZaxtnrsXhHJF8u4JkaESPx ueEcJU45tDSEvTPx7I76p/6p6dpNBcndjrSRIyrlN0AXuCfcrJMRHLIoRhgc7BU+MHbH LnUaImZh9pm5lGQ0BQGz+bhp55xAOmsjuXItY6e3B4/6shCQ45N93yaAAWzJic1nf6my fSD1GYBXeAxakojoeTbYLyRdz4ZBDVj6QeUbrhTnOOi+VeobpvZUnjaDAYzfqAl3QX1i h0vlKWM53sLzRtihfV3CNtLv2meHJTz9wZrIECscnZrSHUuLh8h4km7VVSz4GdWhIYBI QU7A== X-Gm-Message-State: AGRZ1gJBVaIbs7fnyF30QYuMXf/BgpCMDIXJ0NLBDnvIKLAhqMTMBhzx RsZsMNHrAuvu8eeq3tGiYaDCQ3SyUJr8K0nbOo1nKg== X-Google-Smtp-Source: AJdET5f0LsHrlvxLaEJQmv+DJH0GqSEE9J5egmVTYan7EZi81yv90XynKJTaeqQB9Vzbd/Sfl8xt9ktP6Lqb07bCE1w= X-Received: by 2002:a2e:2c0f:: with SMTP id s15-v6mr2355958ljs.162.1541000840523; Wed, 31 Oct 2018 08:47:20 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:3a11:0:0:0:0:0 with HTTP; Wed, 31 Oct 2018 08:47:20 -0700 (PDT) In-Reply-To: <20181031043810.GA10775@minnie.tuhs.org> References: <20181031043810.GA10775@minnie.tuhs.org> From: Paul Winalski Date: Wed, 31 Oct 2018 11:47:20 -0400 Message-ID: To: Warren Toomey Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [TUHS] Unix APIs: elegant or not? X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: tuhs@tuhs.org Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" On 10/31/18, Warren Toomey wrote: > > The POSIX file API is a great example, but not of a deep > interface. Rather, it=E2=80=99s a great example of how code with a very > complicated interface may look deceptively simple when reduced to C-sty= le > function signatures. For me one of the most important software design principles is that the simple and most common use cases should be the simplest for the user to code. It's OK if complicated things are complicated to code, but simple things should be kept simple. I've always thought that the UNIX file primitives very elegantly adhere to this principle. Reading a file in UNIX is a simple open()/read().../close() sequence. Contrast that with VMS's $QIO or IBM OS access methods, where the full complexity is not only exposed in the interface, it must be considered, set up, and controlled by the user for even the simplest operations. Multibuffered, asynchronous, interrupt-driven I/O is more complicated (if not downright clumsy) in UNIX than in VMS or OS/VS, but that's OK, IMO--it shifts the complexity burden to those doing complex things. -Paul W.