About Blog Cloud | Projects

Why I Hate IDEs and Love Pida

I didn’t write much in the last time, but i hope this changes one day. The good thing is: i was very busy improving Pida.

If you would have asked my half a year ago which IDE i would use, i would have smiled and said: None, I just need a Text Editor. And this is still true somehow. For me a IDE should be: A very good Text editor + Tools to make your work easier.

The Editors

And there the problem starts: Some IDE’s have good ideas, most of them a bloated but most doesn’t have a Editor component I like. Most of them use a scintilla based one. I don’t wanna sound rude and Text editors are a matter of taste, i hate it. It feels slow when using Page Up/Down keys, Syntax files are a hell of it’s own, gtk python bindings are unstable. It has good features, code folding is very nice. But in general, it doesn’t fit my taste.

Another popular engine is GtkSourceView. I like this engine, from a programmic point of view and as a user, but it misses features like infrastucture for code folding, line markers. It’s relative fast for non fixed lineheight engine.

Vim is very popular, but just doesn’t feel right for me. I tried it, at least 3 times but never got warm with it as my editor for programming. Writing shell scripts on a remote machine, sure. But not to develop real code. And with Emacs i never got warm eigher.

I used Kate for some month. I like the editor component a lot, it’s fast (except when scroll with folded text). But Kate is not a IDE, it’s more like a programmers editor.

And then there is medit and its infrastructure. It’s GtkSourceView based but adds the features required for beeing a really good text edit component. ( I just use it so much, often I don’t really know that GtkSourceView is missing such important stuff ;) ). The Python bindings are good and mostly complete. The developer is very active, helpful and in fact, one of the best hackers i have ever seen. Just great work.

Ohh, and another thing: I will not look at a white screen all day long. I want a dark scheme and if I have to change 30 syntax files just to get a dark scheme the syntax system is broken. Eclipse is a good example for this. Changing colors must be a fast thing, selecting another scheme and everything should be fine. Nobody cares to be able to change for every language the color definition of every possible token. This is just annoying. If i really want that control, i just copy the language file and change it by hand. One theme should work for all language files. A keyword is a keyword whatevery language it is used in.

I want it slick

For me a IDE must be fast and small and extendable.

This causes some problems. Eclipse for example is just to fat for me. Taking ages to load, needs tons of RAM, feels slow all the time.

A C/C++ based IDE is not extendable enough. I don’t wanna spend month developing a small plugin (don’t get me wrong, i love C but for me lowlevel languages should be used for doing bottleneck jobs). IDE’s are mostly high level logic so a high level language should be used.

I tried Eric, and most other Python IDEs i could find, mostly regular and was disappointed all the time. But some month ago i found Pida and got just blown away. It’s slick, it’s fast, it’s extendable, it’s written in Python and the best thing: It’s not married to an editor.

Maybe i saw Pida some years befor, but as I’m not a Vim user, I ignored it. But Pida currently has support for Vim, medit and emacs as an editor component and more can be added “easily” (Having an editor not bound to the IDE is more work of course, and makes things usually more complicated. But the gain is much more then the cost :))

I liked it at the beginning even many features where not implemented yet. Hacking on Pida is lot of fun and the great architecture makes it easy.

BTW, Pida development is very active, the repository just changed (will be mirrored soon). My main repository is here.

tooth

After a short but intense odyssey with a problem tooth, he is finally gone. Internal tooth resorption is a very annoying thing which can happen. The tooth didn’t show any symptoms, no pain, no changes of appearance until one day i had a small blister on the gum which looked at first like a simple infection. X-Rays showed that already a large hole existed deep inside the neck of the tooth and the internal infection pushed to create this blister. Trying to remove the root of the tooth didn’t stop the disappearing and two weeks ago, the sides of the tooth became so weak, that one side finally cracked.
Now he is gone forever and after one day pain is gone, too.

Sadly the surgeon didn’t allow me to watch, which I always do. He thought I would hinder him at his work, though I’m very skilled in navigation the mirror while someone operation in my mouth….

yet another test

page seems almost done so far. just checking pings again … :)

i hate moving

moving is one of the most annoying things in the universe. in theory only accomplishable by myself if i would unplug all of my computer first. but seems to be even more impossible….

vaultfs

I worked the last weeks on a promising approach to a media/archive filesystem called vaultfs.

With the power of django, python and fuse implementing is a lot of fun with good progress. It’s not yes useable, but some filesystem features like directories and symlinks already work. It’s approach is very different from what I have seen so far.
It’s a merging filesystem which will merge different source medias into one large mountpoint. This mountpoint will be generated out of contents in the sql database and content from real filesystems as well a cache.

For example: you have a DVD with movie x and linked this file into a directory movies. If you try to access this file (not the meta data which will be in sql, too), the filesystem will determin if there a any copies of this file and different sources, the one with less interaction for the user first. If it finds the file, it is copied to the cache directory and served. So in the DVD case the movie from the DVD is copied to cache and served. Thus, the DVD will spin down as fast as possible.

There are also features implemented like meta directories which do not exist on the real medium but only in the vaultfs mountpoint. I copied the raiser4 approach here with the “…” prefix. Every directory has a “…metas” subdirectory with informations about the directory.

The top level directory holds additions meta directories to indexed medias for example.

test

first test on new site :)