After having used CVS and GNU arch (tla) before, we switched to Mercurial about a year ago for MoinMoin development.
As well as tla has been a big step forward compared to CVS, Mercurial is another big step forward from tla.
We don't regret it, Mercurial works great:
* we never had serious trouble with it, we never lost data
* it is FAST (much faster than GNU arch)
* the commands are easy to remember and have sane defaults, so you get used to it fast
* it is well-designed
* it uses your disk space efficiently
* it doesn't need a central server, you can use version control on the road without internet connection
* it runs on Linux, Mac, Windows, ...
* it has a nice web interface built-in (you don't even need a separate web server)
* you can read its code (it is mostly Python! CLEAN python code, with a bit of C for better performance.)
* it has very few dependencies (well, it needs Python, of course, but not much else)
Python is the best general-purpose programming language I ever used (having studied CS and being a geek, I used or looked at quite a lot of them in the last 25 years).
It is new enough to be well-designed and high-level.
It is mature enough to be very useful and well-behaved.
Coding in Python is easy, fun and going fast.
You can easily read code (no matter if it is your own code or code of someone else), because it is high-level and clean.
You can easily write code. The code volume you need to get something done is usually much less than in other programming languages (and this is not just about typing stuff, having less code means also less bugs, less maintenance costs).
Often you don't have to write code, as it comes with a good standard library that contains lots of useful and easy to re-use code. There are also lots of python modules available on the internet.
You can easily debug code. You can try code in the interactive interpreter. No need to compile the code, just run it.
There are great IDEs for Python, e.g. Eclipse/PyDev or Eric (plus many others I didn't use yet).
You can easily get platform-independent code (runs on Linux, Mac, Win32 and many others).
If you have questions, there is a big community of python coders (web sites, irc channels, mailing lists, news groups, user groups).
If you were using something like Norton Commander or OS/2 Commander or any other clone for many years, you'll love mc.
You can run it on the console, in a xterm or via ssh - always having the same UI.
Faster and better available than GUI, more comfortable than just using a bare shell prompt.
Before discovering PyDev, I rather used Vim and mc as my "development environment". And I rather disliked everything related to Java, because I often had trouble with it in the past.
PyDev(*)/Eclipse changed that. It gives me so much support while coding and debugging that my productivity is substantially better now. It often even finds errors in the code.
Installation was easy (I used the download version of eclipse, not a package of my Linux distribution).
Although it might be a problem on old machines, it works great on my development machine (Notebook with 1.1GHz Pentium M, 1GB RAM, 1280x800).
(*) I also use PyDev Extensions.
This is usually the first code my new machines are executing (well, after the BIOS :)!
It is a pity, but true, that even brand-new memory modules of "good" brands sometimes have bit errors.
If you are not sure that your memory is 100% OK, there is no point in installing any software to it, not even the operating system - it could get corrupted by a bit error in the disk buffers and that bit error would be conserved on disk for a long time.
Running memtest86+ is not only good for knowing that your memory is ok, but it is also a good stress test for cpu / parts of the mainboard / memory and cooling of cpu and system.
In case you experience instability on a system, this is also one of the first things to run.
M
I tried lots of ways to serve MoinMoin (a Wiki Engine written in Python), like CGI, FastCGI, mod_python, Twisted, ...
mod_wsgi was by far the best experience I had - a great piece of software written by a developer who cares about Python web hosting.
It is simple to set up, fast, powerful, secure, it cares for stuff you need.