Zine is a new editor

I wasn’t much sure when I said it previously on a tumblr post, but now I decided I’ll do it. I’ll develop a new text editor, called Zine, intended to fulfill my editorial needs.

It won’t be only a simple text editor, tough. I am an emacs user, and sometimes I do use vi also. My wish is to make a new program that work like these and other hacker editors out there. And I want something that can be extended like emacs to create small text-based applications.

Free software is sometimes victim of their own success. Because you can always make use of old code, and because you usually port it to a new open platform, what makes the porting easier, we tend to use much old technology. So we can only let something go because we make a decision, and not because we were forced by source code secrecy. since it’s up to us, we should be more critical.

Emacs was made in a time it was something really innovative and cool. It was even “self documenting”, can you believe that?? And also, it has so much functionality people dared to consider it a whole operational system by itself.

The “self-documenting” capability is a must in any program today. As for the joke about it being an operational system, it is not funny anymore. We live in the days where most users run most of their applications in a similar OS-ish program: the web browser.

Yes, emacs was some kind of web browser… An application where the user runs small “scripts” written in an specific language — LISP in the case of emacs, and HTML+javascript in the case of browsers, and although it has been created for some specific functionality, it was eventually extended for many others. This only makes sense, because these programs offer a platform where you can more easily develop something, and your application also gets more portable running there. Making an application for one of these supporting programs is easier because part of the work of taking care of the interface and data I/O is already done.

Writing graphical software from scratch can be very boring… Any kind of application, actually. And the more complex the I/O, the worst. For a small application, being able to run over some other platform, like a browser, can help a lot. The thing is: I don’t like browsers, and I also dislike most graphical user interfaces (GUI) out there. I dislike Microsoft Word as much as I dislike OpenOffice.

On the other hand, while I am a “text person”, coding a lot in my work (C++, python, latex), and while I like very much some command line interface (CLI) programs (emacs, mutt, irssi, ttytter, ncmpcpp, blogging stuff, bash), the truth is that it’s getting difficult to live with terminals these days. We should get rid of things like ANSI and hacks from the 1960s… And just go on updating things incrementally to the new world doesn’t work well. I always have some trouble going from my terminal programs to the browser, for instance, and I also don’t like what is happening to emacs.

I almost had a heart attack when they put that pretty menu with icons showing up right at the start, and I still dislike that while my .emacs file is set to remove that thing, it still shows up before going away when emacs is starting. Not cool. This is all wrong, starting from the splash-screen. Emacs shows off too much, he likes to show everybody he is a genius, tell people that his way is the best way, and that god doesn’t exist, etc. I want a more polite program, humble, tamed, small. My dissatisfaction even reaches the core of emacs: while I admire Lisp, the truth is I can’t code in that thing.

So my idea is to create this program that will look like all the things I enjoy in emacs, but I’ll start from scratch, and using modern technology. I decided to use the python language, and use PyGTK to do the interface. My hope is to create a kind of minimal system that can be further extended, creating applications with similar interface.

Most of these applications will have characteristics like having a command line that will be the main tool of interaction of the user with the program, and a teletype kind of log screen where system messages get printed. This has many benefits, such as easiness to make scripts, being able to see the log of commands, and my favorite: avoiding pop-ups and modal windows.

I simply hate modal pop-ups. Exploring a different kind of interface where we live without those pop-ups with small messages, most of them useless, is reason enough for me to try that out. I remember when I started to read about GUI programming, and the “hello world” programs in the books are usually pop-ups written “hello” with a button that you click and it vanishes. I never quite understood that, and today I am finally reaching to the conclusion that it was because this is in fact really dumb and wrong. More often than not the right place to write most messages is in a log screen with a text that can go there and be forgotten, and not in modal pop-ups.

So the basic functionality I hope for the future is text-editing with nice automatic formatting, indenting and highlighting. But before we arrive there I already have in mind one application I want to do with Zine. It is a twitter client! I am a proud member of the twitter generation. I use twitter, tumblr, I blog, I have a wiki with my stuff… It seems to me there are too few hacker types out there using these web x.0 tools. I hope to make my contribution being someone that use that, unlike many celebrities in the FLOSS world, and making a program that is not all bells and whistles as the usual “hyped” mainstream mundane programs. I want 2000-generation program, but with some of the magic that still makes emacs and vi so cool.

There is far too much iPhone and Ubuntu users out there that lose their times talking about the color of the bikeshed. Literally, they like to spend hours discussing the color of stuff… On the other hand, the people from the pre-2000 generation, the good old hackers who have concerns that are unreachable for the average 2000 kid, they kind of stopped in time on other areas. We can’t wait for this people who live in the past to figure out what the next generation cares about. It’s up to us to build the tools with the new proposals.

That’s what I plan: make a modern software, but full of classical thinking. Contemporary but sober. I would love to hear in the future that Zine is “a emacs clone that started as a twitter client”, that is our secret long-term main goal. 🙂

The name, by the way, is a recursive acronym, yes. Zine Is a New Editor. And let’s make it clear that it was never my intention to name it “Zine in not emacs”! Unfortunately there are too few characters and words out there, and by an unfortunate coincidence the acronym I’ve chosen fits these two expansions, the correct one, and this other uninteresting tautology.

Enough chattering for now, let’s code…

(PS just to make it clear: I don’t believe I will ever stop using emacs, and I do like the recent developments in emacs. I love to use truetype fonts (Lucida Typewriter is my favourite) and the preview of latex formulas on the code is great! The thing is I can’t develop for emacs myself, so I’ll make me a “dumb person” version of emacs to which I will be able to develop to. Zine is not emacs, afterall, so they shouldn’t compete… Much.)


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s