I cannot believe that I lived without emacs! Now I use emacs more than any application. The usage of emacs is going to increase as the days go. A non-emacs user may think that why an editor should get a credit like “emacs is an integral part of my life”. Emacs users may find nothing unusual about my statement. Well! I will brief my emacs story. I will start with my programming life.
My programming life
My programming life is summarized as below. Even though I learned multiple languages I have included the languages where I spend more than 30 days(or more than 200 hours) roughly.
- 2000-2001: Basic and FORTRAN ->Windows days
- 2002: C and C++ ->Windows days
- 2003: VC++ and OpenGL ->Windows days
- 2004: C and C++ ->Here onwards Linux is my favorite desktop OS
- 2005-2006: JAVA, VB and VFoxpro* (I don’t think anybody uses this one)
- 2007-2009: SAS and Shell Script
- 2010-2011: R
- 2012 : R, Python and elisp
Out of this I consider 2002, 2003 and 2012 are my best years of programming. I should consider my first few years were my golden days of programming. Those days I didn’t have to do anything (No responsibility) other than coding and some mathematics. At that time I never understood the importance of skill of programming. I treated programming as one subject of mathematics. I did programming mainly for fun. I thank my best friend Jais for my consistent interest in coding. We had lots of intellectual discussion and debates. We spent lots of hours to create graphical applications, screen savers, hacking, etc. Now, after a long break, I am back to programming lifestyle.
When I worked for a software company (2005-2006) I did more cut-copy-paste and trial & error methods. This way I never learnt anything deep. Money and movies where other distractions. Weekends were mainly window shopping and parties. The main reason why I didn’t do any real programming was I didn’t get a good friend who is crazy enough on geek stuff.
What motivated to learn Emacs
I always like simple applications. When I say simple it means quick execution, transparent functionality and customisable. I really like VI/vim editor and it was my favorite editor till 2011 (I don’t consider the Windows era). I tried emacs in 2004 and I didn’t like it. It was a nightmare at that time because to remember hell number of commands. Again, I tried emacs in 2010-2011. This time the motivation was that fact that ’emacs topped as the favorite editor for most of the stat tech guys’. But I didn’t learn anything other than C-x C-f and C-x C-c. Now what happened? I was searching a good R editor. I got to know about ESS and ESS is the first reason to learn emacs. So I started using emacs only for R coding. Then I started exploring shortcuts. I found it is very easy to customize. I have copied few short cuts and started customizing my own. Fortunately stackoverflow is very helpful on this. Some of the customisations are
- auto complete
- execution short cuts
- folding mode
First two features are very common ins standard editor but, not the third one. I have seen folding mode in Rstudio. After experimenting on customisation I started learning emacs lisp. This made me think one editor for all programming.
The main reason to learn emacs is Org-mode. I guess this should be one of the key addons to emacs. Like ggplot2 in R. The advantage of org-mode is integrating emacs with:
- task management
- connect with other applications (HTML, latex beamer, google calendar)
- table creation
- Good for draft/notes preparation, etc.
I am mainly a statistician and coding is not a primary work. But still for all my data modelling and technical report I depend on emacs. Now I use emacs for latex, python, R, daily planning and blogs (including this one).
One of the main reasons I switched to linux is constant learning. Emacs will ensure the constant learning at best.
Emacs is good enough for preparing daily planning, latex, R, Python, and other programming. With just a console I can use emacs and do most of my work. I am exploring on other applications emacs like reading mail, news feeds, twitting, and other automation. Already the.All files are available on above, but, looking for perfect one. I started exploring on elisp. I will post about my elisp experiment in future.