4 ms·
I'm not disagreeing with you, but this is kind of a moot point since the main selling point of Guile was always performance. AFAIK it was never the plan to actu
by eklitzke 5y ago
I'm not disagreeing with you, but this is kind of a moot point since the main selling point of Guile was always performance. AFAIK it was never the plan to actually make Emacs use Scheme rather than Elisp---the semantics of the languages just aren't compatible, and it would require throwing away too much of the existing Elisp ecosystem.^[1] Rather, the idea was to modify the better-performing Guile interpreter so that it could evaluate Elisp with the end goal being better performance.
Since the performance wins for native compilation exceed what people had hoped for with Guile Emacs, whether or not Guile Emacs was feasible isn't really that important.
[1] Furthermore: the biggest wart in Elisp compared to modern Lisps like Scheme is that it uses dynamic binding by default. But pretty much everything in Emacs (including third-party packages) declares lexical binding now (which is required for native compilation anyway), and the use of cl-lib nowadays is fairly ubiquitous, so a lot of the arguments about Elisp not being as "nice" as other modern Lisps aren't as compelling as they used to be 15 years ago.
- pmoriarty 5y ago"the main selling point of Guile was always performance" I don't agree with this. For Emacs users like myself, Guile is just a way more elegant and powerful language than eLisp (and also preferable to Common Lisp, which is a lot more antiquated and clunky compared to Scheme). I would have written all my Emacs code in Guile (or any other modern Scheme) if I could. If Guile Emacs could equal the performance of regular Emacs (or even a little slower) while allowing all existing eLisp packages to run, then I'd switch in a heartbeat. It needn't have offered better performance than regular Emacs to win me over.
- gpderetta 5y agoBut the parent is arguing that guile-emacs was never on the table. Instead the plan was elisp-on-guile-vm. I'm sure a guile-emacs would have been a better platform in Isolation but without the thousands of elisp packages it would never have gained traction.
- pmoriarty 5y agoIn fact it was Guile Emacs exactly. What that entailed was both the ability of the Guile VM to run eLisp so that all existing eLisp packages would run on the Guile VM without modification and that Emacs users could write in Guile (or any other language that the Guile VM supported) instead of eLisp if they chose. The big selling point was that no eLisp packages would have to be rewritten in Guile, but that wouldn't stop new packages and other code to be written in Guile if users chose. Both of these were essential for users like myself who actually prefer to write their own code in Scheme, but realize that rewriting all existing packages in it is an unrealistic goal.
- gpderetta 5y agoThat's interesting and I guess it would have worked. Unfortunately the reality is that nobody assign people to tasks in purely community driven open source projects like emacs. People do the task they are interested in. At this point I guess it is more likely for elisp to slowly mutate into CL than emacs getting scheme support. I know very little of the lisp ecosystem (I barely can write some elisp) so I don't know what are the pros and cons of scheme vs CL.