Hacker News new | past | comments | ask | show | jobs | submit login
Eoops: An object-oriented programming system for Emacs-Lisp (1992) (acm.org)
66 points by lr0 10 months ago | hide | past | favorite | 34 comments



I guess the implementation of EIEIO came later than this

https://www.gnu.org/software/emacs/manual/html_node/eieio/


Right. Title should show 1992.


Note: support for old EIEIO functions is not autoloaded any more in Emacs 29.1 https://www.masteringemacs.org/article/whats-new-in-emacs-29...


Eoop lad, lets get t'keyboard and do t'programming

(yes, thats a bad yorkshire accent)


As a Yorkshire man, I can confirm that we do speak like that.

And I also approve of this system.

I may use it while driving around in my VW e up. Well obviously my whippet would be using it, it isn't safe to program and drive.


As a Lancashire lad, I can confirm that, sadly, they do indeed.

(for those unfamiliar with this side of the pond, Lancashire and Yorkshire are mortal enemies right up until a Southerner tries it on at which point Northern Solidarity kicks in and we take them out first -then- go back to bickering ;)


Tell me about it, my girlfriend's Spanish and lives in Lancashire.

I'm the foreigner when I go over there. (Don't worry I have my passport, and jabs are up to date).


Lancashire!? let me tell thee lad.

https://www.youtube.com/watch?v=tqAbMbRQ3jE

This man ers frum bolton, and this is hus pro-ject.


Oh gods bowt'n.

Last time I was there I overheard two women walking down the street having an argument because one of them thought that 11am was too early for crack.

Then I went into a computer game shop and a small child in a pram stabbed me in the leg.

Miserable bastard place, I'd rather have to go back to skem*.

* skelmersdale, for the multisyllabic ... which most of the residents aren't


skemmy by name, skemmy by nature. A new town too far, poor fucking place.


I used to work with someone from Bolton.

She maintained she didn't have an accent.

She was only slightly less Bolton than Fred.


KEYBOARD? Tha were lucky


LUCK?! Tha were lucky!


The fact that people were doing this kind of malarkey in Emacs Lisp even before I started using Emacs over 25y ago just goes to show what a powerful, flexible, and general-purpose language Emacs Lisp is -- and it's not even my favorite Lisp by a long shot!


Emacs Lisp is nobody’s favorite lisp, yet it is the most widely used lisp by a wide margin.

Emacs proves that having a free and open source cross platform GUI editor where you can introspect and modify the editor’s state, and where a visual step debugger and lots of documentation are available, far outweigh the niceties that other lisps provide.


Emacs is oftened remarked to be a whole operating system to itself, fulfilling Dan Ingalls' definition[0]: "An operating system is a collection of things that don't fit into a language. There shouldn't be one."

0. https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk....


One metric: lines of code.

The GNU Emacs I have for my Mac comes with a Lisp directory of 1.5 million non-empty lines of el code.

I would think that there are several other Lisp applications which easily have ten times as much Lisp code.


> outweigh the niceties that other lisps provide.

But don’t people only use Emacs Lisp to program Emacs?


Well, being an Operating System, there have been many things programmed "in Emacs":

* email, slack and reddit clients * web wowser * tetris * Amazon's customer service handling https://tess.oconnor.cx/2006/03/quality-without-a-name (not sure what that says about Emacs Lisp. Or Amazon.) * PIM / OCD management software * video editing https://www.nongnu.org/gneve/ * mind control https://github.com/jonnay/mindwave-emacs * Thermonuclear word processor * vim and vi emulators, if you ever need to use it for coding * Internet of Toys https://news.ycombinator.com/item?id=29207607 * Air traffic control system https://news.ycombinator.com/item?id=33524683


People use Emacs for anything and everything, so by extension they write elisp for all kinds of things too. Any why not tbh? It's a general purpose language that's arguably no worse than python or ruby (subjectively more fun for me instead). Yes in specific cases like data science or web backend/frontend you should prefer something else, but everyday text processing, scripting is elisp's forte, so given that it's like a cross platform VM that's always there it makes a lot of sense to use it as general purpose tech to marry logic with ergonomic frontend inside Emacs.


Why would you need to program anything else?


yes, and the real-world impact of what they make is greater than what is produced with any other lisp


I suspect there's an obscure system in Common Lisp or even one of its ancestors running something absolutely critical to the world as we know it.


Yes, the backend for Google Flights, Orbitz, Kayak etc. That seems rather critical.

While it's not clear to me how much of that backend is still in Common Lisp, when Google bought ITA Software it was primarily a Lisp shop and I understand that it largely stayed that way for at least a long time.


At the time of the ITA acquisition, Google had a strict four-language policy: C++, Java, JavaScript, or Python. Nothing else was allowed.

The ITA acquisition made them rethink that a little bit, as they noticed that all the smart people working on QPX, the kind of people Google wanted to keep more of around, really loved Lisp and had built something great in it. And then Go came on the scene and Dart and... well, so much for the four-language rule.

QPX defied bitwize's Corollary to Greenspun's Tenth Rule: "Any sufficiently complicated Common Lisp or Scheme program will eventually be rewritten in C++, Java, or Python." (These days I would add JavaScript, TypeScript, and Rust.) It was still being maintained in Lisp as of the late 2010s and probably still is today. If Google ordered a Big Rewrite of QPX in another more marketable programming language, they risk losing the good people who worked on it to begin with. So... maybe next decade.


I think they tried to rewrite it in C++ and failed, so it’s still mostly in CL last I heard. I think they have an internally-maintained fork of sbcl and a core maintainer of sbcl on payroll.


> it's not clear to me how much of that backend is still in Common Lisp

Yes, that's why "suspect" and "obscure": I thought that well-known system is already rewritten in Google's usual languages. Turns out it isn't publicly known (?), but plausible: Google isn't afraid to rewrite their software whenever they find legacy hard to maintain, I even heard of a project that got rewritten 5 times in ~10 years.


as /u/arthurno1 nicely noted, there's code online, see: https://old.reddit.com/r/emacs/comments/17xuf0z/eoops_an_obj...


I did something like that 20+ years ago, a subset of Flavors with some graphics classes, running inside of Emacs. My school deleted my account with all the code in it at the end of a semester. Gack.


Oh what a shame. Did you write other languages / dialects since ?


Not sure what you mean about other languages. At the time (as a snotty undergrad) I thought what I was doing was exciting and important, but I can't say for sure that it would have turned into anything interesting. The OO stuff worked ok but the amount of user functionality that I got working wasn't that great.


just curious if you did try to invent new dialects / paradigms since


I don't think I invented much with that code. I implemented a subset of Flavors based on the Flavors manual, as an add-on to Emacs Lisp. I guess it was cool in some ways, but it is long gone now. I've hacked on other compilers and interpreters but mostly about implementation, rather than inventing languages. IMHO we have plenty of languages and we don't need more ;).


1992




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

Search: