From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "T.V Raman" Newsgroups: gmane.emacs.devel Subject: Re: About implementing libre.js/el in Emacs Date: Sun, 30 Aug 2020 07:13:02 -0700 Message-ID: References: <791FBE67-B71F-4F80-810D-BE29B55FD10C@mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=gb18030 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36876"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Tim Cross , Paul Eggert , "emacs-devel@gnu.org" To: Qiantan Hong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Aug 30 16:13:37 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kCO5R-0009SU-Dv for ged-emacs-devel@m.gmane-mx.org; Sun, 30 Aug 2020 16:13:37 +0200 Original-Received: from localhost ([::1]:43190 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kCO5Q-0001bO-GU for ged-emacs-devel@m.gmane-mx.org; Sun, 30 Aug 2020 10:13:36 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kCO4z-0001Ba-J0 for emacs-devel@gnu.org; Sun, 30 Aug 2020 10:13:09 -0400 Original-Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]:39270) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kCO4w-0005Nt-Eq for emacs-devel@gnu.org; Sun, 30 Aug 2020 10:13:09 -0400 Original-Received: by mail-pl1-x631.google.com with SMTP id x18so580418pll.6 for ; Sun, 30 Aug 2020 07:13:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=1KySeuQxIPwsmLohNnm3MhadxpuK5nwcEwkqtcwxzco=; b=PF5D/ljQEq3YcnEQ/08Dg8HA68W1hV4V5VIpz8s82aO4l+A73pvoVRBO/WU55hKnk4 cf5pjv+lZXoJ3EFMZKRPow8gPv0wm5gx2f6xAwQn1awKS+HFnC+VQ26gIubxYXYwJyl/ JznIFSDifLsNtE4A/QxXlB2YG2vCNaw5OBmnz0QPamFI++NdhKRYHRtRzoJPZqNNCCo9 fKu5NuNZ3dSe7nz9GjRg5Pr8VPhFm78OmgT/frpIRgy5c3AvSal89j32nOq/L52Z4EqN s3tg8ZEoL+3hrVlPMNKaY0ouYHzu+IaNdSx4fnvgM+pPgCtIkN/flL8/udvP16eu78Rt LS4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=1KySeuQxIPwsmLohNnm3MhadxpuK5nwcEwkqtcwxzco=; b=ov3JNMpCmnraLPxo6yofFLvir6PdDz9MsDvRFhGkuTKKE9GUfpe3cjNrIKFJQOF3Ho SSIz2DPJTPG/ABCM0gnaKjsoXfcJRYju3SA/Yy73T29bhOnxGR5j4y9V4HL8HWyTQnds 3AH5Ci0HIsCWrJEYMN585Q16wJf/kutIrD4EVZT+u7+Oww9Ja63dzK8Lu2ZBETabdZMS O4eRCRM0LaGa7ZrT71RtMOt8ViqoNpYq+zrk/K8naTI1pE6hehoS0qep//hsuiptMM3Y CuCrSOm2R0zPk7F0Rh0Rf3X1UL5I8nNvE/LMFuLsVr3UJ6NuTtFJi8PPnPMPuD//uUGX 44dg== X-Gm-Message-State: AOAM5306Gj/GR9UpjhM1lnUr+8tKhhn9gt0vf+s90QnkwO4Hd4rYLTgp 6CXnR+fUgTr4S9R5bsvpbdZRzw== X-Google-Smtp-Source: ABdhPJxXnNhSwepiQSxNmw9cqs9KG8vBgKXc1xDXRu9cJgYZG82dzXpwn26e9PLq/TTdYuS7v2JbNQ== X-Received: by 2002:a17:902:7582:: with SMTP id j2mr5710202pll.322.1598796784676; Sun, 30 Aug 2020 07:13:04 -0700 (PDT) Original-Received: from raman-glaptop.localdomain (c-24-4-174-65.hsd1.ca.comcast.net. [24.4.174.65]) by smtp.gmail.com with ESMTPSA id z66sm4976085pfb.53.2020.08.30.07.13.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Aug 2020 07:13:03 -0700 (PDT) Original-Received: by raman-glaptop.localdomain (Postfix, from userid 13930) id 8177DC21E08; Sun, 30 Aug 2020 07:13:02 -0700 (PDT) In-Reply-To: (Qiantan Hong's message of "Sun, 30 Aug 2020 02:45:26 +0000") Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=raman@google.com; helo=mail-pl1-x631.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -180 X-Spam_score: -18.1 X-Spam_bar: ------------------ X-Spam_report: (-18.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.499, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:254411 Archived-At: Qiantan Hong writes: 1+ for the elisp side. Here are a few more things to think about: Looking forward or Looking Back? Most of the Web's "web apps" are written in JS, but I suspect much of that will also fall outside the bounds of what RMS calls "ethical JS". At the same time, having a "web in emacs extension language" might allow us to imagine, invent, and create a whole new class of collaborative interactions that the so-called mainstream Web might never think of or create -- and in that sense, a prototyping/extension language that aligns with elisp might serve us better. In thi scontext, I'd also like to point at the Nyxt browser which uses parenscript (Lisp that compiles down to JS) as an another example of using Lisp to script the Web. https://common-lisp.net/project/parenscript/ >> On Aug 29, 2020, at 10:26 PM, Tim Cross wrote: >>=20 >> Just curious - in what ways is JS worse then Elisp?=20 > There=A1=AFre lots of other arguments, e.g. homoiconicity, typing (js doe= s lots of > unreasonable type casts)=A1=AD but in this context, I think the most impo= rtant > point is that Emacs and Emacs Lisp give one of the most flexible and > self-descriptive programming system. If something is implemented in > Emacs lisp, we get M-x apropos, describe-function, describe-variable, > they can be overrode by just eval-defun, and can be advised. Customizing > or extending it is painless and trivial. However, those things become > much harder if the package is implemented in JS. > >> I agree Option 1 would give more bang for your buck - at least initially= .=20 >>=20 > I=A1=AFll take that. I imagine while implementing Web Extensions API for = js > it will be trivial to also bring those to Elisp too, so finally we not on= ly > have those JS browser plugins to run but can also develop plugins > in Elisp. > --=20 =817=A94 Id: kg:/m/0285kf1 =950=DC8