emacs/var/elfeed/db/data/ce/cea466f43dfc952f0c8a56c08375964eecf6fc27
2022-01-03 12:49:32 -06:00

66 lines
5.5 KiB
Plaintext

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="By Pedro Delfino and John Mercouris" />
<title>Why isn't Nyxt just an Emacs extension?</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">Why isn't Nyxt just an Emacs extension?</h1>
<p class="author">By Pedro Delfino and John Mercouris</p>
</header>
<h1 id="the-pointer">The pointer</h1>
<p>Emacs and Nyxt share multiple similarities. This is such an interesting topic that a whole article was written about it! <a href="https://nyxt.atlas.engineer/article/article-how-can-i-make-emacs-my-web-browser.org">How can I make Emacs my web browser?</a></p>
<p>Speaking of which, it ended with the following question:</p>
<blockquote>
<p>After all this notorious synergy, a question arises: If Nyxt has so many similarities to Emacs and if Emacs has a vibrant ecosystem of extensions and packages, why not build Nyxt as an Emacs package instead of a solo application?</p>
</blockquote>
<p>Today, we will attempt to answer just that! :)</p>
<blockquote>
<p><img src="../static/image/article/article-nyxt-is-not-an-emacs-package-thoughtfull-archimedes.jpg" /></p>
<p>Domenico Fetti, Thoughtfull Archimedes - 1620.</p>
</blockquote>
<h2 id="emacs-is-a-survivor-but-with-scars">Emacs is a survivor, but with scars</h2>
<p>Emacs history is beautiful. More relevant than its 36 years of age however, is the fact that Emacs is still being used and developed. To this day, newly minted engineers still pick it up as their editor of choice- not just geezers. It is an editor that has transcended the generations.</p>
<p>Emacs also has an important role in the history of software, according to the book <em>Mastering Emacs</em>, the fork of XEmacs marks the first famous fork in history. A dubious achievement, but one nonetheless.</p>
<p>Even with all these merits, there is a lot of technical debt that saddles Emacs. Thus, it was better to start from a fresh slate. Some of Emacs' critical limitations worth mentioning are the single-threaded nature, Elisp (the language itself), and the difficulty to make use of WebKitGTK within Emacs.</p>
<h2 id="a-dispensable-barrier">A dispensable barrier</h2>
<p>In Statistics, there is a theorem called <em>The Infinite Monkey Theorem</em>. It states that a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time will almost surely type any given text, such as the complete works of William Shakespeare. Linus Torvalds has a comic adaption for Emacs:</p>
<blockquote>
<p>An infinite number of monkeys typing into GNU Emacs would never make a good program</p>
</blockquote>
<p>Well… although we love Emacs, we must admit it is hard for newcomers. Even the basics of Emacs are hard to grasp. From my personal experience, Emacs is the hardest and most complex software I have ever used. I learn something new almost every day. For sure, every week. And I've been using it on a daily basis since May, 2021.</p>
<p>Thus, if Nyxt was an Emacs package, by definition, it would be a subset of Emacs. As a consequence, people would need to know and use Emacs to use Nyxt. Instead of having this unnecessary barrier, we chose to build a separate application.</p>
<h2 id="learning-from-history">Learning from history</h2>
<p>This article discusses the technical trade-off of having the Nyxt browser as an Emacs package instead of a solo application. This is so feasible that Emacs already has a package called EWW, or <em>Emacs Web Wowser</em>.</p>
<p>As most Emacs hackers will admit, despite the cool name, EWW is not great. The main drawbacks hindering the user experience are the lack of JavaScript and the absence of proper CSS rendering.</p>
<blockquote>
<p><img src="../static/image/article/article-nyxt-is-not-an-emacs-package-rembrant.jpg" /></p>
<p>The Artist in his studio, Rembrandt - 1628</p>
</blockquote>
<h2 id="the-big-dream">The big dream</h2>
<p>The main reason why Nyxt is not built as an Emacs package is the big dream behind Nyxt. As a fully computable environment, Nyxt can be whatever people want it to be, including a full alternative to Emacs. We have a dream… that one day hackers will have an experience better than Emacs :)</p>
<blockquote>
<p><img src="../static/image/article/article-nyxt-is-not-an-emacs-package-david.jpg" /></p>
<p>Léonidas aux Thermopyles, Jacques-Louis David, 1814</p>
</blockquote>
<p>One day, we will bask in the glory of the lispland, without worrying about a single global thread lock. One day, we will have beautiful full color varied width fonts! One day, we will have built-in icons, and sound, and all of the cool things! One day, we will stand tall and look VS code in the eye! :-D</p>
<blockquote>
<p>King Leonidas: The world will know that free men stood against a tyrant, that few stood against many, and before this battle was over, even a god-king can bleed.</p>
</blockquote>
<p>Nyxt can be more modern, use better looks, have more sane default keybindings, and be easier to approach for newcomers. Stay tuned and may the power of Nyxt be with you!</p>
</body>
</html>