Sunday 11 January 2009

Linux is better than Windows

Time for a geeky post I think! I remember commenting once that the transgendered aspect of my life was the thing that made me slightly more interesting that the rather geeky behaviour might infer. Now in some ways the trans thing is 'normal' and it's maybe time to let some of the extreme nerdiness out :)

There has been some talk at work over the last few days about setup of a server to host Subversion as a source code repository for the project that we are working on. Using Subversion was my idea and I pestered about it constantly last year for good technical reasons (it's alot quicker/easier to deal with that ClearCase which we'd used before) as well as the fact that I just like stuff like that!

And, when it came down to it the best platform to run Subversion on is Linux - I did try and be fair and install/run on Windows but when this was tested it was found that there were glitches under load which would have made the system to unreliable for what we needed.

Another thing I'm going to be looking at as well is running WebSphere without admin rights (found this article about allowing non-root users to create profiles). Why am I obsessed with admin rights - no-one at work seems to get this as the default setup of new laptops is to allow the user full admin rights which makes installing software easy.

This is just SOOOOOOOOOOoooooooo wrong if, like me you come from a UNIX/Linux background where running as root is a cardinal sin unless it's a single command prompt used for admin tasks that is closed immediately after finishing said tasks!

You see, even on Windows there is absolutely NO reason to have admin rights, there are no well-written programs that actually need such rights to work correctly. Okay, some services/servers need admin rights to run but they can either be started automatically or kicked off from a command prompt.

The problem is that with admin rights you can, quite easily move wreck your entire setup or at the very least move things around so that you've no real idea whether a program is installed properly or not. UNIX/Linux has been designed with this idea built in: important OS/program files can only be moved around by root and no-one but root can do this!

UNIX was designed to be multi-user from the start so the very idea that normal users would be able to muck around with important files would have been a huge issue since any one person could completely wreck everyone elses work! This level of security/protection is obviously essential for multi-user systems but has the side-benefit that if it's just you using the computer you know that nothing you do is going to affect anything important, all the libraries and other system components are going to behaving in a very perdictable and repeatable way.

And I think that is why, in my opinion, Linux is better than Windows; it's designed to be modular and consistent and essentially understandable, at least in part, at quite a deep level. UNIX/Linux doesn't generally suffer, in my experience, from bizarre interactions of libraries since everything is nicely protected and seperated. That's not to say things can't go wrong but when they do it's easier to isolate the problem and even work around it.

Also I prefer Linux because of the understandability (not sure that is a real word); I guess most people don't even bother trying to figure out how Windows works (I do but can't say I've got anywhere), but with Linux/UNIX there are some simple rules/concepts that, if you grasp them, then scale up for everything else within the system, e.g. command line tools for UNIX may seem complicated and harder to grasp than Windows DOS equivalent but the complexity is consistent in a way and once you get the idea of how everything can fit together it's simple.

Anyway, that is enough geekiness for now, I await the ridicule :)