Skip to content

Emacs vs Sublime – Yet Another Rant

Editor wars seems never stopped since Emacs vs Vi started many moons ago. I really don’t care what application other people use, but I couldn’t be to notice how many people have blogged about Sublime. I have been noticing it in blogs and magazine texts since few months ago. According to happy writers, the world of text editors seems to be in some kind of sublime fewer. Tonight I was lazy to do anything usefull, so I finally gave up and downloaded Sublime after stumbling upon several blogs about Emacs vs Sublime.

For the starter installation went just fine. It took me less than few seconds to download ST from its website and install indeed. They do seem to use Innosetup installer for Sublime, something Emacs might have good use of indeed. However after opening ST and few files in it, I really don’t understand why so many people find this editor so “stunning beautiful” as some bloggers describe it. Here is my first screenshot:

This is however not look of Sublime default. Since I am using Solarized theme for Emacs I checked themes in Sublime preferences, and actually found pretty much same light version of Solarized, so I enabled it just to see better how it compare visually to Emacs. So at a glance – what is really that beautiful here? Of course beauty is in eye of the beholder, but come on! What I see is standard window controls all around a themed area – not very beautiful indeed. Furthermore scrollbar still defaults to its Sublimes original dark theme. Those standard controls and menus around themed editor area and tabs just feel very alien to my taste.

Anyway – who wish to look at bunch of buttons, scrollbars and other controls? I appreciate if I can close them to save my screen space for code I work with. So Sublime does allow me to close off most portions of its interface, just like Emacs does:

Looking side by side I still prefer Emacs since it does theme its status bar (modeline in Emacs parlance). In this screenshot I haven’t removed scrollbar since there is no menu option. I have learned through Google that its possible through configuration file, just as with line numbers, but I don’t really care about just to make a screenshot for this post.

One thing ST users really seem to like is its minimap. Actually I have tried an implementation of minimap for Emacs, and I really didn’t get the point of it. There is already one scrollbar, and for me minimap just adds another giant scrollbar beside a scrollbar! I use Emacs without scrollbars, so I don’t really get why would I have another, even bigger scrollbar instead. Minimap gets my thumb down.

Another thing a lot of people seems to like are tabs. While I agree that tabs might be useful for some applications, I am not so sure they are so useful in a programming editor. Anyway, here is a screen of Sublime with just tabs and window decorations and this time with dark theme (I had to see how Solarized dark looks like in Sublime):

Now with window controls off, I won’t say Sublime is exceptionally ugly, but those giant tabs still look alien to me, and I really don’t like the oval and slanted (Chrome-like) look on them. Slanted sides take even more space and overal sharp look of window controls just don’t make it very beautiful with only rounded controls in window. Scrollbar is rounded too, but so tiny it is almost invisible and indeed not complementing unproportionally big tabs. As a mention, Emacs also have a tabbar implementation. By default it looks like from dinosaur time :-), but it can be configured to look better. What is good with Emacs implementation, if you are into tabs, is that tabs can carry a lot of functionality, one can attach menus and scripts to them. I don’t know how much funcitonality can be attached to Sublimes tabs, I guess it is probably scriptable just as Emacs, but by default they feel just as space killers. If you really have to look at list of open files all the time, that is what tabs really are – a big visualized list of opened files, you can press shift and left mouse button in Emacs to get that list in a context menu near your cursor so you don’t have to move cursor to top of the window at all:

There are all your open files – just click one you wish to edit.

Even better, one can use Ido mode and press ctrl+x b and than just ctrl+s to switch to a buffer of choice:

It might sound complicated with shortcuts, but it is really fast and gets into second nature sooner than expected.  It really is quicker than grabbing mouse just to move cursor to top of the screen and click on a tab in order to edit another file. Of course I am quite sure Sublime has something similar in its pockets, so it is not like I am showing off some wild crazy functionality for the sake of it. I am just trying to reason about what I have red and what makes people think Sublime is so cool. If somebody prefer tabs, it is of course personal choice, but I really like to have my screen space for the code.

When it comes to other features, I really can not dig into them. I have never used Sublime to do any work, and I probably will not :), so I am not the right person. I am quite sure it has all the bells and whistles when it comes to text editing, file manipulation, customization and hopefully compiler and debugger integration, just like any other good editor. After all I am not into writing this to make Sublime look bad, indeed judging from big croud surrounding it, it is probably as good and competent editor as any other. But I am trying to reason why would it be preferable to Emacs. Not because Sublime would be worse, but why would Emacs be less preferable than Sublime? Emacs has all the features of Sublime, plust some extra (ok – many extra), they are just a bit more hidden under the surface. Emacs has been around for 30 years! Well it’s age on itself is not the reason for using it, but for all those years, it has been developed, refined, tested and used, it must reflect somehow on functionality it packs inside and quality of its tools.

I agree it is not always advantage to be a software package from time when Steve Jobs and Bill Gates where at college. For example Emacs terminology and idioms are hopelessly strange to our time and feels archaic. It is probably one of biggest obstacles new users find with Emacs. We are killing text instead of cutting it; we are finding files instead of creating new ones or opening them; we are pressing meta and super key and we have kill-ring! Indeed one to rule them all :). While this might be a nuisance at first, it really does not take long time to learn few new terms (or old ones if you prefer). Once few words of Emacs jargon are learned and filosofi behind key bindings is understood (2 minutes of a lifetime?), Emacs is not more difficult than any other piece of software.

To be honest, those few usual shortcuts, standard for most software these days, by the way also available in Emacs, see CUA-mode, are usually what people new to Emacs are complaining about. But don’t forgett, whatever editor we use, there will always be new stuff to learn, once we get behind basic usage. Until we are comfortable with an applications functionality, we are doomed to use its menus and toolbars. Emacs does provide all of that, just like any other modern editor, so I really don’t see why it should be avoided or not recommended to new users. After all, we have all been new to Emacs at some point in time (ok – maybe not RS).

Considering all the tools and functionality it comes with, and all extras available online for Emacs, I really don’t see why I would switch to another editor just because of some looks or because of scripting being done in Python rather than Elisp. Elisp might be a roundabout language sometimes, but it still is not more difficult to learn than Python or VB if you try.

Big difference is that Emacs is fully open source which means you can hack any part of Emacs you wish. There is enormous amount of functionality already written for Emacs, and it is not far from saying that Emacs probably has most of tools one wants from a text editor already implemented. It would be good for Emacs indeed if they packaged more handy  functionality directly with the editor, rather than users having to discover it and configure it on their own, but considering all the value it gives  for free, the cost of hunting for few addons and few bits of knowledge is rather acceptable.

It might be of course my own bias; I have been using Emacs since around 1998, but to be honest, I have hacked my very first Elisp just few days ago, beside editing emacs configuration file of course. I am one of those users who just want to do my stuff, and I really don’t care that much about the editor, more that I want it out of my way. Of course I do prefer free software (as in speach), and it certainly does not hurt that Emacs is free as in beer too – it makes it for one and another extra beer after programming indeed. When thinking in retro, Emacs feels like probably the most stubborn and strange editor you would ever use when you first discover it – it feels almost like being trapped in Jurassic park of computer software, but after you give it a few moments of attention, it will be out of your way for most of the time. It has enough of the good stuff under the hood so you can use it out of the box without hacking or adding extra packages, but if you choose to dig into its world you are going to find probably one of most configurable and extensible software packages in the existence.

Don’t fear unknown, fear only not getting to know it.

Post a Comment

Your email is never published nor shared. Required fields are marked *