4 ms·
Emacs Lisp is probably the worst language for "programming in the large". (After Javascript.) Sorry, but it has to be said. Using a more sane language would cu
by otabdeveloper4 4y ago
Emacs Lisp is probably the worst language for "programming in the large". (After Javascript.)
Sorry, but it has to be said. Using a more sane language would cut down on the bugs and dependency problems in Emacs in a huge way.
P.S. Been using Emacs for over 25 years.
- ernst_klim 4y ago> Emacs Lisp is probably the worst language Strongly disagree. With lexical bindings it's on par with contemporary strongly typed dynamic languages like python. It does even have fancy pattern matching with pcase library built in, plus lots of fancy stuff for editing like thing-at-point.
- ramin_hal9001 4y ago> Emacs Lisp is probably the worst language for "programming in the large". (After Javascript.) But unlike JavaScript (and Node.js), I don't know of anyone who uses Emacs out of the belief that Emacs Lisp is a language with which they should be building large-scale applications. It is strictly a client-side language and it is used as such. In fact, Emacs Lisp is actually a pretty good client-side language. Not that it is perfect, but I find it more enjoyable to use than JavaScript.
- worthless-trash 4y agoI strongly disagree, it is just a lisp. It seems very suited for the job, is there any other competitor who has stood the test of time (I dont just mean this years fashion chrome wrapped editor) with as many extensions ?
- otabdeveloper4 4y agoIt's not "just a lisp". It's actually a really, really shitty and outdated lisp.
- worthless-trash 4y agoI am unsure that 'outdated' applies to a language.
- taeric 4y agoI'm curious what the criteria for this is? And also happy to note elisp is quite effective at extending emacs. Regardless of what it is lacking at large. :)
- lispm 4y agoExamples: It lacks support for namespaces/modules (where one can control visibilities). Personally I would also think that a standard OOP system would be useful.
- medstrom 4y agoBut this is odd. When has the lack of namespaces caused a problem to you? When has cl-defstruct or eieio been insufficient to give you what you wanted out of OOP paradigms? I feel like your examples, and multithreading, are just programmers going off surface appearances of modern features and judging before using.
- lispm 4y ago> When has the lack of namespaces caused a problem to you? I can't imagine the maintenance of a Lisp system where several ten thousand names are flat in one namespace. For example: there is no way to browse those just looking at names with prefix parts. Textual name prefixes are a poor substitute for a proper "first class" namespace system. What parts of the symbol name are actually a prefix? "CL-CADDAR" -> that means that I can't load any CL source code into Emacs, because every operator has been renamed. What? There is a subset of Common Lisp in GNU Emacs, but with all operators and variables renamed? 40 years ago Zmacs and the surrounding libraries on a Lisp Machine were already better structured. > cl-defstruct or eieio It's one thing to have features in a language as add-ons and actually having them integrated into the core. The whole optional CL feature & naming debacle shows that there are serious disconnects between developers and the leaders.
- natrys 4y ago> It's one thing to have features in a language as add-ons and actually having them integrated into the core. The whole optional CL feature & naming debacle shows that there are serious disconnects between developers and the leaders. Not really sure what you mean. These are not "add-ons" any more than standard libraries are add-ons to other languages. They are fully integrated into core of Emacs, and has been that way for decades already. The naming situation might imply otherwise, but "cl-" namespace is by no means a second class citizen and I think there are practical value in keeping that naming scheme. In any case they are pervasively used both internally and in the community.
- komali2 4y agoWhy are Javascript and Elisp the two worst languages for programming in the large, and what does programming in the large mean?
- medstrom 4y agoI assume it's the typical corporate situation: when you have to work together on a codebase that's too big for one person to get a mental overview of. And unlike with a codebase you develop in your free time, you have no real control of who you have to work with.
- deleted 4y ago[deleted]