From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Ergus Newsgroups: gmane.emacs.help Subject: Re: Is Elisp really that slow? Date: Wed, 15 May 2019 01:54:12 +0200 Message-ID: <20190514235412.kncazq45szlum2gr@Ergus> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="186610"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: NeoMutt/20180716 To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed May 15 01:54:42 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hQhFp-000mPT-NI for geh-help-gnu-emacs@m.gmane.org; Wed, 15 May 2019 01:54:42 +0200 Original-Received: from localhost ([127.0.0.1]:56613 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hQhFo-0008Ld-HS for geh-help-gnu-emacs@m.gmane.org; Tue, 14 May 2019 19:54:40 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:43436) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hQhFZ-0008LU-B1 for help-gnu-emacs@gnu.org; Tue, 14 May 2019 19:54:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hQhFX-0004bV-N0 for help-gnu-emacs@gnu.org; Tue, 14 May 2019 19:54:25 -0400 Original-Received: from sonic309-25.consmr.mail.ir2.yahoo.com ([77.238.179.83]:41027) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hQhFX-0004Vp-7u for help-gnu-emacs@gnu.org; Tue, 14 May 2019 19:54:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1557878059; bh=iMGMiZbbe1im2kGRoAtlLNadqAiGjJP16PbtUbF7JTc=; h=Date:From:To:Subject:From:Subject; b=bXHBiU6A7QSpvQW5CQhg1pzKi4m8afBRf7vgDvoGZhYyMETBtgrjWYj3wmu34aWGn7upjPwNt8BpYDKsRmL3NX0tHcbYAQVdaoDpky7qIDQ34ttFOk0zGlA1VIHuXGm605o88D8T1MAsQTFG9Au4/aJKYo3E+mcLVdmvWZA63B4uhYA4TOXyL4iyT0sTAwgEzbBFwZGaJdF1FayRmVfVZ/gCplqFzc7UZia00rGLURGI9mRljJLMPAi8lkRACSjYyyxwdZORH9yycOQJRGbSiXsIDD+dK21gM6VwXFniBuKYJNeiqpoXpS4AjZSmAnaiuZg3V+EcscQyTOWxUhj8BA== X-YMail-OSG: .fZMixIVM1kGTLJJPoV7WgSCXhZgZtv8cqbFNjLfEexnehSk.TCiOvftVjVcOYD Oz.PyK8Nf.fFyJ91VOxxF4sFvfIEhO.Dl0fswvBq.zUGwdS4FkLIjVBYzzztYr8zJJpojzTVJSds aEvBE0Kv4GIgEufk9PVx2dpb4XGmQA22664WZ3XwDMdd9fv7u3uZGg5HlUun6VrMOLHol9lxQdBZ Vgusdn4tU_3L2h89f3nhM7as_gUOVX2PEmex7NokjIsn3GltHqy7KyLThDs4GR92ZxobOSDxAdTq eJkqQJC6LPikT5KRljB.33Ll0kRFJJGSzRiAXxvSDZ0cXbAIsbaGZpRxwdX8AnnCTpmDVKC23JUP 01byhtbK9bOSKsd6VPWv.Ui59BBC1cpB6.Rvobx1TC3bke0TLXGCxJvJnnLEUht3i.lXVV8tYqdJ xj2kiED_RSoGu42kOYkOqOsGZy8VLywnxP6kLh9m2hSm8ofrC7h47jmI5Hf.BarRoXSpsnoO6fmY aDfq9aEX_M8FQaC4EECJUMwqtYFC0qn88B7nGCIHpmCKAfSBzCqiw8rLpFlz_lcUnHhGAYrebxou aCELpQNdlB3A7YJl6HdldC4x6on1r0xMcem9M720KtliAGKSkzmXvl41lLmVZY6.YVC2PJ6XfWfY X46m0hkIU2r.Zr5BHuFEQHjsDQcUhmOPoH70XVnlYlkJmxUNPPNkLYFb1Q7xXZRGNDcYvMfyRRul ggfbb7ql3_unGbBgihOvoHPlKj.R6vMyHZ1E0X2JW9YjrMhEfMzzKTU7.t2xnq6740XdCpuLXGSJ 785L5gQAZ.1wxZWYECBR0xdTCKF1GC.dL7FFgFT0fe Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.ir2.yahoo.com with HTTP; Tue, 14 May 2019 23:54:19 +0000 Original-Received: from 2.152.205.184.dyn.user.ono.com (EHLO Ergus) ([2.152.205.184]) by smtp422.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID d9c0b21f87fca01fcceaefd4bec038d1 for ; Tue, 14 May 2019 23:54:17 +0000 (UTC) Content-Disposition: inline X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 77.238.179.83 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:120373 Archived-At: Hi, Sorry I lost the most recent messages because the mail engine disables my account very often. > >OK, point taken. Users, newcomers, aren't >impressed by Emacs. The don't dig the console >and they use the mouse. And they want >everything integrated, all tho, which is >amusing, integration is limited to >a single language. > Not only that, see below. > >(Maybe MS IDEs can do all of C#, VB(A), and >MS Access now that I think about it...?) > Yes they can, VS code supports many of them, butt especially the most popular. > >OK, now it gets totally confused %) The >different language major modes are the absolute >_backbone_ of Emacs as a programmer editor, >indispensible! Obviously we want them for every >conceivable language to be as good as possible! >Setting up font-lock and indentation for >a programming language major mode (which even >I have done BTW) isn't what I thought we >were talking about rather much more advanced >stuff, the refactoring stuff (how ever that >works), integrating the debugger and build >process, and so on, and as for >language-specifics, qualitatively different >stuff, not just configuring and tweaking with >the same old interface! > > This is something even advanced compared to a real integration we need like unify commands bindings, interfaces and functionalities names. I go every time to the same topic here, but all the time I only receive complains and strong answers with strong feelings from the older users. We NEED to update the interface (unify the bindings for all the languages, unify packages with similar functionalities, delete unused functionalities.) It is not a should, it is a must. To mention just one example: It does not make sense that C-c C-c comments the current lines in C-mode, but sends the current sexep to terminal in other modes, or send the messages in others. So emacs somehow behaves as a different tool/editor for 3 different modes, so the "unified bindings/behavior" is not an advantage anymore. Or that we provide several options (or packages) to add parents with 300 customizable variables but a very bad default behavior. The existence of spacemacs ergoemacs and other similar customization is a user's scream for better defaults (I am not telling to ennable all what spacemacs does, but we have functionalities that the users will never discover if they don't go in the ddeep parts of the manual). Usually the old users (who deserve the legacy behaviors), are also the most skilled ones, so it is easier for them to add some lines to their config, than for new users that we don't want to scare the first day with Lisp. > >> This argument doesn't fly with users, because >> newcomers usually need just one language, but >> they need a good support for it. They will go >> away if we don't have it, and telling them we >> support a dozen others will not make them >> change their minds. >> Sometimes new users also mix languages, but the worst supported ones are the newer languages (Lua, Julia, Ruby, Python, C++ 11+, Rust) Which are also what they need more often. >> To keep Emacs alive and kicking for the >> observable future, we need to be sure we will >> have enough developers and contributors. >> And since developers and contributors start >> as users, we want to attract new users. If we >> fail to attract them, we will quite literally >> lose our future. > >OK, good point. But also there is the fact that we are spending a lot of effort/work/manpower in specific use cases and fancy functionalities (web browsing, pdf reader, image shower) instead of looking and prioritizing the general and basic editor functionalities (faster movements commands, default bindings for comment/uncomment, select whole line, infrastructure performance). So going to the specifics instead of the generals. AFAIR emacs started (and became popular) cloning the popular functionalities in other editors and making them accessible with simple macros. We just need to open sublime or athom or VS code and look all the functionalities they provide for EDITING TEXT 2 clicks (or key binds) far. That's the real reason of their success. Basic functionality out of the box. What happens now is that if a user wants a simple editor with indentation support and syntax highlight for multiple languages, they go for vim (it is there already, is small and has many commands for editing text quickly, and the learning curve is similar than for emacs and much faster/responsive). Else, if they want something advanced, then they go for an ide or a simpler (more familiar) editor that they can start using without reading or configuring anything, geany, athom, sublime, visual studio code. But if the project is big with autotools or cmake they just go for a bigger ide like kdevelor, qtcreator, eclipse, NetBeans with a better autocompletion, debugger, compiler, packer. Lets say for example: sublime is extensible with a simpler language (than (lisp)) that many people use these days, it is pretty by default, and supports many languages. It works good enough, the code is on github, the issues, pull requests and collaboration in general is without an arcane mailing list, and a familiar fork-joing approach. So from the point of view of a 20 yo developers "why to us emacs?" (It is a rhetoric context question, please don't reply to it in your answers) So the good thing is that emacs can provide all this, but is doesn't to have all that working it needs years (literally) of configurations/packages. Is that what a user will chose having easier alternatives? > > >Well, obviously you worked on much bigger >projects than I, but I did a university project >(check out the URL in my signature). The report >- compiled LaTeX and Biblatex, which I wrote in >Emacs - is 153 pages. I used C++, Lisp, zsh, >gnuplot, groff, and pic(1), and wrote all of >that in Emacs. Even the Makefile and several >textfiles :) > >So how large should a project be before Emacs >becomes insufficient? A Quake? If so, then no, >regretfully I wasn't part of the team... The problem is that (in my opinion) we lost the center of what emacs should be and where are the practical-sustainable-maintainable limits a long time ago (the difference between "we can" vs "we should"). The program grow an grow and grow and the unused/old/substituted/unsuccess functionalities weren't deleted. (We added the GUI over the TUI mixing everything and adding support for every single detail we could imagine, multi os support forced to implement everything generic.) And as a plus the Elisp language and interpreter, two more things to maintain and update. To maintain-support all that with (every time) less people, we have abandoned (not improved) the editor-ide functionalities, and the world continued moving in the mean time. (Also some needed changes have been delayed and arrived veeeery late because "we shouldn't convert emacs in the other editors" or similar opinions. So, as usual in technology, other products filled the hole thinking in the final user and not in the developers. So, in spite of our product is better we don't find users for it because we don't know how to present it to the new market.