From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thomas Lord Newsgroups: gmane.emacs.devel Subject: Re: Why Emacs should have a good web-browser Date: Tue, 21 Jul 2009 10:25:44 -0700 Message-ID: <1248197144.7551.51.camel@dell-desktop.example.com> References: <87ocrjl2r6.fsf@gmail.com> <87zlb2bwyj.fsf@catnip.gol.com> <87bpnefl73.fsf@gmail.com> <87iqhm3smc.fsf@catnip.gol.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1248197290 15032 80.91.229.12 (21 Jul 2009 17:28:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 21 Jul 2009 17:28:10 +0000 (UTC) Cc: ferkiwi+a@gmail.com, emacs-devel@gnu.org, Stefan Monnier , Paul R To: Miles Bader Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jul 21 19:28:04 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MTJ8E-0003kL-KN for ged-emacs-devel@m.gmane.org; Tue, 21 Jul 2009 19:28:02 +0200 Original-Received: from localhost ([127.0.0.1]:45760 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MTJ8D-0000sa-Um for ged-emacs-devel@m.gmane.org; Tue, 21 Jul 2009 13:28:01 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MTJ7z-0000lq-OE for emacs-devel@gnu.org; Tue, 21 Jul 2009 13:27:47 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MTJ7v-0000jp-5E for emacs-devel@gnu.org; Tue, 21 Jul 2009 13:27:47 -0400 Original-Received: from [199.232.76.173] (port=59317 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MTJ7u-0000jk-WF for emacs-devel@gnu.org; Tue, 21 Jul 2009 13:27:43 -0400 Original-Received: from smtp111.dfw.emailsrvr.com ([67.192.241.111]:37601) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MTJ7t-00087e-Hg; Tue, 21 Jul 2009 13:27:41 -0400 Original-Received: from relay11.relay.dfw.mlsrvr.com (localhost [127.0.0.1]) by relay11.relay.dfw.mlsrvr.com (SMTP Server) with ESMTP id 14745180141; Tue, 21 Jul 2009 13:27:40 -0400 (EDT) Original-Received: by relay11.relay.dfw.mlsrvr.com (Authenticated sender: lord-AT-emf.net) with ESMTPSA id 46F1018015F; Tue, 21 Jul 2009 13:25:45 -0400 (EDT) In-Reply-To: <87iqhm3smc.fsf@catnip.gol.com> X-Mailer: Evolution 2.22.3.1 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:112935 Archived-At: On Wed, 2009-07-22 at 01:31 +0900, Miles Bader wrote: > I don't know how well these engines deal with the underlying text > changing; given that a small text change might affect the _entire_ > "rendered" data structure, there seems a good chance the answer might be > "not very well." > > But all of this is mostly speculation on my part... A modern browser rendering engine presents (e.g. to Javascript programs) a "DOM" (data object model) interface to the contents of a page. The DOM is a tree structure that functions as a hierarchical display list and window system windows are automatically updated from that display list and from changes made to it. All of the mechanism of CSS is available to control the rendering of that display list. The natural way to use this for an Emacs display is *not* to try to store all of a buffer's text in the DOM but rather to use the DOM for only the visible content of an Emacs frame. For example, the scrollbars on a typical browser window would not be used here: Emacs would have to implement its own style of scrollbars as DOM elements. In terms of performance: modern browser rendering kits are fast enough -- although probably only "barely" so. They'll get better (through code improvement, not faster hardware). People have been building GUI toolkits that use the DOM as their display engine for several years now and each year the results become more and more impressive. (A question nagging me, lately: how good would the performance be of an implementation of Elisp in Javascript.... The result would be a second implementation of GNU Emacs, not a replacement for the GNU Emacs we have.). -t