The Anti-Desktop Thing

solving the problem at hand is more important than the programming-language itself

I am an avid wmii user and for me understanding and writing a conf file for wmii is always a PITA. — REASON: — wmii is written in C and hence uses those weired $ signs in its conf file. I did not use StumpWM much because GIMP does not work properly with pure “Tiling Window Managers” (WMs) but it is good in that I myself wrote the whole conf file for it. StumpWM is written in Common Lisp and I found its code much better to comprehend and extend because Common Lisp does not let you loose your grip over the problem you are working on. Common Lisp keeps you on the track of problem-solving (programming is all about solving the problems). In the case of C or C++, the opposite is the case, you loose the grip over the problem and fall into what I call “fighting with the language” to make some piece of you program work. you focus on that piece of program and unintentionally, unknowingly forget about the whole problem. If we take a look at the whole corporate, the MNCs, they all use crippled languages like VB, Java, .NET just because they are well marketed rather than well designed. The MBA folks (who never programmed for real-life ) manage the programmers or some highly educated fellows who do not even understand the difference between Object-Based programming and Object-Oriented Programming and they say since VB, .NET or Java is an industry standard, hence the whole programming team will use that language to design the software. I don’t know why companies pay thousands of dollars to such kinds of managers who are not even aware of their sole purpose for being there: “Solving the Problem”.

Now comes my part. I have used Desktop for over 5-6 years and seen 100% of people using the same. from 2000 till the end of 2006 I used various versions of Windows. IIRC, from November or December 2006, I started to use Fedora, the well known GNU/Linux, exclusively. I did not know that I have started a new journey, that I explained many times in my other posts that led me to what t now I call an anti-Desktop user. In just 1 year, I went on with this path:

do you see a pattern-emerging ? I named this pattern as “the UNIX effect”. When you go from Desktop to a Tiled-WM you start to hate Desktops. With Tiled WMs (e.g. ratpoison, wmii and xmonad) my productivity has gone 3 times as compared to what I had with Desktops. Tiled WMs let you do you your work without coming in your way whereas in Desktops you have lots of obstacles and distractions ( e.g. Minimizing/Maximizing windows and constantly shifting between current applications that are being used) that waste your precious time and kill that thinking that is required for becoming expert at programming. When you come into Tiled WM world or when you become anti-Desktop, then you start to live in a different community, the community where folks think solving problems at hand is important and more important is getting yourself to a level of thinking where you can solve your problems efficiently and effectively . With Desktops, you have no choice, you do what you Desktop wants you to do. I, specifically, started to hate people who ask me questions like:

Windows User: “I double-click on Acrobat Reader and it does not open. What is the problem ?”

me: “The problem is you”.

Well, anybody will get an urge to hit me on that answer and that happened with me many times. I try to make it funny for that person can feel that he is really did not ask an intelligent quetion 🙂 . This person, the original Windows user, is no more different than the pointy-haired boss who does not even has any idea about why he is using Java for his software. He is also no more different that the programmer on any software-development team, who thinks in “void main()” or who says: “I want to learn VC++”. I mean, Really ?

If a programmer still thinks that he is a VC++ programmer, then it means he needs to relearn the basics of C++ programming language. I am a programmer and for my work I use C++, since I am good at it and I always look at the problem at hand and if C++ does not fit as a good solution to that problem, then I change the language, not the software, neither the way our software-development modal have evolved nor I sacrifice the millions of dollars of my company in unnecessary testing debugging when I can avoid that simply by following some rules I have gained by my experience in this profession and THAT distinguishes me as Quality Programmer from a Poor Programmer. Those poor programmers and pointy-haired bosses and you and me, use the same internet, almost same search engines and they still never ever take out some technically good stuff from there.

The reason is thinking, Quality-Thinking is the hardest thing to do and so is to achieve that kind of mastery in Coding. Most programmers are not ready to take that amount of pain. They will never be ready.

What about you ? you spend years in development and still you are an average programmer. Everyone has 24 hours and people who are extremely-competent programmers spent this every hour in sharpening their craft. On the other note, I will be programming after 3 years from now on, then Why not spend these 3 years in becoming a master-coder in my team. After All 3 years will pass whether you code good or bad everyday. Why not code good then ?