Hacker News new | past | comments | ask | show | jobs | submit login

It is weird to use CLOS with Emacs. First off, you don't get a real CLOS implementation, you only get superficially similar syntax. Many critical features are missing. Secondly, your users lose the ability to customize your package in ways you didn't design for. (In other disciplines of software engineering, you're writing software that must run unattended without error for years. In Emacs, you're writing software for a programmer sitting in front of your program. The engineering compromises to make, therefore, are significantly different.)

To do something like OO in Emacs, define variables that are buffer-local, and then use the buffer as the object.

Obviously I agree disagree, which is why I wrote it.

"Many critical features" - I disagree, it's good enough OOP, as capable as Javascript's for example.

Maybe you shouldn't consider it for a user mode or some such (though I don't see why, there are enough modes that do use it) but I made clear in my article that I was asking people to consider EmacsLisp as a real language in which you could write programs that are not just Emacs programs, scripts for example, which I specifically alluded to.

Web programming is also possible of course, with Elnode - http://elnode.org/

Just because you can hammer a square peg into a round hole doesn't mean you should. The primary use case for Emacs Lisp is for extending Emacs. At that task, it does a pretty good job. As a general-purpose programming language it's not horrible, but it's not great either. You'll be much more productive if you use one of the many excellent general-purpose programming languages for general-purpose programming. CL and Scheme, for example, are fine.

Emacs Lisp's flaws are forgivable when writing Emacs extensions because it integrates so well with Emacs. But without the Emacs integration, it's not that great.

Of course, I totally disagree with this, which is what the premise of the article was. EmacsLisp is now a general purpose programming language that I think competes well with Python or Ruby.

But of course, it's not suited to every application.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact