Friday, April 3, 2015 at 3:16 AM

Forking as a plug-in API

In the back of my mind while exploring all the JavaScript editors we could use as the primary text editor in MyWord I was thinking wouldn't it be cool if there was a way to do plug-in editors. That way the sysop of a MyWord site could decide on one editor, or even give users a choice. Maybe even for each post a different editor!

This is something developers always do. We abstract. We have to do it, internally we have to figure out how many levels of options a user can have for pretty much everything. Can you have more than one file open? Can the OS have more than one user? Can you do one task at a time or many?

Joel Spolsky wrote about this in a humorous way in the early days of blogging, he called people who over-abstract architecture astronauts. Benji Smith wrote a fantasy about abstraction, very funny and so true.

If JavaScript had an easy way to do plug-ins on the client side I probably would have done an architecture, but like the editor situation there are a number of different approaches, and none of them have gained consensus, none appear to be a quick half-day thing. I got spoiled in Frontier. Architectures are cheap when all the data and code are in object databases.

Anyway, I found an Indiana Jones way to do it, it's almost as good as an official plug-in method. Fork one file in the MyWord Editor repository and replace it with your editor code. Should be able to do anything with it. You're laughing. I've become a Unix dev. Haha. I am laughing too. Now you have to rebuild my app to extend it. A few years ago I would have sworn I would never do this.

I have a feeling we'll figure out a better way later. Or perhaps we side-step the issue by finding one JavaScript editor that's good enough to make our standard, without worrying so much about choice. It's always good to have choice, of course, but there are always other things to do, and if you had choice on everything, then you wouldn't have anything. Just frameworks. (Which is what seems to be happening elsewhere in JavaScriptLand nowadays.)

Last built: Mon, Aug 24, 2015 at 9:06 AM

By Dave Winer, Friday, April 3, 2015 at 3:16 AM. Ask not what the Internet can do for you...