From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8707 invoked by alias); 9 Dec 2014 10:32:12 -0000 Mailing-List: contact cygwin-talk-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-talk-owner@cygwin.com Reply-To: The Vulgar and Unprofessional Cygwin-Talk List Mail-Followup-To: cygwin-talk@cygwin.com Received: (qmail 8695 invoked by uid 89); 9 Dec 2014 10:32:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-5.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: calimero.vinschen.de Received: from aquarius.hirmke.de (HELO calimero.vinschen.de) (217.91.18.234) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 09 Dec 2014 10:32:10 +0000 Received: by calimero.vinschen.de (Postfix, from userid 500) id 7388E8E12E1; Tue, 9 Dec 2014 11:32:08 +0100 (CET) Date: Tue, 09 Dec 2014 10:32:00 -0000 From: Corinna Vinschen To: cygwin-talk@cygwin.com Subject: Re: I have a dream: A modern scripting language everywhere Message-ID: <20141209103208.GA31138@calimero.vinschen.de> Reply-To: cygwin-talk@cygwin.com Mail-Followup-To: cygwin-talk@cygwin.com References: <26DFE265-C444-48DC-B1A6-1E4596EB9366@etr-usa.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="u3/rZRmxL6MmkK24" Content-Disposition: inline In-Reply-To: <26DFE265-C444-48DC-B1A6-1E4596EB9366@etr-usa.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SW-Source: 2014-q4/txt/msg00002.txt.bz2 --u3/rZRmxL6MmkK24 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 3460 On Dec 8 15:59, Warren Young wrote: > It=E2=80=99s sad that we still can=E2=80=99t count on stronger scripting = languages > than POSIX shell and Awk in 2014. We have many better languages, but > none are part of POSIX, so we can=E2=80=99t count on having them everywhe= re. >=20 > Perl and Python are probably too big > [...] > I love the Javascript dialect (!) of Scheme. Say what you want > against JS; it could be better, but those who say it=E2=80=99s the worst > language on the planet are either ignorant or being hyperbolic. >=20 > But, fan though I am, I=E2=80=99ll quickly acknowledge that Javascript is= n=E2=80=99t > going to solve this problem any time soon, either. The universality > of the web has pushed a JS interpreter onto pretty much every > computing device big enough to have a keyboard, but the only hope for > turning it into an effective Unix scripting language is coming via > node.js, and they=E2=80=99re years away from adding enough library suppor= t to > JS to make it fit for such a battle. >=20 > I think only Ruby is powerful enough, small enough, and > non-controversial enough to solve this. It=E2=80=99s Perlish and Pythoni= c and > Scheme-like enough to have wide appeal and applicability. I=E2=80=99m no= t a > Ruby fan. I came up via Perl, and Ruby never struck me as different > enough to be worth switching. But, if I could count on Ruby > everywhere, that would change things. >=20 > Swift would be a nice solution, but it=E2=80=99ll never really escape the > confines of the Apple world. The same goes for any of the .NET > languages, even with all this new openness. >=20 > Anyone else see a path out of this situation? The neat thing with shell scripting is that it's relatively easy and by using tools like awk, sed, etc easy to extend in functionality(*). Everybody can cobble together simple scripts, and over time everybody can cobble together more complex scripts. The complexitiy and inhibition level to learn a complex scripting language is higher, I think. But the worst problem with non-shell scripting languages is that you introduce yet another level of "library" functions. That's the biggest difference between shell scripting and scripting in "high-level" scripting languages: (*) Shell scripts are basically the shell (pardon the pun) about the soft bits, collected from other standarized tools. With the help of dozen small helpers, io-redirection and variable substitution you can create the most complex scripts. However, the shell itself never requires "extensions". No "plugins". High-level scripting languages have to provide all this stuff by themselves. They either have a mighty library, or they have to allow to create new libraries, or they have a plugin mechanism. But there will always be yet another functionality missing, so the thing grows and grows and nobody is able to keep track what you can do and what you can't, and how, and in how many variations you can do the same. And then, years after creating all this stuff, a couple of core developers are really unhappy with what they created because it's missing some important feature, or it's too slow, or whatever, and they start to create "version 2" of their scripting language, deliberately or accidentally breaking backward compatibility with the already given ecosystem. It's a mess. This will (hopefully) never happen with shell scripting. And this is why shell scripting prevails. IMHO. Corinna --u3/rZRmxL6MmkK24 Content-Type: application/pgp-signature Content-length: 819 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJUhs+oAAoJEPU2Bp2uRE+g9g8P/2YCr8hvHaNqLEivjBKispjQ sLp/7n92ZKAFVsFJdmfcwoPxdhadTwY95UYkBvHSyUoawBCw8XO6GiIZQVwR8z+f hN2litGRM9nTSqZ3wkkdnKGSUHXo2us3meWVcT+sEnh0/IR2kDyVmNmzJ2kkAey1 3botI/VnqX7vGABd2s+sMe5HmCwPAhJVD2+S4qdz+zxX8rUZsho1qFaT8X3w3U+I faC6KuSIYBWKOq6+3lvtsZnOk4D2CJCEAxjtpoJhA1fj/3CP0DZfOC8aE7bnKfv4 vCHOYxBCCDx72Y4gU75sMVuxDfvx0tOqnTqZZAVO7CUj4mt0rM8UpKeiXP3ZuM+N tmoh3lD5hG6GY/pta5kKuL+2drkwPo3606EsaPJbqfnnoOK67u1lnOcLGvjHjLKo 6EfZrvSSCQq9uG3yskcTCcmp0idrVNQ89Dq2yOR7Kgdh6OnSIaZ3xCypk+j9CWGR bHNJasHG1Tf4w7Bm3dsSJnzrhCYdFgpOK0nEiKkDOiwyd7THxIS/1gONehZp4Ovq /q70FAp//97aurLMI/F6nwzSIeuXQlmCYjN1nO8zPNx+QgZKzx6/hf2kujHL6Pss HwmBwCjEOy//Z0K2nd9iNY6MYkq5eZHDHNzRS+cwXAW64shmzv8MRr4zgbC5zZUH +nh5LKhSgd/sA9Yo7kkx =+8r0 -----END PGP SIGNATURE----- --u3/rZRmxL6MmkK24--